今天主要講解一下blender上下文context選擇,活動項,選擇物體,可選物體,各種方法和細節的區別
在3D視窗我放置了立方體命名為A,球體命名為P,相機命名為C,點光源命名為L,各自一個,方便記憶
01
bpy.context.object活動項,系統會把一堆所選物體,把單獨激活為活動項外框顯示顏色同其它選擇物全不一樣,活動項算是Blender獨有的技術
>>> bpy.context.object
bpy.data.objects['A']
但如果將bpy.context.object賦值會出錯,它只讀,將物體用代碼設成活動項要用三條代碼
>>> bpy.context.object=bpy.data.objects['C']
Traceback (most recent call last):
File "<blender_console>", line 1, in <module>
AttributeError: bpy_struct: Context property "object" is read-only
02
bpy.context.selected_objects 所有選擇物體包括活動項物體,結果是一個列表,要了解一件事情,活動項物體不會指定列表在前或尾,物體排序是按物體在場景生成的順序來排列,內順序是不可調整
>>> bpy.context.selected_objects
[bpy.data.objects['L'], bpy.data.objects['C'], bpy.data.objects['A'], bpy.data.objects['P']]
在3D視窗加猴頭命名為D
>>> bpy.data.objects['D'].select_set(True)
>>> bpy.context.selected_objects
結果顯示:
[bpy.data.objects['L'], bpy.data.objects['C'], bpy.data.objects['A'], bpy.data.objects['P'], bpy.data.objects['D']]
比原有列表多了bpy.data.objects['D'],因為bpy.data.objects['D']後邊生成,排在後邊,不是後邊選擇排在後邊
03
bpy.context.selectable_objects 可選對象,對可以用shift+A菜單生成的對象都是可選對象,能用滑鼠在3D視窗選擇的物體
>>> bpy.context.selectable_objects
[bpy.data.objects['L'], bpy.data.objects['C'], bpy.data.objects['A'], bpy.data.objects['P'], bpy.data.objects['D']
所得結果同之前選擇了這幾個物體所用bpy.context.selected_objects一樣,但bpy.context.selectable_objects是可選的全部
喜歡blender腳本編程的小夥伴關注我,後續會推出更多教程,到一定人數會出視頻教程。