Super Kawaii Cute Cat Kaoani '연구' 카테고리의 글 목록 (2 Page)
728x90

연구 72

An Implicit Physical Face Model Driven by Expression and Style 논문리뷰(1)- Background

An Implicit Physical Face Model Driven by Expression and Styles의 Background 개념을 정리하는 글이다. Human bodies와 face -> activation object로, 내부적으로 형태를 변화시킬 수 있다. facial simulation에서는 이러한 actuation mechanism은 D_M(변형되지 않은 facial space)상에서 정의된 actuation tensor field를 사용하여 modeling한다. actuation tensor field는 local 3x3 symmetric matrices A들로 이루어져있는데 이 matrix들은 수축방향(contractile directions)과 정도에 대한 정보를 포함하고 있으며..

[Blender] Faceit : Facial Expressions And Performance Capture 살펴보기

서로 다른 형태의 shape key를 가진 model을 호환시켜야할 필요성이 생겨, 방법을 찾아보다가 Faceit이라는 blender addon을 발견하게 되었다. 아직 사용해보진 못했지만..제공하는 주요기능들을 정리해보면 해당 기능을 필요로 하는 분들이 도움을 받을 수 있을 것 같아 정리해보게 되었다. https://blendermarket.com/products/faceit Faceit : Facial Expressions And Performance Capture Faceit - With Faceit you can ready your character model for high quality Animation in minutes! Safe weeks of work! blendermarket.com ..

연구/Blender 2024.03.12

[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

CharacterAnimationTools 사용후기

smpl-x에서 motion feature를 추출할 방법을 찾다가...굉장히 유용한 코드를 찾게 되었다!!!! https://github.com/KosukeFukazawa/CharacterAnimationTools#13-load-animation-from-amass GitHub - KosukeFukazawa/CharacterAnimationTools: Character Animation Tools for Python. Character Animation Tools for Python. Contribute to KosukeFukazawa/CharacterAnimationTools development by creating an account on GitHub. github.com bvh, smpl+h의 파..

SMPL-X skeleton 뜯어보기 & SMPL-X to SMPL+H

1) SMPL-X 살펴보기 SMPL-X의 JOINT는 총 55개이다. blender에 import했을 때 나타나는 hierarchy 구조로 살펴보면 아래와 같고, smpl-x 파일의 pose parameter 순서에 맞게 joint들을 나열해보면 아래와 같다. 아래의 list를 보면 알 수 있듯이 body joint는 22개, jaw에 해당하는 joint가 1개, eye에 해당하는 joint가 2개, hand에 해당하는 joint가 30개로 총 55개의 joint가 존재한다. SMPLX_JOINT_LIST = [ # body joint 'pelvis', 'left_hip', 'right_hip', 'spine1', 'left_knee', 'right_knee', 'spine2', 'left_ankle',..

[Blender] blender에서 skeleton bone position 구하기

1) armature space에서의 position global_location = bpy.data.objects['원하는 오브젝트'].bones['원하는 bone'].head 를 통해 접근하면 joint의 armature space에서의 position(bone의 head global position)를 바로 구할 수 있다. armature space가 world space와 같다면 이 값은 global joint를 의미한다. 2) global space에서의 position obj = bpy.data.objects['원하는 오브젝트'] global_location = obj.matrix_world @ obj.pose.bones['원하는 bone'].head

연구/Blender 2024.01.29

[Blender] viewport에서 시점 변경 python script로 구현하기

blender를 실행시키면 가장 먼저 나오는 화면인 viewport에서의 시점을 변경하는 법(pan, oribit 기능)을 python script로 어떻게 구현할 수 있을지 알아보자. 1) target 지점 변경: pan 현재 viewport view location이 (0, 0, 0)으로 세팅되어있다. 이 경우에는 viewport가 원점을 바라보게 된다. 이 값(viewport에서 바라보는 지점)을 변경하기 위해선 다음과 같은 코드를 사용하면 된다. # 현재 활성화된 3d viewport를 찾기 for area in bpy.context.screen.areas: if area.type == 'VIEW_3D': break # 3d viewport의 정보 가져오기 space_data = area.spac..

연구/Blender 2024.01.18
728x90
728x90