Theそんなもん標準機能につけておけ。というシロモノ。
当初作る際に面倒なプログラムになりそうだと思っていたのですが、調べていたらそのまんまな関数がありました。…そこまで作っているなら最後まで実装して欲しいのですが。
当初作る際に面倒なプログラムになりそうだと思っていたのですが、調べていたらそのまんまな関数がありました。…そこまで作っているなら最後まで実装して欲しいのですが。
# vg sort
import bpy
if bpy.context.mode == 'OBJECT':
# print all selected objects
for obj in bpy.context.selected_objects:
print(obj.name)
# Use objectmode only
if obj.type == 'MESH':
bpy.ops.object.vertex_group_sort(sort_type='NAME')
# bpy.ops.object.vertex_group_sort(sort_type='BONE_HIERARCHY')
# print all selected objects
for obj in bpy.context.selected_objects:
print(obj.name)
# Use objectmode only
if obj.type == 'MESH':
bpy.ops.object.vertex_group_sort(sort_type='NAME')
# bpy.ops.object.vertex_group_sort(sort_type='BONE_HIERARCHY')
これが
こうなる
使用方法はオブジェクトモードで該当するオブジェクトを選択して、スクリプト実行。
一応、2.7系、2.8系両対応です。
一応、2.7系、2.8系両対応です。
ただし、頂点グループのソートが bpy.ops.object に対して、選択されたオブジェクトの検索ループが bpy.context.selected_objects となり齟齬が出ています。
手っ取り早く言うと、複数のオブジェクトを選択してこのスクリプトを実行するとちゃんと動作しない可能性が高いので、1個ずつオブジェクトを選択して実行して欲しいです。
尚、このソースでは名前順に並べ直しますが、コメントアウトした'BONE_HIERARCHY'側を使うと、ボーンの継承順位順にソートされます。
0 件のコメント:
コメントを投稿