카테고리 없음

[TIL_250221] 언리얼 엔진 머터리얼 적용 :: 캐릭터 에셋에 넣는 방법

raindrovvv 2025. 2. 21. 22:12

💭회고

오늘은 프로젝트 실습과 함께 언리얼 엔진에서 캐릭터 에셋에 머터리얼을 적용하는 방법을 집중적으로 학습했다.
머터리얼은 캐릭터의 외형과 특수 효과(예: 색상 변화, 텍스처 교체)를 결정하며, 실시간 동적 효과를 구현할 수 있는 중요한 요소이다. 머터리얼 펑션 호출, 노드 결합 및 Blend 활용법과 함께 동적 머터리얼을 구현하여 캐릭터 히트 또는 사망 시 효과를 연출하는 방법을 정리해보았다.

일단 Git에 대한 이슈가 있었으니 복기 먼저 하고 들어가보자...!

2025.02.21 - [Dev./기타 개발 관련] - GitHub Desktop 복구 과정에 대해...🥲

 

GitHub Desktop 복구 과정에 대해...🥲

💭깃(Git) 사용 중에 발생한 문제를 어떻게 해결했는지에 대한 그 과정을 정리해보고자 한다. 이번 글에서는 문제 발생부터 복구, 그리고 나중에 동일한 문제가 생겼을 때 대비할 수 있는 방법까

raindrovvv.tistory.com

🗺️마인드맵

📒학습 내용

1. 머터리얼 기본 편집 및 활용법

머터리얼 편집은 캐릭터의 외형을 제어하는 첫 걸음이며, 실무에서는 효율적인 노드 활용과 인스턴스 설정이 매우 중요하다.

1.1 머터리얼 펑션 호출하기

  • F키를 누른 상태로 클릭하여 머터리얼 펑션(Material Function: 재사용 가능한 머터리얼 노드 집합)을 불러온다.
  • 디테일 탭에서 필요한 머터리얼 노드를 검색하여 사용할 수 있다–한다.

1.2 노드 결합 및 Blend 활용법

  • 기존 머터리얼에 이미 노드가 할당되어 있다면, ‘더하기(Add)’ 또는 ‘곱하기(Multiply)’ 방식으로 결합하여 효과를 적용한다.
  • 단, 단순 결합 시 색상이 과도하게 강조될 수 있으므로, Blend(혼합: 두 값의 중간값을 산출하는 기법) 방식을 사용하면 좋다.
  • 인스턴스 형태로 머터리얼을 생성할 경우, 조절하고자 하는 값을 파라미터(Parameter: 값 조정을 위한 변수)로 설정하여 쉽게 변경할 수 있다.

  • 또한, 간소화된 머터리얼 형태에 적용할 때는 MakeMaterialAttributes 노드와 미리 제작한 MF_BasicDissolve 머터리얼 펑션을 연결하고, MatLayerBlend_Simple 노드를 이용해 결합하여 효과의 순서를 제어한다.
    • 기존 머터리얼 텍스처가 위쪽에, 디졸브 머터리얼은 아래쪽에 배치

기존 머티리얼 텍스처가 위로 가게하고, 디졸브 머티리얼은 아래로 가게 한다.
반대로 적용하면 덧붙인 것처럼 보이게 된다.


2. 동적 머터리얼 구현: 캐릭터 히트 및 사망 감지

동적 머터리얼은 캐릭터가 히트(피격)나 사망할 때 실시간으로 외형 변화를 적용하여 생동감을 부여한다.

그외에도 활용법은 다양하다...!

2.1 다이나믹 머터리얼 구현 단계

Create Dynamic Material Instance

부모 머터리얼 Set
캐릭터에 반영된 머터리얼의 순서(Element Index: 캐릭터에 적용된 머터리얼의 순서를 의미)를 확인한다


2.2 타임라인과 파라미터 제어

  • 타임라인에 float 트랙을 추가하여, 초기 값(예: -3)에서부터 디졸브 효과가 서서히 증가하도록 설정한다.
  • Set Scalar Parameter Value 노드를 활용하여 머터리얼의 Dissolve 파라미터 값을 제어한다.
  • 딜레이를 추가하여 일정 시간 후에 효과가 시작되도록 구성한다.

완성된 블루프린트!


이렇게 하면 딜레이로 인해 3초 뒤에 5초간 디졸브효과가 적용되어진다.

2.3 적용 사례 및 응용 팁

  1. 캐릭터가 총알 등 외부 충격을 받을 때, Hit Count를 후위 연산자로 누적하여 머터리얼 효과를 적용한다.
  2. 사망 시 RagDoll(실시간 물리 효과) 모션과 연동하여 자연스러운 사망 연출을 구현한다.
  3. 액터 파괴(Destroy Actor)를 통해 캐릭터가 완전히 소멸시킨다.
  4. 라인이 풀어지듯이 효과를 적용하여 보다 극적인 시각 효과를 구현할 수 있다.

2.3.1 히트 적용 :: 총알에 맞았을 때 혹은 죽었을 때

총을 구현하지 못해 일단은 박스 콜리전을 활용해 트리거를 만들었다.
후위 + 연산으로 hitcount를 세준다.

➕좀 더 빨리 작동시키고 싶을 때

더보기

- 딜레이를 빼주고 타임라인에서 조정


2.3.2 RagDoll 적용으로 자연스러운 사망 연출을 구현


2.3.3 액터 파괴(Destroy Actor)를 통해 완전히 소멸


2.3.4 라인이 풀어지듯이 연출

실무 팁:

  • 실시간 머터리얼 변경은 캐릭터의 상태(히트, 사망 등)를 직관적으로 전달하므로 게임의 몰입도를 높인다!
  • 타임라인과 파라미터 제어를 세밀하게 조정하여 원하는 효과를 정확히 구현한다.

3. 🐞트러블 슈팅 :: 믹사모 이용 시 주의사항, 애니메이션 수정

01.

믹사모에서 애니메이션 에셋을 가져올 때 주의사항이 있다.

믹사모 애니메이션은 T-Pose를 기준으로 애니메이션이 적용되어 있다.

그래서 Fab에 있는 캐릭터 스켈레탈과 일치가 안되어 무조건 깨진다.

 

따라서 믹사모에 있는 캐릭터까지 같이 들고와서 애니메이션 임포트 할 때, 스켈레탈을 써먹어야 한다.

그리고나서 리타켓을 해야 한다.

02.

믹사모 에셋 다운로드 할 때:

 

  • Format: FBX Binary
  • Pose: 리타게팅용 T-Pose / 실제 애니메이션은 “In-Place” 옵션 고려
  • FPS: 30(권장) 또는 60
  • Keyframe Reduction: “None” (원본 유지) 또는 “Uniform” (최적화)
  • With Skin으로 먼저 받아 리타게팅용 스켈레톤을 만들고, 이후 “Without Skin”으로 받아도 됨

 

03.

idle이 너무 빨라서 촐싹거리는 느낌이 났다.

➡️ 속도 스케일로 조절할 수 있었다.

04.

블렌드 스페이스를 만들 때 아래와 같이 적용하면 움직임이 훨씬 자연스러워진다!

  1. Idle
    • Speed=0, Direction=0 위치에 Idle 애니메이션 배치.
  2. Walk / Run(전후좌우)
    • 예:
      • Forward: (Direction=0, Speed=걷기 속도 또는 달리기 속도)
        • ex) 걷기 : 400, 뛰기 : 600
      • Left: (Direction=-90, Speed=동일 속도)
      • Right: (Direction=90, Speed=동일 속도)
      • Backward: (Direction=180 and -180, Speed=동일 속도)


🟣오늘의 옵시디언 현황