반응형
방대한 정보로 가득 찬 블루프린트의 하나인 **물 애니메이션(Water Animation)**에 대해 이야기하겠습니다. 물의 애니메이션을 켜고 끄는 방법을 배우겠습니다.
1. 물 액터를 블루프린트 클래스로 변환

- 지오메트리 캐시 선택: **물 싱크대(water sink)**를 숨기고, 지오메트리 캐시(Geometry Cache) 액터를 선택합니다.
- 블루프린트 클래스로 변환: 선택한 지오메트리 캐시를 **블루프린트 클래스(Blueprint Class)**로 변환합니다. **하베스트 컴포넌트 지오메트리 캐시(Harvest Component Geometric Cache)**를 선택합니다.
- 이름 지정: 이 새로운 클래스의 이름을 BP_Water와 같이 지정합니다.

- 컴포넌트 이름 변경: BP_Water 블루프린트를 열고 지오메트리 캐시 컴포넌트의 이름을 Water로 변경하고 컴파일(Compile) 및 **저장(Save)**합니다.

2. 위젯 블루프린트에 물 액터 참조 추가
이전에 했던 것과 같은 방식으로 위젯 블루프린트에서 BP_Water 액터에 대한 참조를 가져와야 합니다.

- 액터 참조 가져오기: 위젯의 **그래프(Graph)**로 이동하여 이전에 사용했던 Get All Actors of Class 로직을 복사합니다.
- 클래스 지정: 클래스를 방금 만든 BP_Water로 지정합니다.

- 변수로 승격: Get a Copy 노드에서 출력 핀을 드래그하여 **변수로 승격(Promote to Variable)**하고, 이름을 MyWaterRef와 같이 지정합니다. 컴파일합니다.

3. 물 애니메이션 제어 설정
A. 애니메이션 루프 및 자동 재생 비활성화
애니메이션이 재생되지 않은 상태로 시작하도록 BP_Water 블루프린트 내에서 설정을 변경합니다.
- BP_Water 열기: BP_Water 블루프린트로 이동합니다.
- 애니메이션 속성 변경: Water 컴포넌트를 선택하고 세부 정보(Details) 패널에서 **Looping(반복)**과 **Play From Start(시작부터 재생)**를 체크 해제하고 컴파일 및 저장합니다. (이렇게 하면 애니메이션이 실행되지 않고 멈춰 있는 상태로 시작합니다.)
B. 버튼 클릭 시 기능 구현 (Flip Flop 사용)

하나의 버튼으로 물을 켜고 끄는 두 가지 명령을 실행하도록 Flip Flop 노드를 사용합니다.
- 버튼 클릭 이벤트: 위젯의 물 아이콘 버튼을 선택하고 On Clicked 이벤트를 생성합니다.



- Flip Flop 추가: Flip Flop 노드를 연결합니다.
- 물 켜기 (A 핀):
- MyWaterRef 변수에서 Set Actor Hidden in Game(게임에서 액터 숨기기 설정) 노드를 가져와 A 핀에 연결하고, **체크 해제(False)**하여 물을 보이게 합니다.
- 이어서 Water 컴포넌트에서 Play(재생) 노드를 가져와 연결합니다. (애니메이션 시작)
- 물 끄기 (B 핀):
- MyWaterRef 변수에서 Set Actor Hidden in Game 노드를 가져와 B 핀에 연결하고, **체크(True)**하여 물을 숨깁니다.
- 이어서 Water 컴포넌트에서 Stop(정지) 노드를 가져와 연결합니다. (애니메이션 정지)
- 디버깅 및 수정: 첫 번째 클릭이 제대로 작동하지 않는 문제가 발생할 경우, Flip Flop의 A와 B 핀에 연결된 Set Actor Hidden in Game과 Play/Stop 노드의 순서를 조정하여 기능을 정상화합니다. (강의에서는 순서를 바꿔서 문제를 해결했습니다.)

결론
이로써 블루프린트를 통해 물 애니메이션을 켜고 끄는 기능을 완벽하게 구현했습니다.
- 물 액터를 BP 클래스로 변환했습니다.
- 루핑을 끄고 Stop 상태로 시작하도록 설정했습니다.
- Flip Flop 노드를 사용하여 하나의 버튼으로 Play/Stop 명령과 가시성을 제어했습니다.
반응형
'Unreal Engine' 카테고리의 다른 글
Unreal Engine 프로젝트 패키징(Packaging) 방법 (0) | 2025.10.08 |
---|---|
Unreal Engine 모델 변경(Changing Models)하는 방법 (0) | 2025.10.08 |
Unreal Engine 미디어(Media)를 켜고 끄는 방법 (0) | 2025.10.07 |
Unreal Engine 조명과 소리를 켜고 끄는 방법 (0) | 2025.10.07 |
Unreal Engine 재질(Material)을 베리언트 매니저(Variant Manager)를 활용하여 손쉽게 변경하기 (0) | 2025.10.06 |