반응형

언리얼에서는 오랜 세월 풋 IK를 최대한 직관적으로 만들어내고자 많은 노력을 해왔습니다. 언리얼 5에 도입된 IK Rig를 통해 Foot IK를 셋업 하게 돼 기존에는 제어하기 힘들었던 많은 부분들을 직관적으로 제어할 수 있게 되었습니다.

 

IK Rig를 활용해서 Foot IK를 설정하면 좋은 점.

  1. 별도의 IK Joint가 필요 없음. 
    1. 마야에서 Export할 때 꼭 Ik Jpint를 만들어 Export 했어야 하는데, 이제 필요 없게 됨. 이제 옆의 Joint가 필요 없음.
  2. Visiulizing 된 프리뷰 창에서 Foot IK의 설정값을 실시간으로 지정하여 IK가 발동될 때의 값을 지정할 수 있다.

 

 

Ik Rig를 활용한 Foot IK 가이드

  • 스켈레탈 메시의 오른 쪽 버튼을 누르고 Create 탭으로 가면 IK Rig를 만들 수 있습니다.

 


IK Rig 기본 셋팅 가이드 - 아래를 펼쳐 주세요.

더보기
먼저 Pelvis에 Solver를 만들어 줍니다.
  • 몸의 중심으로 부터 계산이 이루어지기 때문에 Pelvis에 Solver가 있어야 Foot IK를 계산할 수 있게 됩니다. 
    • 이어서 Foot L/R에 IK를 설정하기 위해서는 Calf부터 계산이 이루어지기 때문에 calf에 셋팅값을 추가해 줍니다.
    • 마지막으로 Foot LR에 New IK Goal을 눌러주면 기본 적인 설정은 완료 됩니다.

 

  • 기본 셋팅만 해서는 Foot IK 가 발동 될 때의 움직임이 아래처럼 어색하게 설정이 됩니다.

  • 위와 같은 결과가 나오지 않게 하기 위해서는 기존에 설정했던 Pelvis의 IK bone setting에서 Rotation Stiffness와 Position Stifiness를 조절하여 Foot Ik에 대한 상대적 움직임을 적절하게 설정해 줍니다.
    • Calf값도 조절해 주면 무릎이 벌어지는 각도등을 더 상세하게 설정할 수 있게 됩니다.

 

IK계산용 Anim Blueprint 제작하기 - 아래를 펼쳐 주세요.

  • 더보기
    IK Rig에서 사용한 동일한 스켈레톤의 Anim Blueprint 파일을 만들어 줍니다.
    • Anim Graph 창에서 IK Rig 를 설정할 수 있는 명령어를 불러옵니다.
       
    • IK Rig의 Rig definition Asset에 기존에 만든 IK Rig 세팅 파일을 넣어 줍니다.
    • 위 상태로 Input Pose와 Out Pose로 연결해 주면 다른 캐릭터의 또 다른 애님 블루프린트에서 언제든지 가져다 사용할 수 있게 됩니다.
       

     

     

     

    • 그럼 이제 각각의 Foot 위치와 Pelvis 위치를 계산하여 배경 오브젝트에 의해 IK가 작동되도록 계산식을 만들어 주는데 먼저 Foot Trace라는 함수를 만들어 바닥에 레이를 쏴서 바닥 지면과 발바닥의 상대적 위치값을 실시간으로 구해오는 함수를 만들어 줍니다. 세세한 계산에 대한 멘트는 하지 않을 테니 왜 이렇게 코드가 짜여 있는지 직접 고민해 봅시다.

      • Foot의 Offset과 Rotation // Pelvis의 Offset 값을 알아야 하므로 먼저 변수를 만들어 줍니다.
    • FootTrace 함수를 이용하여 발바닥 와 Pevis의 위치를 어떻게 교정해야 하는지 알았으니 Tick Graph에서 실시간으로 발과 Pelvis의 움직임을 교정해 준 뒤 그 위치 값을 변수로 만들어 저장해 주자. 이때 Jump시나 Falling시에는 IK가 작동하면 안 되므로 예외처리를 해줍니다.
    • 먼저 위 상황을 제외한 경우에 대해 Foot IK가 처리되는 순간의 위치값과 로테이션을 만들어 내서 Foot L(R) Offset / Foot L(R) Rotation 변숫값을 아래처럼 Set 시켜 줍니다.
    • 이어서 Foot위치에 따라 Pelvis의 위치값도 교정해 주어야 하므로 아래 계산값을 이용해 Pelvis의 Offset값도 Set 시켜 줍니다.
    • 각각의 변수값을 알아냈으니 이 값들을 아까 전에 만든 IK Rig 설정창에 각각의 값들을 적절하게 연결시켜 줍니다.
    • 메인으로 사용되는 애님 블루프린트에서 Linked Anim Blueprint 함수를 이용하여 위에서 제작한 Foot IK용 AnimBP를 아래처럼 연결해 주면 애님 블루프린트 간 통신이 이루어집니다.

Foot IK 결과 최종 확인

애님 그래프 작업까지 완료 후 최종 출력이 되도록 설정이 완료되면 아래 영상처럼 자연스럽게 Foot IK가 작동하는 것을 확인할 수 있습니다.

 

반응형

'Engine > UNREAL' 카테고리의 다른 글

AAA Locomotion  (0) 2020.12.12
콜라보 애니메이션  (0) 2019.07.19
Physics를 활용한 Tail 애니메이션  (0) 2019.07.19
Dynamic Parameter  (0) 2019.05.28
Item BP 구조  (0) 2019.05.28

반응형

꼬리 다이내믹을 열심히 연구중입니다.

자연스러운 다이내믹을 찾기 위해 여러가지 연구 끝에 가장 자연스러운 설정이 나름 발견되어 기억하고자 정리합니다.

Tail 조인트는 7개로 설정되었으며


RootM과 Tail0_M의 설정값.

Simulation Space를 World로 설정하고 Bound Bone을 Root본으로 설정합니다.


2~4번째 조인트 설정값

Box Extend는 3가지 모두 15로 설정하고, Simulation Space는 Actor로


5~7 번째 조인트 설정값

2~4랑 다 똑같고, Planar Limit값을 설정하여 바닥 충돌을 처리한다.

위치 : y가 바닥 충돌면 위치 설정, 5번째 20, 6번째 40, 7번째 50으로 설정. 나머지는 모두 0. 아래 Z는 무시

회전 : x:120, 나머지는 무시


바디 값 설정 - 부모의 움직임에 의해 자식이 움직이기 위한 설정.



Dynamic Value를 변수로 전환하여 FInterp To 함수를 활용해 Idle 상태(속도0)에서는 다이내믹이 돌지 않도록 막는다.

반응형
반응형

최근 마티네 작업중에 카메라밖에 있는 캐릭터일 경우 렌더링 되지 않는 문제가 발견됬습니다.

그것을 해결하기 위해서는 Always Tick PoseAlways Tick Pose And Refresh Bone 으로 설정을 변경해 주시면 해결 됩니다.

 

레벨-> 해당 스켈레탈 캐릭터의 디테일 옵션 -> Skeletal Mesh의 MeshComponent Updata Flag를 보시면

Always Tick Pose로 되어 있습니다.

해당 옵션의 설명을 보면 Always Tick, But Refresh Bone Transforms only when rendered 이라고 설명하고 있습니다.

번역  - 렌더링  경우에는 반드시 하지만 업데이트 에만 변환합니다....  한마디로 렌더링이 되어야 업데이트를 한다는 이야기입니다.

 

이 옵션을 Always Tick Pose And Refresh Bone으로 설정을 변경해 주시면 정상 출력이 되는데요, 이 설정은 렌더링 되든 안되든 항상 본의

트랜스폼을 감지하게 됩니다.

 

당연히 이 옵션이 Always Tick Pose보다 무겁기 때문에 모든 캐릭터에 켜주시면 안되고, 불가피하게 안나오는

캐릭터들에게만 체크해 주시기 바래요^^

반응형
반응형

 

FBX와 언리얼상에 애니메이션 속도가 다르게 재생되는 문제가 발생했습니다.

여러가지 확인해 본 결과 FBX의 샘플링 속도와 엔진에서의 샘플링 속도 차이로 생기는 문제였습니다.

매번 발생하지 않고, 간헐적으로 발생하는 문제인데요~

문제 발생시 Use Default Sample Rate 를 체크하고 임포트 해주면 문제가 해결됩니다.

 

반응형
반응형

시네마팀에서 마티네에서 애니메이션 레이어 기능이 필요하다고 하셔서 내용 연구하여 공유합니다.

 

1. 편집할 애니메이션 선택


 

 

2. 어셋 생성하여 시퀀스 추가

- 첫 포즈만 불러올지 애니메이션을 전체 불러올지 정할 수 있습니다.


 

 

3. 생성된 시퀀스 에서 모션 편집

- 정면을 보면서 걷는 모션을 왼쪽을 보면서 걷는 키를 만들어보고자 합니다.


 

4. 각 메뉴별 상세 설명

(1) 현재 편집 시퀀스 - 현재 모션이 저장될 시퀀스 입니다.

(2) 현재 편집 관절 - 키를 수정할 관절입니다.

(3) 뷰 상에서 로테이션, 포지션, 스케일 키등을 편집후 +키 버튼을 누르면 애니메이션 키가 적용됨

(4) 커브 에디터 - 맥스의 커브 에디터와 거의 흡사하며 그래프의 꺽임등을 수정할 수 있고, 키도 수정할수 있습니다.

(5) Roll , Pitch , Yaw의 각축의 락을 걸어 원하는 축에만 모션을 줄 수 있음

(6) 작업을 하다보면 그래프가 보이지 않는 곳으로 사라질 때가 있는데, 새로 고침이나 모두 표시 버튼을 눌러주면 보기 편하게 정리해 줍니다.

 

- 이미지를 클릭하시면 크게 보실 수 있습니다.

 

작업된 모션 영상

- 원래 정면을 보던 모션인데 위 기능을 활용하여 왼쪽을 바라보며 걷도록 수정해 봤습니다.

 

 

키 작업시 주의사항

- 맥스만큼 편하게 키를 제어하는 것은 어렵습니다.. 당연히 간단한 레이어 포즈 편집용으로만 사용해 주시는게 좋을거 같습니다.

1. 키 복사가 쉽지 않다. 맥스에서는 Shift 버튼으로 간편히 키 복사가 되지만, 언리얼에서는 그래프상에서 수치를 복사하여 사용합니다.

2. 키 편집 공정이 맥스와 매우 달라 숙지하는 시간이 필요함. - 틈틈히 연습이 필요해 보입니다.

3. 오토키(Autokey)가 아닌 셋키(Setkey) 방식입니다~  풀어서 설명하자면 모션을 움직인 후 반드시 키버튼을 눌러줘야 모션이 적용됩니다.

 

반응형
반응형

얼마전에 맥스의 프랍이 언리얼로 넘어가면서 y축으로 90도 돌아가는 문제가 있었습니다.

그 이유를 명확히 이야기 하자면 맥스와 언리얼의 좌표계가 다르기 때문입니다.

맥스 - 오른손 좌표게 , 언리얼 - 왼손 좌표계

 

 

여기서 오른손 좌표계와 왼손 좌표계에 대한 간단한 설명.

3차원 좌표계를 표현할 땐 보통 아래의 그림과 같은

왼손 좌표계(left-handed coordinate system)와 오른손 좌표계(right-handed coordinate system) 두 가지 방법을 이용합니다.

 

오른손 좌표계는 근 100여년 동안 표준적으로 사용되어온 방법입니다. 물리학계를 비롯해 OpenGL 등 대부분은 이 좌표계를 사용합니다.

왼손 좌표계를 사용하는 대표적인 사례로는 Direct3D가 있습니다.

 

이 두 좌표계를 외우는 방법은 다양하겠지만다음과 같은 방법으로 숙지하면 알기 편합니다.

 

  1. 박수 칠 때 처럼 양 손을 마주 보도록 펼친다. 이 때 엄지손가락은 나머지 손가락과 직각이 되도록 한다.

 

  2. 가운뎃손가락을 손바닥에 수직이 되도록 반 쯤 접고, 약손가락과 새끼손가락은 완전히 접는다.

 

  3. 마치 '쌍권총 자세'를 연상케하는 모양이 되었을 것이다.

 

     왼손은 엄지손가락부터 순서대로

 

     [엄지손가락-x, 집게손가락-y, 가운뎃손가락-z]

 

     오른손은 반대 순서로

 

     [엄지손가락-z, 집게손가락-y, 가운뎃손가락-x]

 

     이런 식으로 대응시킬 수 있다.

 

이 상태로 양 손의 집게손가락을 하늘을 향하게 해서 위의 그림에 나온 좌표계와 비교해보시면 똑같은 배치가 되어있음을 알 수 있습니다.

 


추가질문 - 다른 뼈들은 알아서 축정렬이 되서 잘 들어오는데 왜 소켓에 붙은 Prop만 그렇지?

그 이유도 간단합니다. 다른 모든 더미와 뼈들은 맥스에서 제작해서 넘어오기 때문에 알아서 부모축을 따라가면서

문제가 없지만, 무기에 붙은 소켓 더미는 언리얼에서 제작한 것으로 언리얼 원본 좌표를 따라갑니다.

거기서 프랍이 혼란을 갖게 됩니다.

프랍은 맥스에서 만든거라 오른손좌표계로 기억되어 넘어오지만, 언리얼에서 만든 소켓은 왼손 좌표계다 보니

축이 다르게 설정 되는 겁니다.

이 문제를 해결하기 위해서 무기 축 더미를 언리얼 소켓이 아닌 맥스에서 더미를 만들어 사용하게 되면

문제가 해결되는데, 현재 언리얼에서 쓰는 소켓 더미는 엔진상에서 많이 사용되고 있기 때문에 그 상태를 유지하도록 한겁니다.

 

반응형
반응형

*제작한 이펙트가 처음엔 잘 나오다가 시간이 지나면 알파값이 제대로 안빠지고 소팅도 안되는 문제가 발생하고 있습니다.  동시에 프레임도 떨어지고 있습니다. .(갤럭시s5, 넥서스5, G2 모두 발생)

 

 

원본 이펙트

 

 

빌드후 시간이 지나면서 문제가 발생하는 모습

 

 

여러가지 테스트를 거쳐 원인을 파악해 본 결과 파티클에 패너 함수가 적용되면서 값이 누적되면서 발생하는 문제로 추정됩니다.

파트클에도 움직임을 주고 쉐이더에도 움직임을 주면서 뭔가 문제를 발생하는거처럼 보입니다.

패너값을 0으로 놓고 파티클로만 움직임을 주고 빌드를 하면 문제가 발생하지 않습니다.




**이 문제의 해결방안~

이 문제점을 커스텀 UV를 사용하여 해결하였습니다.

기존에는 PANNER를 이미지에 바로 연결하여 UV애니메이션을 적용했는데, 모바일 빌드시에는 텍스처에 바로 연결하지 않고

커스텀 UV를 만들어 연결해줘야 느려지는 현상이 없어집니다.

반응형
반응형

모프타겟을 사용하여 마티네에서 표정애니를 추가할 수 있는 것을 확인했고, 모바일에서도 작동됨을 확인했씁니다.

 

이 작업이 들어가기전에 선행되어야할 중요한 사항.

- 모프타겟은 버텍스 애니라 연산부하가 있어 표정애니 넣을 부분만 파츠로 나눠서 적용한다.
- 얼굴만 따로 분리하니까 2400 poly 정도 됩니다. 몸 전체는 15000개 이상이라 그냥은 절대 넣을수 없음.PC에서도.. 퍼포먼스 테스트를 거친후 무리가 없다고 판단될때 게임에 적용.

 


작업 공정 가이드

1. Max 에서의 작업

맥스의 모퍼 기능을 활용해 필요한 표정들을 셋팅해 준다. 여기서는 테스트로 5가지만 넣었음.
모퍼의 장점은 모델러들에게 부탁해 원하는 표정을 버텍스를 이용하여 퀄리티 있게 마음껏 만들어 사용할 수 있다.

(1) 원본 모델 소스를 여러개로 복사해 원하는 표정의 모델링을 한다.

 

(2) 원본 모델 소스에 복사된 캐릭터들의 표정 데이터를 모퍼에 추가해 준다.

- 0~100의 수치를 조절하여 표정을 다양하게 꾸밀 수 있다.

 

(3) 맥스에서 익스포트시 체크사항

익스포트 스크립트를 사용하시면 안되고, 아래 사항을 체크하셔서 수동으로 익스포트 하셔야 합니다.

 

 

 

2. 언리얼에서 작업
 

(1) 임포트시 체크사항

- 모프타겟 체크


 

 

(2) 메쉬창에 모퍼 리스트가 뜨는지 확인

-맥스에서 지정한 모핑 리스트가 그대로 넘어왔는지 수치를 조절하며 테스트

 

 

(3) 페이셜을 추가할 시퀀스에 표정애니를 추가해줍니다.

- 모핑할 시퀀스를 추가 -> 변수 추가 -> 모퍼네임설정(수동으로 적으면 인덱스로 불러옴) -> 커브 추가로 애니 추가


 

- 커브 유형을 모프커브로 설정해 줍니다~ 설정안해주시면 애니가 안나와요~


 

(4) 마티네에서 표정애니가 추가된 시퀀스를 호출함

 

 

아래는 위 공정을 거쳐 마티네상에 표정애니를 추가해본 테스트 영상입니다.

 

반응형
반응형

1. 발사 모션을 상체에만 적용 시키기 위해 Fire라는 몽타주 애니메이션을 만들어 발사 Anim 파일을 적용시켜 줍니다.

 

 

제작된 몽타주 파일에 발사 모션을 연결해 준뒤 UpperSlot을 생성해 줍니다. - 상체모션만 넣기 위한 준비


 

 

 

2. 준비가 끝나면 Animation Blueprint로 와서 새롭게 코딩을 해줍니다.

- 애니메이션 블루프린트 제작할때 완료했던 모션을 캐시로 저장하여 메모리에 넣어줍니다.

 

 

-저장된 포즈를 불러와 사용합니다.

 

 

- 그 다음 '본 마다 레이어로 블렌드'를 불러옵니다.

 

- 블렌드의 세부 설정으로 가서 어느 본의 몇 번째 부터 블렌드가 시작될건지 정해 줍니다.

 

- 몽타주로 설정한 슬롯을 불러옵니다.

 

- 필요한 노드들이 전부 불러졌으면 최종적으로 연결해줍니다.

 

 

 

 

 

3. Animation Blueprint에서 제작된 것을 Character Blueprint에서 적용하도록 셋팅해 줍니다. 

위 그림처럼만 연결해주면 이제 발사버튼을 누를때 마다 볼사모션이 나옵니다.

이제 마지막으로 물리가 적용된 총알을 만들어 적용시켜 봅시다.

 

 

 

4. MyProjectile 이라는 물리가 적용된 총알을 만들어 줍니다.

물런 블루 프린트로~

 

 

 

5. 마지막으로 모바일 터치에 대한 부분과 총알 발사에 대한 부분을 캐릭터 블루프린트에서 코딩해 줍니다.

여기까지 마무리되면 모든 적용이 끝났습니다~!

언리얼은 계속 공부해 보고 싶은 엔진이긴 합니다..^^

 

적용이 완료되면 배경 오브젝트에 충돌이 일어나며 상하체 모션에 블렌드가 일어납니다~^^

 

 

반응형
반응형

- 게임모드 제작하여 게임속에 주인공 캐릭터 넣기

 

1. 게임모드 블루 프린트를 만든다.

- 이녀석은 아이콘에 따로 색이 안붙는거 같네요~

 

 

2. 디폴트 창에서 기존에 제작한 캐릭터 블루 프린트 연결하기


- 캐릭터 뿐 아니라 UI와 컨트롤러등도 내가 제작한 걸로 넣을 수 있습니다.

 

 

3. 월드 세팅에서 제작한 게임모드 불러 오기

여기까지 만들면 게임에서 뛰어다니는 주인공을 넣는데 필요한 모든셋팅이 끝났습니다.

 

 

PLAY~~!! 

 

 

근데 아무것도 든거 없이 맨손으로 필드만 뛰어다니니 왠지 심심하네요..

쓰는김에 발사모션 적용하는 방법과 총알에 물리 적용하는거 까지 같이 적어보겠습니다... To Be Continue..

 

반응형
반응형

 

*본 가이드는 4.6때 작성된것으로 최신버전과는 다소 차이가 있을수 있습니다.

**주인공 캐릭터 만들기 2번째

애니메이션 블루 프린트 만들기​



1. 주인공이 사용할 모션을 임포트해 옵니다.

​- 필수적으로 필요한 모션은 이동 모션(상,하,좌,우)과 대기모션과 발사모션입니다.

애니메이션 관련 문서

https://docs.unrealengine.com/latest/KOR/Engine/Animation/Sequences/index.html







2. 캐릭터 블루프린트를 제작하면서 사용된 원본 모델의 스켈레톤을 설정합니다.

블루프린트를 생성하려고 하면 스켈레톤 설정 화면이 나옵니다.

- 애니메이션 블루 프린트 파일. 이 녀석은 특이하게 주황색입니다. 

 

 


3. 주인공의 이동모션에 사용될 앞,,,우 모션을 블렌드 스페이스로 만들어 설정해 준다.


이미지를 클릭하시면 원본으로 보실수 있습니다.


- 필요한 모션들을 드래그앤 드랍으로 블렌드 제어창으로 넣을 수 있습니다. 여기에 필요한 대기, 이동관련 모션들을 넣어줍니다.


 



4. 주인공의 총구겨냥포즈에 사용될 앞,,,우 모션을 Aim Offset으로 만들어 설정해 준다.

 

- AimOffset은 강력한 포즈 저장기능이라 MeshSpace 형식으로 되어 있는 모션만 불러와서 사용할수 있다. 사용할 모션들을 전부 MeshSpace 형태로 바꿔줍니다.


 - 여기서도 필요한 모션들을 드래그앤 드랍으로 블렌드 제어창으로 넣을 수 있습니다. 여기에 필요한 각 방향별 Aim 모션을 불러옵니다.

 



 

5. 위 두가지 제어가 끝나면 다시 애니메이션 블루프린트로 가서 애님 스테이트를 만들어 준다.

(1) 기본 스테이트 머신 추가​

스테이트머신이 만들어진다.

생성 완료후 서로 이어준다.


 

 (2) New State Machine 을 더블클릭후 스테이트머신 제어창으로 들어간다.

- 그러면 비어있는 Entry라는 스테이트 연결고리가 나온다.​


(3) Entry에서 화살표방향으로 마우스를 드래그앤 드랍을 한 후 MOVE 라는 스테이트를 추가한다.


-Move에 대한 스테이트를 제작할거라 Move라고 이름지어줍니다.(이름은 자유입니다~)​



 (4) Move로 제작된 스테이트 머신을 다시 더블클릭해서 스테이트 제어창으로 들어와 위에서 제작했던 블렌드 스페이스와 에임 오프셋을 드래그앤 드랍으로 창에 올려 넣는다.

이미지 클릭하시면 원본으로 보실수 있습니다.



-여기까지 들어오면 이제 스테이트머신에서 모션 연결의 최종단계까지 왔습니다.


6. 블렌드 스페이스와 에임 오프셋에 사용된 변수값을 블루프린트에서도 선언하여 같은 구조로 움직이도록 설정한다.

  

방향, 속도, z축(Yaw),y축(pitch)에 대한 변수를 Float형으로 선언~


- 선언된 변수들을 스테이트창으로 드래그 하여 GET으로 얻어온다.


- 이제 마지막으로 아래 그림처럼 서로 연결해 주면 마무리 된다.




이동속도와 회전 의 변수값을 넣어보면서 캐릭터가 프리뷰창에서 원하는 대로 움직이는지 확인한다.


 

 

 

7. 애님 스테이트 제작이 끝났다면 이벤트 그래프로 가서 캐릭터 블루 프린트 값을 형변환으로 불러와 위치 제어 함수를 블루프린트로 제작해 준다. 

 


- 이동과 회전에 대한 블루프린트

(블루프린트의 제작 공정에 대한 자세한 코멘트는 생략합니다.)

이미지 클릭하시면 원본으로 보실수 있습니다.



- 캐릭트 블루프린트에서 움직임이 일어났을때 방향과 속도에 어떤식으로 영향을 끼칠지에 대한 함수입니다. 속도와 방향을 벡터로 변환해주고 기존에 선언했던 변수들의 값을 얻어온 값으로 SETTING해 줍니다.




- 총구 겨냥에 대한 블루프린트

(블루프린트의 제작 공정에 대한 자세한 코멘트는 생략합니다.)

이미지 클릭하시면 원본으로 보실수 있습니다.


- 캐릭트 블루프린트에서 마우스 회전이 일어났을때 총구 방향에 어떤식으로 영향을 끼칠지에 대한 함수입니다. 여기서도 방향을 벡터로 변환해주고 기존에 선언했던 변수들의 값을 얻어온 값으로 SETTING해 줍니다.

 

 

여기까지 제작후 컴파일후 에러가 없으면 완료된겁니다.

 


8. 애님블루 프린트 제작이 끝나면 캐릭터 블루 프린트에서 사용할수 있도록 디폴트 창을 열어 방금 제작한 애님 블루 프린트를 연결해 준다.

 이미지를 클릭하시면 원본으로 보실수 있습니다.


 

처음 해보시는분은 워낙 절차가 많아서 어렵고 복잡하게 느끼실수 있으실거 같네요..


블루 프린트 설정에 대해서는 언리얼 문서를 참조하시면 많은 도움 받으실거에요~

https://docs.unrealengine.com/latest/KOR/Engine/Animation/AnimBlueprints/index.html

여기까지 애니메이션 블루 프린트의 제작 방식이었습니다.

반응형
반응형

**본 가이드는 언리얼4.6에서 제작한거라 최신버전과는 다소차이가 있을수 있습니다.

 

언리얼엔진의 강력한 기능중 하나가 주인공 캐릭터 제작이 타 엔진보다 간편하다는 점입니다.

하지만, 언리얼엔진을 자주 접해 보지 않은 사람에게는 결코 쉽지 않아 보이기도 합니다.

항상 느끼지만 알기 전까진 어렵다가 알고 나면 쉬운게 언리얼엔진인거 같아요..ㅎㅎ

주인공 캐릭터 제작방식에 대해서 3개의 카테고리로 나눠 살펴보고자 합니다.

**메시 임포트 같은 기본적인 사항은 문서를 참조하도록 하고 넘어가도록 하겠습니다.

**총알 발사나 무기 장착 같은 테크닉에 대해서는 잠시 예외로 하고 추후에 다루도록 하겠습니다.


주인공 캐릭터를 만들기 위해 필요한 파일은 3가지입니다.

  

캐릭터 블루 프린트

 

애니메이션 블루 프린트

 

게임모드 블루 프린트



이 시간에는 주인공 캐릭터를 만들기 위해 가장 뼈대가 되는

캐릭터 블루 프린트 제작 방식 에 대해서 살펴 보겠습니다.



1.주인공으로 사용될 스켈레탈 메시 파일을 임포트 합니다.

기본적으로 메쉬, 피직스 에셋, 스켈레톤 세개의 파일이 생성됩니다.


스켈레탈 메시 임포트에 대한 언리얼 문서 -

https://docs.unrealengine.com/latest/KOR/Engine/Content/FBX/SkeletalMeshes/index.html


2.주인공 스켈레탈 메시를 제어할 캐릭터 블루프린트를 생성해 줍니다.

파일을 생성할 창에서 오른쪽 마우스 -> 블루프린트-> 캐릭터로 들어가 생성후 보기 편한 이름으로 지정해 줍니다.



이 예제에서는 여자주인공을 사용하기 때문에 Women_BP 라는 이름으로 설정합니다.

프리뷰에서 색깔별로 어떤 에셋인지 구분하도록 되어 있습니다.

블루프린트는 이름답게 파란색으로 되어 있네요~





 


3. 블루프린트 -> 컴포넌트 에서 사용할 메쉬와 카메라를 설정해 줍니다.


(1) 캐릭터 설정

​- 메시에 대상 캐릭터를 선택후 화살표 버튼을 눌러서 넣어줍니다.


- 메시가 바운더리 박스와 같은 위치에 있도록 위치값을 맞춰 줍니다.

- 메시가 Arrow(하늘색 화살표 방향)와 일치하도록 회전해 줍니다.



(2) 카메라 설정

컴포넌트 추가 -> 스프링 암

스프링암을 부모로 하여 하위에 카메라를 연결해 줍니다.

스피링암 추가후 카메라 추가


-  일반 카메라를 넣어도 되고 스프링 암 카메라를 넣어도 되지만, 스프링 암 컴포넌트는 부모와 자손에 일정한 거리를 유지해주며 충돌이 생기면 벽을 뚫고 나가는 것을 방지해주는 컴포넌트입니다.


- 카메라의 위치값을 설정하여 주인공을 바라보는 뷰를 정해 줍니다.



수치로 설정해 주면 되는데 실시간으로 화면을 보면서 설정하고 싶다면, 현재까지 설정한 캐릭터 블루 프린트 파일을 컴파일 후 저장한 다음 레벨(씬)에 올려 실시간으로 카메라 위치를 변경할 수 있습니다.


 

 


4. 편집 -> 프로젝트 셋팅 -> 입력으로 가서 키보드입력에 대한 설정을 해줍니다.

​- 입력에 대한 정보를 얻어 오기 위해 키보드 입력을 직접 설정할 수 있습니다.

-MoveForward의 Scale 값은 캐릭터의 움직이는 값입니다.



- 전부 만들기 힘들다면 다른 프로젝트에서 구성된 입력을 익스포트하여 임포트로 불러와서 사용해도 무방합니다.



5. 블루프린트 코딩 - 아래 그림을 참조하셔서 코딩해 줍니다.


 

전진버튼을 누르면 Action Mappings의 입력제어에 캐릭터의 새로운 벡터값을 구해 무브먼트를 설정하는 구조.


 


마우스를 회전하면 Axis Mapping의 축 변환에 따라 캐릭터의 새로운 로테이션값을 구해 무브먼트를 설정하는 구조.

 

오른쪽 마우스를 눌렀을때 화면이 변경하도록 하는 설정 - 바이오하자드 방식을 따라했습니다.



스마트폰 화면 터치 입력 - 모바일 컨트롤러 지정 

터치를 실행하기 위해서는 회전과 전진에 대한 Float형 변수를 먼저 선언해야 합니다.




 그 외에 총알 발사나 무기 변경 같은 함수도 캐릭터 블루 프린트에서 지정할수 있지만, 그 부분에 대해서는 마지막 시간에 다뤄보도록 하겠습니다.


여기까지 캐릭터 블루 프린트의 제작방식이이었습니다.

다음에는 애니메이션 블루프린트 제작에 대해서 살펴보겠습니다.  To be Continue..

 

반응형

+ Recent posts