Super Kawaii Cute Cat Kaoani '2024/02 글 목록
728x90

2024/02 4

[Blender] Armature(뼈대)에 Mesh 연결하기

blender에서 Armature(뼈대)에 Mesh를 연결하는 방법을 알아보자. 아래의 그림에서 왼쪽의 skeleton이 Armature(뼈대)에 해당하며, 오른쪽 아래의 사람 모양이 Armature에 연결하고자 하는 Mesh이다. 아래의 그림은 Object Mode에서 보았을때의 화면을 캡쳐한 것으로, Armature가 rest pose를 취하고 있지 않아 Mesh의 pose와는 차이가 있는 상태이다. Edit Mode에서의 화면을 보면, 위와 같이 Mesh와 Armature의 모양이 잘 일치하는 것을 볼 수 있다. 이러한 상황에서, 이 둘을 연결하는 방법을 알아보자. 1) 다시 Object 모드로 돌아가서, Mesh를 클릭해준 다음, shift 키를 누른 상태로 armature를 선택하여 Mesh와 ..

연구/Blender 2024.02.27

[PyTorch] tensor 확장하기: torch.expand vs torch.repeat vs torch.repeat_interleave

pytorch tensor를 사용하다보면 dimension을 늘려줘야하는 상황이 많이 발생한다. 이때 많이 사용하는 함수가 torch.expand, torch.repeat, torch.repeat_interleave이다. 상황마다 쓰기 편리한 함수들이 있는데 매번 까먹어서;; 내가 보려고 작성하는 비교 글이다. 1) torch.expand(*size) torch.expand 함수는 개수가 1인 차원에 대해서만 확장이 가능하며, desired size를 input으로 받는다. >>> x = torch.tensor([[1], [2], [3]]) >>> x.size() torch.Size([3, 1]) >>> x.expand(3, 4) tensor([[1, 1, 1, 1], [2, 2, 2, 2], [3, 3..

연구/PyTorch 2024.02.21

[Blender] matrix, matrix_basis, matrix_local, matrix_world관계

blender에서는 다양한 종류의 matrix를 사용하고 있다. Posebone.matrix, Posebone.matrix_basis, bone.matrix_local...등 다양한 종류의 matrix가 등장하는데..각각의 의미와 이들간의 관계에 대해서 알아보자. Posebone.matrix: armature space에서의 bone의 transformation을 의미한다. 만약 object가 rest pose를 취하고 있다면 Posebone.matrix의 값은 bone.matrix_local의 값과 동일하다. Posebone.matrix_basis: bone space(rest pose에 대해 표현한다는 의미)에 대한 bone의 transformation 값을 담고 있다. bone.matrix_loca..

연구/Blender 2024.02.19

[Blender] blender에서 skeleton joint orientation 구하기

1) parent joint에 대해 표현된 joint orientation obj = bpy.data.objects['원하는 오브젝트 이름'] pb = obj.pose.bones['원하는 posebone이름'] rotation_matrix = (pb.bone.matrix_local @ matrix_basis @ pb.bone.matrix_local.inv()).to_3x3() 위의 코드를 거치면 blender 상에서 joint의 orientation을 구할 수 있다. opengl 상에서의 orientation을 구하고 싶다면, def blender_to_opengl(mb): mb = np.array(mb) mo = np.array([ [mb[0, 0], mb[0, 2], -1 * mb[0, 1]], [m..

연구/Blender 2024.02.16
728x90
728x90