언리얼/모션캡쳐

2024 언리얼 엔진 실무 기반 교육 과정 20일차

UN_SJ 2024. 4. 30. 17:22
  • Maya Game Export
  • 언리얼 임포트
  • 분리 매쉬 조합
  • 캐릭터 물건 넣기
  • 물건 토글
  • Remote Control API

<마야 Game Export>

- file - game export

- 게임 익스포트가 없으면 플러그인에서 Game FBX Expoter켜주기

- 뼈랑 폴리곤을 잡아서 가져올것

- 블렌드 쉐잎 체크

- path를 미리 정하기 > 이름 

 

* 언리얼 폴더 Source파일에 모든걸 넣는걸 추천

   > Config, Content, Plugins는 중요하니 손대지 않는걸 추천

   > 프로젝트 세팅 안에 있는 Plugins 폴더에 플러그인을 넣으면 알아서 임포트

 

<마야 애니메이션 Export>

- Game Export에서 Animation Clips를 선택 > Export selection을 선택하면 원하는 프레임을 각각 가져올 수 있다.

   > ex) 0~20 팔 up / 20~40 팔 down = FBX파일이 2개 생성 (파일명은 CHㅁㅁ_Anim_로 설정시 CHㅁㅁ_anim_up으로 저장)

- 뼈만 선택해도 된다.


<언리얼 임포트>

스켈레탈메시 임포트

- 모프 타깃 임포트를 체크해준다.

  > 체크 안하면 블랜드 쉐잎이 들어오지 않음

 

애니메이션 임포트

- 뼈만 Export했으므로 스켈레탈 메시 임포트가 아닌 애니메이션 임포트로 뜬다

   > 폴리곤이 있어봤자 용량만 커짐

- 불러올때 스켈레톤을 꼭 지정해줄것


<분리되어있는 매쉬> - 모듈형

- 모두 스켈레탈 메쉬로 분리되어있음

- 각각 분리되어있지만 뼈는다 똑같이 있음 > 그래서 따라갈 수 있음

- 블루프린트 생성 후 스켈레탈 매쉬를 블루프린트에 드래그앤 드랍으로 불러옴

   > 뭔가 쥐여주고 싶을시 추가에서 폴리곤을 추가해주거나 드래그앤 드랍 가능

- 보통 스켈레톤을 합칠때 하체를 중심으로 움직일 수 있도록 연결함

  > 하체 아래 다 넣고 머리 아래 머리카락을 넣음

Construction Script

 - 플레이를 하자마자, 캐릭터를 올려두자마자 실행되는 노드

 

- Construction Script에 set leader pose component (leg)를 생성

   > 넣었던 스켈레탈 매쉬중 뭐가 중심이 될지 선택해주는 노드

- Leg만 New Leader Bone Component에 연결

- 블루프린트를 필드에 올리고 하체를 선택 (리더 매쉬)

- 애니메이션 모드를 Use Animation Asset으로 선택

- 애니메이션 선택

 

라이브용으로 쓰려면

- 플러그인 > live link 검색 > live link, live link Debug UI, live link Camera 켜주기

- 블루프린트 > 추가 > live link Skeletal Animation 넣어주기

   > 플레이를 누르지 않아도 실시간으로 움직임


<캐릭터에게 물건 쥐여주기>

- 소켓이라는것을 넣어줘야함

- 손 매쉬에 들어가 스켈레톤 클릭

- 원하는 손 뼈를 찾아서 우클릭 > 소켓 추가

* 만약 소켓이 안보이면 캐릭터 > 본 그리기 > 소켓 활성화

- 손바닥 가운데 오도록 조정

- 뷰포트로 이동 > 디테일 > 부모소켓에 검색, 연결해주기


<세팅된 물건을 보였다 안보였다 하게하기>

- 블루프린트 > 디테일 > 렌더링 > 표시

   > 켜고끄면 보였다 안보였다 함

      > 하지만 불친절...

 

- Construction Script에 Branch노드 생성

 

Branch

- 조건에 따라 옳고 그름을 판단하고 해당 노드를 플레이함

 

- +버튼을 눌러 변수 생성

* 지금의 stick on의 상태는 기본 False상태 (맨아래)

- Set Visivility 생성 후 연결 (사라질 매쉬의 변수 연결)

* 둘중에 하나는 꼭 Visibility 활성화 할것

- 변수 > 디테일 > 인스턴스 편집 활성화

   >BP 디테일창에서 설정 가능해짐

 

+) 옷 on off 추가하기

- 블루프린트에 옷 매쉬 추가(상체 하위로 넣기)

- Set Leader pose Component에 cloth 변수 연결

- Construction Script에 Sequence 추가

* 만약에 바로 안뜨면 창 > 팔레트 활성화 후 노드 찾기에서 찾기

Sequence 

- 여러개의 노드를 동시에 할 수 있도록 해주는 노드

  > 핀추가를 누르면 Then이 더 늘어남

- Cloth와 Stick의 Branch에 각각 연결

* 켜져있는게 더 좋은 경우 기본값을 on해주고 하는게 좋다

- 인스턴스 편집 활성화


<Remote Control API>

- 원격제어 > 리모트 컨트롤 프리셋 선택

- 리모트 컨트롤 프리셋에 들어가면 이런 창이 뜬다

- 창이 띄워져있을때 설정에 눈모양 표시가 생김

    > 눈모양 버튼을 누르면 원격제어창에 뜬다.

 

* 블루프린트 뿐만 아니라 light의 밝기 같은것도 넣을 수 있음

 

* Construction에 노드를 연결하면 뷰포트를 플레이 했을때 리모트 컨트롤이 작동하지 않음

     > 이벤트 그래프의 Event Tick을 사용하여 모두 복사해서 붙여준다.

       > 플레이를 눌렀을때 작동 (플레이하지 않으면 작동 x)

 

<키보드를 누르면 발생하는 이벤트>

J를 누르면 입거나 벗는 자켓

- input j를 검색해 노드 불러오기

* input 노드는 input을 쓰고 원하는 키를 적으면 쉽게 찾을 수 있음

- Flip Flop 불러오기

   > A와 B를 번갈아가며 실행해주는 노드 (토글)

- BP_SCK 선택 후

- 디테일 > 입력 > 입력 자동 수신 > Player 0

 

<이펙트 on/off >

- 원하는 위치에 이펙트 넣기

 

<Anim Blueprint를 이용하여 페이스 트래킹 하기>

GitHub - Rokoko/Unreal-Demo-Project: Rokoko Studio Unreal Virtual Production Sample Project

 

- 일단 모든 리더를 헤드로 바꿔준다

- 머리 스켈레탈 메시를 기반으로 한 애님 블루프린트 생성

* 스켈레톤 파일이 있는 폴더에 생성됨

- 기존 캐릭터 블루프린트에가서 애니메이션 모드를 연결해줌

 

- 애니메이션 블루프린트에 들어가 Live Link Pose 노드 연결

   > 라이브링크는 가장 맨 처음에 넣어주는게 좋다

 

- 윈도우에 CMD검색

* 아이폰 어플 > 설정 > 스트리밍 > 라이브링크 > 타깃추가

- 나오는 창에 IPconfig 검색 후 ip주소 입력

 

<블랜드 쉐이프 없이도 페이스 트래킹 사용하기>
- Anim Blue Print에서 Modify Curve 생성

- 노드 우클릭 > 커브 핀 추가 > Anger 추가

- Anger가 추가됨

- 변수로 승격해줌

- 이벤트 그래프에서 Evaluate Live Link Frame 생성

- Get Property Value 생성, Evaluate Live Link Frame의 Data Resultd와  Basic Data를 연결

* Evaluate Live Link Frame에 카메라가 연결되어야 사용가능

- Print String 생성하고 Get Property Value의 Value와 Print String의 In string을 연결

- Anger 변수를 Set으로 가져오고 Get Property Value에 연결해준다.

 

+) Joy 연결

- AnimGraph > Modify Curve > 우클릭 > 커브 핀 추가 > Joy > 변수 승격

- Get Property Value 생성 > Joy 변수를 Set으로 불러옴

- Anger 변수의 Set과 Joy의 Set을 연결한다

* Get Property Value의 Bassic Data도 Evaluate Live Link Frame의 Data Resultd와 연결

연결되어야함...(아이폰 연결이 안되어있음)