반응형

캐스케이드는 언리얼에서 제공하는 이펙트 전용 툴입니다.

1부에서 제작한 불 쉐이더를 이용하여 이펙트를 제작했습니다.

불 이펙트에 사용된 인자는 아래와 같습니다.


사용된 인자를 순차적으로 살펴보겠습니다.

 

1. Required

사용할 메터리얼과 그 메터리얼에 대한 설정을 변경할 수 있습니다.


 

 

2. Spawn

- 이미터 파티클의 스폰개수 / 속도에 영향을 끼치는 모듈.

 

 

3. LifeTime

- 스폰시 파티클의 초기 수명을 설정하는 데 사용되는 모듈입니다.

 

 

4. Size

? 파티클 수명상의 여러 지점에서 그 크기에 영향을 끼치는 모듈입니다.

   (1) Initial Size - 파티클 수명상의 여러 지점에서 그 크기에 영향을 끼치는 모듈입니다.

 

(2) Size Scale - 파티클의 사이즈를 BaseSize에다 지정된 스케일 인수를 곱한 값으로 설정하는 모듈입니다. 주의할 점은 해당 프레임에서 이 모듈 이전의 모든 크기 조절을 덮어쓰는 모듈이라는 겁니다.

 

 

4. Parameter

- 머터리얼 같은 다른 부분을 제어할 수 있도록 파티클 시스템 외부로 데이터를 전달하는

모듈입니다.

(1) Dynamic - 모듈에 대한 동적 파라미터 배열입니다.


 

 

5. Velocity

? 다양한 방법으로 파티클의 속도를 조절하는 모듈입니다.

(1) Initial Velocity ? 파티클의 초기 속도를 설정하는 모듈입니다.

 

 

6. Location

- 파티클 수명상의 여러 시점에서 파티클의 위치에 영향을 끼치는 모듈입니다.

(1) Initial Location ? 파티클의 스폰시 초기 위치를 설정하는데 사용되는 모듈입니다.


 

(2) Cylinder - 원통형 모양 내에서 파티클의 초기 위치를 설정하는데 사용되는 모듈입니다.

 

(3) Pivot Offset - 방향성을 어떻게 할지 설정하는 모듈입니다.


 

7. SubUV

? 다수의 개별 프레임격자 배치되는 SubUV텍스처를 파티클에 활용할 수 있도록 해 주는 모듈입니다.

(1) Subimage Index ? 플로트 분포에 따라 사용할 서브이미지를 선택하는 모듈입니다. 현재 서브 이미지는 왼쪽에서 오른쪽, 위에서 아래 순입니다.

 

8. Color

- 방출된 파티클의 색에 영향을 끼칩니다.

** Color 모듈은 이미터에 사용되는 머티리얼이 Particle Color 머티리얼 표현식을 사용하여 모듈에서 머티리얼로 색을 전하도록 해야 합니다.

(1) Initial Color

-스폰시 파티클의 색을 설정하는 모듈입니다. 다른 컬러 모듈이 덮어쓰지 않는 한 파티클은 수명에 걸쳐 이 색을 유지하게 됩니다. 다음과 같은 멤버가 포함됩니다:

psys_initial_color.gif

 

(2) Color Over Life

-파티클의 수명에 걸쳐 그 색을 설정하는 모듈입니다.

psys_color_life.gif

 

 

위 그림과 같이 설정을 하면 아래 영상과 같은 불 이펙트가 출력됩니다. 

 

반응형
반응형

**  이펙트 쉐이더 제작 **

다이내믹 파라미터를 사용하여 파티클과 연동해주면 쉐이더를 캐스케이더에서 편집이 가능하게 해줍니다..

다이내믹 파라미터는 파티클 에미터가 네개의 값을 전해 어떤 식으로든 사용할 있도록 주는 통로입니다. 값은

캐스케이드에서 ParameterDynamic 연결되서 사용됩니다.

여기서 사용된 이펙트는 세개의 다이내믹 파라미터를 캐스케이드와 연결하여 사용됐습니다.

 

첫째는 Alpha Erosion

  • (혹은 연기) 특유의 일렁이는 효과를 주기 위한 노드

  • 다이내믹 파라미터를 이용하여 캐스케이드에서 수치를 조절할 있도록 설정했다.

 

둘 째는 Random 0-1 per particle

  • 0~1 수치 사이에서 다양한 형태로 패닝 되도록 설정

  • 이 수치 역시 다이내믹 파라미터를 이용하여 캐스케이드상에서 수치 조절할 수 있도록 설정

 

셋 째는 Distortion Amount

  • 일그러짐 효과를 주기 위한 노드

  • 다이내믹 파라미터로 구성

 

 

최종 쉐이더

 

 

 

다이내믹 파라미터를 최소화하여 간단히 만들기

  • Alpha Erosion 효과만 다이내믹으로 설정하고 나머지는 기본 셋팅만 해줘도 출력품질에 큰 차이는 나지 않습니다. 모바일에서는 이 방식을 쓰는걸 추천합니다.

 

 

**모바일에서 알파가 정상적으로 빠지게 하는 방법

기존 구매한 쉐이더에서는 아래 그림처럼 알파가 잘 안빠집니다.

 

모바일에서 정상적으로 알파가 빠지는 설정을 하려면 Opacity값으로 설정해 줘야 합니다.

(알파 텍스쳐를 추가하지 않고 Lerp를 이용하여 나오는 마스크이미지를 사용했습니다.)

 

그러면 아래그림처럼 정상적으로 알파가 빠짐

 

 

쉐이더 설정에 대한 가이드가 끝났습니다.

이어서 캐스케이드 설정에 대해서..(내일 올리겠습니다.)

 

반응형
반응형

시네마가 나올때는 UI가 사라져야 하는데, 간단한 구현 방법입니다.

 

 

반응형
반응형

제작한 UMG를 화면에 띄우고 싶으실땐 아래 함수를 레벨 블루프린트에

추가해 주시면 PLAY시에 UMG가 출력됩니다~ 참고하세요~

 

반응형
반응형

상하체 분리 애니 적용시 상체가 중심축의 로테이션 값이 먹어 애니가 제대로 적용되지 않는 문제가 있었습니다.

그래서 담당 프로그래머 분이랑 같이 본 구조도 바꿔보고... 블렌드가 아닌 애디티브도 써보고 별짓을 다했는데아래처럼 정면을 제대로 바라보지 못하면서 모션이

 출력습니다.

 

 

 


이때 '본 마다 레이어로 블렌드 합니다'의 속성에서 아래 부분을 체크인 해줘야 합니다.

 

체크인 하면 아래처럼 정면을 바라보며 정상적으로 출력됩니다.

 

옵셔체크하나면 해결될 일이었는데, 문서공유되어 있는게 없어 한참을 헤맸네요..ㅠ

잊어버릴까봐 메모해 둡니다~

 

반응형
반응형

언리얼 튜토리얼에 올라온 비헤이비어 트리 쿽스타트 가이드를 토대로

평소에는 천천히 돌아 다니다가 주인공을 만나면 속도를 내서 달려올수 있도록 함수를 추가해 봤습니다.

https://docs.unrealengine.com/latest/KOR/Engine/AI/BehaviorTrees/QuickStart/index.html

 

 

블루프린트 함수 추가 내용

1. AI 캐릭터 추가 내용 - 일반 속도를 60으로 규정하는 함수 추가. speed rate 값을 캐싱하여 속도 조절 가능

 

2. 일반이동 BTT 추가내용

-문서에서는 기본으로 제공하는 노드로 구성되어 있는데, 그 부분을 제거하고 아래 내용을 추가해주면 됩니다.

원본 - https://docs.unrealengine.com/latest/KOR/Engine/AI/BehaviorTrees/QuickStart/12/index.html

 

 

3.  주인공을 만났을때의 BTT 추가내용

원본 - https://docs.unrealengine.com/latest/KOR/Engine/AI/BehaviorTrees/QuickStart/10/index.html

원본BTT에 아래 내용만 추가하면 됩니다.

 

 

4. 원본에서 비헤이비어 트리 구조 변경

원본에는 기본 트리를 사용하기 때문에 여러가지 조건문이 붙지만, 함수안에 이동 조건을 걸어놨기 때문에

필요없는 부분들이 생겼습니다.

원본 구조 - https://docs.unrealengine.com/latest/KOR/Engine/AI/BehaviorTrees/QuickStart/12/index.html

변경 구조


 

 

완료영상

 

 

반응형
반응형

스켈레탈 메시를 처음 생성하면 피직스 에셋이 자동 생성됩니다.

자동 생성이 안됐어도 스켈레탈 메시를 누르고 피직스 추가를 하면 피직스를 새로 만들수 있습니다.

 

자동 생성된 피직스는 모양과 크기가 제대로 설정되어 있지 않아 시뮬레이션 결과가 엉망으로 나옵니다.

처음 생성했을때의 피직스 모양 - 모양과 크기가 엉망입니다..

피직스 셋팅이 안된 상태의 시뮬레이션 영상 -  아 흉해라.. 

 

이 상태로 게임에 쓸수 없기에 각 관절마다 피직스 셋팅을 해줘야 합니다.

 

설정가이드

1. 각 관절이 전부 Sphyl 형태로 되어 있는데, 계산이 많이 필요한 허벅지나 양쪽 팔등만 설정하고 나머지는 Box 형태로

설정해 줍니다.

 

2. 관절형태를 설정후 크기 및 방향등을 재설정해 줍니다.

-각 관절이 겹치게 될경우 물리 계산이 꼬이게 되므로 서로 겹치지 않도록 하고 사이즈가 너무 크지 않고 설정해 줍니다.

 


3. 각 관절별 사이즈 조절이 끝나면 컨스트레인트 각도 설정을 해줘야합니다.

- 관절 사이즈보다 컨스트레인드 각도와 위치가 더 큰영향을 끼치게 되므로 많은 테스트가 필요한 부분입니다.

여기서 각 관절이 얼마만큼 꺽이도록 할것인지 설정하고, 방향은 어느 쪽으로 향하는지 등을 설정할 수 있습니다.

여기서 주의할 점은 컨스트레인트는 한번 삭제하면 복구하기가 굉장히 까다롭기 때문에(거의 다시 만들어야함..)

삭제할때 신중을 기해야 합니다.

 

4. 새로 셋팅된 피직스형태

 

 

위와 같이 셋팅을 마치고 나면 아래처럼 시뮬레이션이 출력됩니다. 아직 완벽하진 않지만, 점점 좋아질것을 기대하며.. 

 

오늘 처음 해본거라 아직 셋팅이 완벽하지 않아 여전히 부족한 부분이 있지만, 앞으로 많은 테스트를 거치다 보면

이쁜 결과물을 충분히 만들어 낼수 있을거라 기대합니다.

앞으로 배포될 APK에 일단 주인공만 포함될 예정이며 좀더 연구해 본후 몬스터에도 적용시킬지 검토중입니다.

 

반응형
반응형

 

 

 

 

 

 

 

언리얼 파츠 작업시 유의사항

- 스켈레탈 메시인경우 맥스에서 여러개의 모델로 디테치가 되어 있어도 언리얼로 임포트를 하면 메시가 전부 컴바인되어 임포트 됩니다.(스태틱 메시는 나뉘어서 부르는게 가능)

따라서 파츠를 나눌 부분은 맥스에서 익스포트시 따로 선택하여 익스포트 한후 언리얼로 임포트 해 올때 원본 모델의 스켈레톤과 피직스를 공유 받으면 파츠별로 붙혔다 뗐다가 가능해 집니다.

- 그리고 모델링 주실때 링크 구조로 주셨는데, 모델링은 링크 구조 없이 주셔야 문제가 없습니다.

스켈레탈 메시를 링크구조로 익스포트 하면 제일 상위 메시만 익스포트 되고 나머지는 익스포트 되지 않습니다.

 

 

파츠 분리 익스포트 방식

1. 메인 바디가 될 부분을 먼저 익스포트 한다.

 

 

2. 파츠로 나뉘어질 모델과 메인 바디와 똑같은 본을 선택후 각각 익스포트 한다.

 


 

3. 메인 바디를 언리얼로 임포트 한다.

-원본 모델이므로 스켈레톤과 피직스를 새로 생성한다.

 

-임포트후 생기는 파일들 : 메시, 스켈레탈, 피직스, 메터리얼

 

 

4. 그리고 파츠모델들을 각각 임포트해 온다.

-임포트시 기존에 생성된 메인 바디와 스켈레탈과 피직스를 상속받도록 설정한후 임포트한다.

 

5. 그렇게 불러진 파츠 모델들은 아래 그림처럼 몸에 붙혔다 뗐다 하는것이 가능해집니다.


 

 

반응형
반응형

스켈레톤을 교체하게 된 원인 - 문제가 발생했던건 prop1의 위치였습니다,

발사 모션을 할때 Spine 본 아래로만 모션이 들어가도록 설정했는데,

prop1 본이 스파인본 보다 상위에 있어 발사 모션을 할때 총이 따라오지 않는 문제가 발생했습니다.

 

원본데이터를 바꿔버리면 쉽지만, 내부망에 이미 등록되어 있는 주인공 데이터의 원본 모델링 소스를 바꿔버리면

여기저기 미싱이 나기 때문에 스켈레톤만 교체하는 방법에 대해 공유합니다.

 

 

1. 맥스에서 다시 본위치를 설정후 메쉬와 애니메이션을 전부 다시 뽑습니다.


 

 

2. 그 후 뽑힌 모델링 파일의 이름을 원본이름과 다르게 설정해서 임포트 해 줍니다.

- 여기서 중요한 것은 애니 이름은 그대로 뽑고 원본 모델 소스 이름만 다르게 해줍니다.


 

3. 새로 뽑은 모델링 FBX 데이터(pawn_women2)를 언리얼에 임포트해 오면 세가지 파일이 생깁니다.

- 여기서 스켈레톤외의 파일들은 전부 제거해 줍니다. 필요없기 때문에...

 

 

4. 기존 원본 모델링 FBX 데이터(pawn_women)의 스켈레톤을 새로 뽑아서 생성된 스켈레톤 데이터로

다시 할당해 줍니다.


 

5. 새로 할당후 반드시 리임포트를 해줘야 정상적으로 변환됩니다.

- 리임포트를 해야 정상적으로 나온다는것을 뒤늦게 알게 되어 엄청 헤맸네요..ㅠㅠ

**여기서 중요한 사항은 기존에 임포트했던 원본 FBX 파일이 기억되어 있으면 새소스를 불러올수 없으니

기존 원본 fbx는 반드시 삭제해 줍니다.


 

6. 모델링 임포트가 끝나면 적용된 애니메이션들도 전부 리임포트 해줘야 정상적으로 모션이

출력됩니다.

- 리임포트를 해주지 않으면 모션이 전부 미싱나거나 깨져서 나오게 됩니다.

 

 

위 작업은 외부망에서 테스트 할때는 문제되는 내용이 아니지만, 내부망에서 프로그래머들과 협업시

원본 모델링 소스가 바뀔 경우 많은 데이터에 오류가 발생하므로 원본 모델링 데이터를 바꾸지 않고

스켈레톤을 바꾸기 위한 방법이었습니다.

쉽게 바꿀수 있을거라 생각하고 접근했다가 반나절을 날려 보냈네요..ㅠ

잊어버릴까봐 메모해 둡니다~

 

반응형
반응형

트리거를 이용하여 특정위치나 캐릭터로 이동했을때 마티네가 발동하도록 손쉽게 구현할 수 있습니다.

또한 마티네가 시작됨과 동시에 주인공 캐릭터를 가리고 마티네가 끝나면 NPC가 사라지도록 하는등 트리거 박스와

레벨 블루프린트를 활용하여 손쉽게 제어가 가능합니다.

 

1. 트리거를 생성하여 발동 위치 정하기



 어디쯤에서 연출이 발동할지 박스 트리거의 크기와 위치로 지정한다.

 

 

2. 레벨 블루프린트를 통해 트리거에 주인공이 닿았을때 마티네 발동하도록 설정하기


OnActorBeginOverlap 명령어를 통해 트리거를 통해 마티네 실행을 제어할 수 있다.

 

 

3. 각 상황마다 NPC 나 주인공을 어떻게 처리할 것인지도 레벨블루프린트에서 정해주면 화면상에 나오는 캐릭터들을 정하고 배치할 수 있습니다.

 

 

위와 같은 설정을 하면 아래와 같이 캐릭터가 특정위치로 갔을때 연출이 발동하도록 할 수 있습니다.

아래 연출 화면은 삼품 7막영상의 마초대 허저의 영상을 언리얼로 간단히 이식한 영상입니다.

연출팀 마티네 교육을 위해 제가 만들었는데, 아직 후처리 전이라 퀄리티가 그렇게 높지는 않은 상황입니다.

 

 

 

 

 

게임 발동후 마초가 허저에게 다가가면 연출이 발동하고 연출이 끝나면 NPC가 사라지도록 설정했습니다.

반응형
반응형

Apex Cloth를 이용하기 위해서는 먼저 ndivia홈페이로 가셔서 개발자 계정으로 회원가입을 한 후

플러그인을 받아야 합니다.

https://developer.nvidia.com/apex-clothing-3dsmax-tutorials

NVIDIA_PhysX_For_Autodesk_3ds_Max_2014_64bit_3.02.01024.04200.msi(자료방에 공유)

라는 파일을 다운받고 설치하면 맥스에 PhysX라는 플러그인이 설치됩니다.


 

-간단한 사용법 튜토리얼

물리를 적용할 캐릭터에  Skin 작업 완료후 Apex를 적용해 줍니다.


 

그리고 Max Distance로 설정하여 Brush Value값을 지정한뒤 시뮬이 적용될 Poly를 칠해줍니다.

 

 

페인트 작업이 끝나면 천이 충돌하는 위치의 Bone들에게 충돌처리를 해줍니다.

Create Kinematic Rig를 실행후 Bone들을 ADD해 줍니다.


 

위 작업을 해주면 지정한 본들의 캡슐이 생성되며 각 캡슐마다 충돌영역을 수정하여 크기를 지정해 줍니다.


 

이제 맥스작업이 마무리되면 언리얼로 넘기기 위해 Export를 해줘야 합니다.

구 버전에는 없지만, 최신버전에는 export를 할 수있는 메뉴가 친절히 내재되어 있습니다.

 

익스포트 완료후 캐릭터FBX파일을 언리얼로 임포트후 생성된 Apx 파일을 추가해 주면 언리얼에서

시뮬을 하기 위한 모든 셋팅이 완료됩니다.

 

 

 

천시뮬이 제대로 들어갔는지 확인하기 위해 페르소나툴의 메시 카테고리에서 바람을 적용해 보면 시뮬레이터 적용을 확인해 볼수 있습니다.

 

 


 

 

 

모든 셋팅이 끝난후 애니메이션을 적용해 보면 천시뮬레이션이 멋지게 적용된 것을 확인하실 수 있습니다.

 

 

테스트하면서 발생했던 에로사항들..

1. 신버전에 대한 제대로된 튜토리얼이 존재하지 않아 혼자서 삽질하며 알아냈습니다. 까페에 글올려도 대답이 없어

혼자서 자문자답했다는..

2. 언리얼상에 임포트가 되지 않아 문제 원인을 찾던중.. 이거 역시 아무리 뒤져도 나오지 않아 혹시나 해서 폴더를

영문으로 바꿨더니 잘 되네요..ㅠ

3. 맥스 작업시 가끔씩 트랜스폼 기즈모가 사라집니다. 자세히 보니 사라지는게 아니고 엄청 작아져서 다시 키워줘야

합니다.

4. 페인트 브러시 크기가 줄어들지 않아 찾느라 엄청 헤맸네요.. 구글 어디에도 답이 없다가 혼자서 이거저거 뒤지다

겨우 알아냈습니다.

 

반응형
반응형

fbx2011로 제작된 데이터를 임포트해왔을 경우

페르소나만 열면 엔진이 꺼져버려 에디팅이 불가한 상태입니다.

아직 마티니에서 시퀀스간 블렌딩하는 방식을 찾아내지못해 페르소나에서 여러가지 해보려 했는데,

새로운 프로젝트를 만들어 언리얼 규약에 맞춰 fbx2014버전으로 다시 뽑아 제작해 봐야할거 같습니다.

 

반응형
반응형

유니티로 구매한 캐릭터들을 언리얼로 이식하는데 성공했습니다.

이식하면서 여러 문제가 발생했는데, 그 문제들을 필두로 리타겟 매니저를 활용하여 다양한 몬스터들의 모션을 한 가지 스켈레톤으로 공유 할 수 있는 방법을 알게 되었습니다. 그 부분에 대해서 자세히 기술하도록 하겠습니다.

리타겟 매니저의 가장 큰 장점은 본의 스케일이 달라도 애니메이션을 공유할수 있다는 점입니다.

 

- 원래 본 스케일이 다를때 모션을 공유하면 아래같이 스킨이 깨지고 늘어나는 현상이 일어납니다.

 

- 하지만, 리타겟 매니저를 사용하면 아래 그림처럼 다른 캐릭터의 스케일과 본 사이즈에 맞춰 자동 조절하여 정상적으로 출력됩니다.(맥스의 바이패드와 같은 기능)

이 부분은 아래 3번에서 자세히 다루도록 하고 순서대로 이슈 정리하겠습니다.

 

 

1. 유니티 구매 캐릭터를 언리얼로 옮기면서 생긴 첫 번째 문제.

- 본 축이 다르다! 리타겟 매니저를 활용해도 축이 다른 문제는 해결이 안됩니다.

그래서 이 부분은 맥스에서 수동으로 축을 재설정하는 작업을 진행했습니다. 실제로 이 작업이 가장 많은 시간이 걸렸

습니다. 자동화로 하려 했으나 스크립트 만드는데만 하루가 더 소요될거 같아 그냥 수동으로 잡았습니다..;;

현재는 스크립트 제작이 완료된 상태입니다.

 

이 작업의 공정

(1) 원본 메시의 스킨값을 저장하고 스킨을 없앤다. 혹은 에디터블 폴리로 통합한다.

(2) 그리고 언리얼과 축이 다른 본들을 언리얼 축과 맞춰 Affect Pivot Only로 축을 조절한다.

(3) 본들의 축을 수정후에 다시 스킨을 주고, 저장했던 스킨값들을 불러온다.

 

- 어셋 스토어 캐릭터들의 팔 축 (X축이 앞뒤, Y축이 좌우)
 

- 언리얼 캐릭터들의 팔 축 (X축이 좌우, Y축이 앞뒤)

 

 

2.  최초로 제작된 유니티 구매 캐릭터들을 언리얼로 불러오면서 기존 제작된 애니메이션을 리타겟하여 맞춘다.

- 스켈레톤을 공유하지 않고 새로 생성된 스켈레톤에 맞춰 애니메이션을 복사해서 새로 붙러온다.

 
(1) 복사할 모션을 전체 선택후 애님애셋리타겟


 

(2) 호환스켈레톤 표시를 체크 해제후 새로 불러온 스켈레톤에 맞춰 애니를 복사해서 넣어줍니다.

이 과정을 마치면 최초 생성된 유니티 캐릭터에게 새로운 애니메이션이 정상적으로 입혀집니다.

 

 

3. 복사된 애니메이션을 리타겟 매니저를 사용하여 다양한 체형의 유니티 캐릭터에게 공통 적용한다.

(1) Show retargeting Options를 체크한다. - 체크해야 리타겟 매니저를 쓸수 있는 옵션이 활성화 된다.

 

 

(2) root를 '스켈레톤의 트랜슬레이션 리타게팅 재귀적설정'으로 변환한다.

-root 아래 본들의 트랜지션을 각 본마다 공유하도록 하는 기능이다.


 

 

(3) 펠비스를 '스케일 적용 애니메이션의 트랜슬레이션 리타게팅 재귀적 설정'으로 변환한다.

- 펠비스 아래 본들이 스케일에 따라 애니메이션이 자동 보정되도록하는 기능이다.

 

 

(4) 창 -> 리타겟 매니저 로 들어와서 스켈레톤을 공유할 모델과 Humanoid에 공유할 본을 지정해 준다.

- 언리얼에서 지정한 본 위치에 불러온 본을 적용해 주는 기능이다.

 

이 과정을 마치고 각 모델들을 불러올때 최초 생성된 스켈레톤을 공유하도록 설정해서 임포트하면 아래 처럼 각 모델들이 서로 다른 체형임에도 같은 애니메이션을 문제없이 공유할 수 있게 된다.

 

 

 

 

앞으로는 다양한 체형의 좀비를 제작해서 다양한 모션을 함께 공유해서 사용하는것이 간편해 질거 같습니다.

 

반응형
반응형

캐릭터가 굴곡진 곳이나 불균형적인 곳을 다닐때 발이 땅을 뚫고 들어가는 것을 방지하도록 하는 기능입니다.

비대칭 지역을 다리가 알아서 인식하여 짝다리를 해주는 기능..ㅎㅎ

간단한 용어 설명

- IK(Inverse Kinematics)란?

일반적인 애니메이션은 아래 그림처럼 정방향 운동을 합니다. 하위 본에 로테이션을 주며 한개의 본만 영향을 끼치도록

애니를 줄수 있습니다.  

하지만 발끝등에 IK 체인을 걸어 IK 셋팅을 해주면 체인을 이용한 포지션 애니를 줌으로써 함께 IK셋팅이 되어 있는 모든

본이 동시에 애니가 적용되게 되며 발끝을 기점으로 애니메이션이 알아서 계산됩니다.

 

 

이 기능을 넣기 위해서는 캐릭터 블루 프린트와 애니메이션 블루 프린트 두 곳에 셋팅을 해줘야 합니다.

먼저 스켈레톤을 열어 바닥을 인식하게 할 위치에 소켓을 박아 줍니다.

 

 

지정한 소켓밑으로 오브젝트가 있는지 검사하여 충돌을 체크해주는 기능을 블루프린트를 통해 코딩해줍니다.
(문서 참조 - https://docs.unrealengine.com/latest/KOR/Engine/Animation/IKSetups/index.html)

IK Foot Trace라는 커스텀 함수를 제작하여 발 밑에 오브젝트가 있는지 검사합니다.

 

  

이렇게 제작된 캐릭터 블루프린트의 함수를 애니메이션 블루프린트에 형 변환후 변수로 호출하여 셋팅해 줍니다.

 

마지막으로 애님 그래프를 통해 오브젝트가 발생시에는 트레이스를 계산하여 발밑 연산을 해주고 평평한 평지에서는 원래 애니로 돌아오도록 설정해 줍니다.

 

위 셋팅이 끝나면 아래 그림처럼 발밑에 오브젝트를 계산하여 알아서 발위치를 잡아주게 됩니다.

 

반응형
반응형

언리얼4에는 블렌딩 스페이스, 몽타주, 에임오프셋 이 세가지의 강력한 모션 믹싱 기능이 내장되어 있습니다.

이 세가지만 잘 숙지하고 사용이 가능해 진다면 디자이너가 직접 캐릭터 움직임을 설정할 수도 있을거 같습니다.

하지만, 아직까지 버그가 좀 있고 프로그램의 기본적인 로직을 알아야 구성 가능하므로 협업이 반드시 필요할 거

같습니다. 저도 프로그래머의 도움으로 한 단계 한 단계 알아가고 있습니다..;; 혼자서는 불가능..ㅠ

 

 

1. 블렌딩 스페이스


- 각 모션별로 알아서 블렌딩 해줘서 방향과 위치별로 모션을 지정하고 수치값을 넣어주면
자동으로 블렌딩해주는 시스템입니다.
앞뒤 좌우 움직임 총 4종의 모션만 있으면 전진, 후진, 45도 우로 전진, 45도 좌로 전진, 45도 백좌로 후진, 45도 백우로 후진, 우측전진, 좌측 전진 총 8종의 모션을 알아서 블렌딩 해줍니다. 아래 동영상 참조.


이렇게 제작해준 블렌드 스페이스 파일을 애니메이션 블루 프린트에서 불러와 애니 스테이트 머신에 연결해 준후
방향과 속도값에 대한 변수 설정후 이벤트 그래프에서 설정하면 사용할 수 있습니다.
움직임을 줄 캐릭터에게는 입력값에 대한 움직임에 대해 블루프린트나 c++에서 코딩후 사용할 수 있습니다.

 

2. 몽타주


- 본을 슬롯으로 지정해 이름을 정한 후 다양한 모션에서 원하는 본의 애니만 넣어줄 수 있다.
가령 예를 들어 무기를 장전하는 애니에서 상체에만 애니를 주고 뽑은후 몽타주로 지정을 해주면
다리는 뛰거나 앉거나 하면서 상체는 장전하는 애니가 나올수 있다.
여기서 몽타주로 지정한 슬롯 이름이 'UpperBody'일 경우 몽타주내에서 지정한 슬롯 이름이 'UpperBody'로
설정한 몽타주들은 다 공통으로 사용할 수 있다.


아래 동영상은 뛰기 모션에서 총을 장전하는 모션과 칼질하는 모션을 몽타주를 이용하여 믹싱한 영상이다.
몽타주 파일 역시 캐릭터 블루 프린트와 애니메이션 블루 프린트에서 간단한 설정후에 사용할 수 있다.

 

 

 

 

3. 애임 오프셋

- Aim Offset, 에임 오프셋은 캐릭터의 무기 조준시 도움이 되는 블렌딩가능 포즈 시리즈가 저장된 애셋입니다.

 

애니메이션 도중, 에임 오프셋 결과를 달리기, 걷기, 점프 등과 같은 다른 모션과 블렌딩하여 캐릭터가 어느 방향을 보더라도 부드럽게 보이도록 만드는 것입니다.

에임 오프셋 배후의 핵심 개념은, 기존 애니메이션 위에 애디티브(더하기식) 블렌딩할 수 있도록 디자인된 것입니다.

예를 들어 에임 오프셋을 사용해서 캐릭터가 무기 조준을 하고자 한다면, 그 애디티브 모션이 캐릭터의 다른 모션에

방해받지 않도록 할 수 있습니다.(블렌드스페이스보다 강력하게)

다른 말로 하자면, 달리기, 빈둥거리기, 점프 등의 동작을 할 때 팔 부분은 에임 오프셋을 통해 더하기식으로 제어할 수 있도록 비교적 엄격하게 다뤄집니다.

여러가지 면에서 에임 오프셋은 BLend Space(블렌드 스페이스)와 비슷합니다. 블렌드 스페이스는 모션위주 블렌딩

이라면 에임오프셋은 포즈위주의 블렌딩으로서 캐릭터가 벽에 기대거나 특수 포즈를 취한다고 하더라도 에임오프셋에

기억되어있는 메시 스페이스를 기억해주는 특수한 기능입니다.

따라서 에임오프셋으로 설정할 모션들은 메시스페이스로 설정해줘야 합니다.(보통은 전부 로컬스페이스로 설정되어

있음)

메시 스페이스는 애니메이션 시퀀스의 프로퍼티로 설정됩니다. Additive Settings (애디티브 세팅) 카테고리 아래

Additive Anim Type (애디티브 애님 타입) 프로퍼티가 있습니다.

이것을 Mesh Space (메시 스페이스)로 설정하면 설명한 대로 메시 좌표계가 활용됩니다. 이 블렌딩은 비용이 꽤

들기 때문에, 일반적으로 에임 오프셋처럼 일정한 방향으로 계속해서 움직이는 애니메이션이 필요한 블렌드

스페이스 유형에만 사용해야 할 것입니다.

 

 

 

아래는 위 세가지 시스템을 사용하여 간략히 제작해 본 모션 시스템입니다.

 

 

 

반응형

+ Recent posts