기본 콘텐츠로 건너뛰기

250321 메타휴먼 2, 캐릭터, 애니메이션

캐릭터

Skeletal

뼈대. 많은 Bone으로 이루어져 있다.

동일한 Skeletal을 가지고 있다면 애니메이션을 재활용 할 수 있다.


Skeletal Mesh

말 그대로 피부

하나의 캐릭터는 하나 또는 여러 Mesh와 다양한 Material로 이루어져 있다.




하나의 레벨에 플레이어가 다룰 캐릭터를 바꾸고 싶으면, World Setting의 Game Mode아래의 Default Pawn Class를 바꾸어주어야 한다.



기본 애니메이션

Meta Human과 기본으로 제공하는 BP_ThirdPerson은 어느 정도 상호 활용 가능하지만, MetaHuman의 경우 하나의 메쉬가 아닌 부분으로 나누어져 있어서, 현재 분리시킨 IK기능(발의 위치조정)과 같은 경우는 적용하지 못해서 따로 작업을 해줘야한다.

아래의 경우는 IK기능을 포기하여서 발이 애니메이션을 따라 움직이지만 경사로 또는 발이 어색하게 떨어져 있는 현상이 발생한다.



뷰포트 애니메이션 초기화

에디터 상에서도 실행되는 Construction Script를 사용하고, Set Leader Pose Component

기능을 사용하면, New Leader Bone Component에 설정된 애니메이션을 Target이 따라 실행하게 됨에 따라 동일한 애니메이션을 보여주게 된다.

New Leader Bone Component : 리더가 되는 애니메이션

Target : 리더를 따를 애니메이션


애니메이션 ReTarget

같은 뼈대 구조를 가지고 있지 않은 경우에는 애니메이션을 접목할 수 없다.

이러한 경우에, Animation Sequence에 Retarget Animation을 사용해서 접목시켜 줄 수 있다.

Animation Sequence 우클릭 - Retarget Animation - Target Skeletal Mesh 선택 - Export





애니메이션 모드

Use Animation Blueprint : 블루프린트를 통해

Use Animation Asset : Animation Sequence를 통해




애니메이션 가져오기 (animation import)

import only animation : 체크

언리얼에서 자동으로 Skeleton을 찾아 주고 있는 모습


이전에 Skeletal Mesh, Material, Texture는 필요하지 않으니 체크를 해제하고,

Animation은 Import Animations에 체크 해 주어야 한다.



Plask는 import 시 animated time 으로 변경 필요


TPose, APose

차이는 있지만 둘 다 애니메이션 작업의 편의를 이용해 사용하는 기본자세.


LOD : Level of Detail

최적화를 위해 사용함.

시야 거리에 따라서 멀리 있는 물체는 간소화하여 표현하고, 가까이 있는 물체는 정교하게 표현한다.

멀리 있는 물체를 상세하게 표현하는 경우와 뭉뚱그려 표현하는 경우에 플레이어가 볼 때 차이를 거의 느낄 수 없거나 하는 경우는 특히 컴퓨터의 자원을 낭비하는 것이 되기 때문에 이러한 경우 전반적인 성능을 올리기 위해서 사용한다.

메타휴먼의 경우도 머리카락과 같은 경우 상세한 표현을 하면 성능이 떨어지기 때문에 이를 방지하려고 깜박이는 현상이 일어날 수 있다.


Meta Human Performance

Voli등을 통해 사용할 목소리 파일을 얻는다.

Data Input type 을 Audio로 설정하고 해당 파일을 넣어주고, Control Rig와 Visualization Mesh를 메타휴먼에 적용한뒤, 좌측 상단에 Process를 하면 입의 싱크를 맞추어준다. 이후는 Export를 해주면된다.


애니메이션은 가장 위인Mesh가 아닌 Face에 적용해야 하고, 가장 상위인 Mesh가 블루프린트를 따름에 따라서 실질적으로는 현재 BP에 덮어 씌워지기 때문에 제대로 재생되어지지 않는다. 제대로 된 적용을 위해서는 블루프린트를 이용한 작업이 추가로 필요하기 때문에, 아래 레벨 시퀀스를 이용해본다.


Level Sequence

애니메이션 할 대상으로 캐릭터가 아닌 기존 메쉬 파일을 월드로 가져온다.

그리고 Outliner에서 Sequence로 드래그한다. 또는 Add - Actor to Sequencer로 추가한다.

여기에 Add 하여 AudioTrack을 추가하고 오디오 파일도 마찬가지로 추가하면 소리도 넣을 수 있다.



카메라를 추가하고, 트랜스폼에 Key값을 이용 해 간단한 영상을 만들 수 있다.


오디오

언리얼 안에서 사용가능한 타입은 mp3와 WAV가 있다.

Override Attenuation을 이용하고 Falloff Distance에 적당한 값을 넣어 사용하면 거리에 따라 들리는 정도를 바꿀 수 있다.


Git


🦴참고

Skeletal Mesh

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/skeletal-mesh-assets-in-unreal-engine

LOD

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/creating-and-using-lods-in-unreal-engine

Mixamo https://www.mixamo.com/

Pexels https://www.pexels.com/ko-kr/

Plask https://motion.plask.ai/

Voli TTS https://voli.ai/

TRELLIS https://huggingface.co/spaces/JeffreyXiang/TRELLIS

Suno https://suno.com/home

aiva https://creators.aiva.ai/

https://aisoundeffectgenerator.com/ko_KR

https://civitai.com/models/15287/7-dirty-words-negative-prompt

이 블로그의 인기 게시물

250523 PCG 2

PCG Building Volume Sampler를 사용할 경우 Voxel Size를 맞추어주자. 2m길이를 Transform Points로 Offset을 이동시켜 Difference를 통해 메쉬를 생성한다. 사용시에 Pivot의 위치가 중앙이 아니면 제대로 표현되지 않을 것이다. PCG Landscape Landscape 생성후 PCG Volume 생성. Get Landscape Data - Surface Sampler 안보인다면 Generate Surface Sampler 일반 그리드 패턴으로 서피스 데이터에 포인트를 샘플링합니다. 이 노드에는 다음과 같은 옵션이 있습니다. 포인트 규모(Point Extents) : 서피스의 기본 그리드 셀 크기를 정의합니다. 여유(Looseness) : 변형 가능한 셀 크기를 정의합니다. 실제로 셀 크기는 포인트 규모 * (1 + 여유)입니다. 제곱미터당 포인트(Points Per Square Meter) : 유지되는 셀의 비율을 계산합니다. 이 프로퍼티는 그리드가 클 때 과잉을 제한합니다. Looseness : 기본 1. 0일경우 Extent의 길이 만큼, 1일경우 2배가 됨.  Attribute Filter를 생성하고, Material에 해당하는 Layer를 찾아서 이름을 넣어준다. Type을 Float로 하고 Float Value를 설정하면, 해당 머티리얼이 색칠된 정도 0~1에서 Operator에 의해 >(초과) 0.6초과 일 경우만 생성되게 할 수 있다. 값을 1로 하고 Equal을 이용해서 1인 경우만 생성되게 하는 것도 가능하다. plugin Water body lake를 넣으면, 이또한 Spline이라는 것을 알 수 있다. 따라서 Get Spline Data-Spline Sampler를 통해 사용할 수 있다. GetActorData와 Difference를 통해서 Lake내부를 제거해주기 PCG Mesh Mesh Sampler를 쓰기위해 Get Actor Property를 이용하면, 해당 액터가 ...

250604 저장불러오기

SaveGame 블루프린트 생성 Game Instance 생성, Init 오버라이드 AC_Inventory Save Load

250522 Physics2, PCG

Radial Force Actor Force 값을 많이 주어야함. Balloon Mass값과 PhysicsThrust를 이용하거나, Set Physics Linear Velocity를 이용하여 Z축 값을 줄 수 있다. Skeletal Physics Physics Material Friction : 마찰력. 수치가 클수록. 덜 미끄러워짐 Restritution : 복원력. 탄성계수 수치가 높을 수록 bouncy Fracture voronoi : Cluster의 숫자 Show Bone Color 해제해주기 Damage Damage Threshold의 값을 수정하는 것으로 강도 조절 가능. Chaos Cache Actor에서 Chaos Cache Manager를 생성 가능. Record 기능이 존재한다. 일단 생성하면 Chaos Cache Collection을 저장하여 사용할 수 있게된다. Cachos Cache Manager를 Simulate를 누르면 저장되고, 실행을 종료하면 그동안의 변화상황이 저장된다. 저장된 Collection을 가져와서 Sequencer의 StartTime으로 가져와 재생할 수 있다. PCG plugin Spline생성후 포인트 하나 지워 줌 우클릭으로 Spline Generation Panel, Square 생성. 처음 지점 포인트 겹쳐있을 수 있으므로 찾아서 삭제해주기 Get Spline Data => Spline Sampler D키 또는 Debug에 체크를 해주고, Dimension 설정을 해준다. On Interior의 경우, Unbounded에 체크를 하면 내부에도 생기게 된다. Static Mesh Spawner Intersection : 교차점 이 부분은 tag가 Spline과 Overlap되어 닿으면 바꾸어 준다. Difference를 이용해 그외 부분은 채워 넣는다. 길 By Class로 설정해주기 On Spline - Distance Extent Radius 설정해주기 Difference를 통해 제외하기 PCG는 A...