카테고리 없음

[파이썬] 블렌더 2.5에서 전역 좌표를 로컬 좌표로 변환하는 방법은 무엇입니까?

행복을전해요 2020. 12. 13. 01:40

몇 주 전, PoseBose.matrix (뼈의 Armature-Space 매트릭스)에 대한 쓰기 액세스가 Python API에 부여되었습니다. 2.59 또는 최신 트렁크를 사용하는 경우 다음 코드를 사용할 수 있습니다.

from mathutils import Matrix

ob = bpy.context.object 
globalVector = Vector((1.0, 0.0, 0.0))  
mw = bpy.data.armatures['Armature'].bones['hand_IK.R'].matrix.copy()  
obGlobal = ob.matrix_world
bpy.context.object.pose.bones['hand_IK.R'].matrix = ob.matrix_world.inverted()*(Matrix.Translation(globalVector)+mw.to_3x3().to_4x4())

차원 3으로 변환 한 다음 다시 4로 변환하면 원래 변환이 지워지고 globalVector를 추가하고 전체를 반전하여 개체의 글로벌 매트릭스를 고려합니다.

뼈를 조작하는 좋은 코드 예제는 retargetEndUser의 bakeTransform 함수에서 Motion Capture 용 Blender Addon, Here를 참조하십시오 .



출처
https://stackoverflow.com/questions/7415066