Files
AIGame/Tools/model_tools/bl_probe_mixamo_bind.py

19 lines
1008 B
Python

import bpy
import sys
from pathlib import Path
folder=Path(sys.argv[sys.argv.index('--')+1])
for p in [folder/'CampGuideStudio.fbx', folder/'CampGuideStudio@Walking.fbx']:
bpy.ops.wm.read_factory_settings(use_empty=True)
bpy.ops.import_scene.fbx(filepath=str(p))
arm=next(o for o in bpy.context.scene.objects if o.type=='ARMATURE')
print('FILE',p.name,'arm pose',arm.data.pose_position)
for n in ['Hips','Head','LeftArm','LeftHand','LeftFoot']:
b=arm.pose.bones['mixamorig:'+n]
print(n,'rest',tuple(arm.matrix_world@b.bone.head_local),'POSE',tuple(arm.matrix_world@b.head),'basis',list(b.matrix_basis.to_quaternion()),'loc',list(b.location))
for o in bpy.context.scene.objects:
if o.type=='MESH':
data=o.evaluated_get(bpy.context.evaluated_depsgraph_get()).to_mesh()
pts=[o.matrix_world@v.co for v in data.vertices]
print('EVALBOUND',[[min(v[i] for v in pts) for i in range(3)],[max(v[i] for v in pts) for i in range(3)]])