18. 1. 버섯구름 표현
• 버섯구름 원리 이해
• 비주얼화
2. 라이팅
• 디렉셔널 라이트를 이용한 명암표현
3. 바람과 상호작용
• 연기가 바람에 따라 흘러감
지면 폭발
지면 폭발 이펙트
연출 요소
이미지 출처 : www.subdivx.com
19. 1. 폭발이 일어나면서 공기가 팽창되어
밀도가 작아져 진공상태가 된다.
2. 연기, 가스, 먼지들을 빨아들이면서
온도가 높은 기류는 올라간다.
3. 상대적으로 차가운공기에 밀려나면서
버섯모양의 형태를 만들게 된다.
지면 폭발
버섯구름 원리
1.버섯구름 표현
이미지 출처: 위키백과
20. • 팀내에서 만든 Custom Particle
• 파티클 모듈을 확장하여 커스터마이징 가능하게 구현
• Spawn / Update 처리 로직을 블루프린트로 작성하기 위한 인터페이스제공
• 파티클 데이터에 접근하기 위한 데이터 프록시 제공
지면 폭발
Custom Particle을 이용한 제작
1.버섯구름 제작
21. • 바람과의 상호작용이 가능
• 동선이 크고 느려서 너무 무거운 느낌 가벼운 느낌의
좋은 방법이
없을까?
1.버섯구름 표현
Custom Particle을 이용한 표현
지면 폭발
22. • 자연스러운 표현
• 바람과 상호작용이 불가능
• 밀도높은 연기의 경우 소멸부분에 프레임 할당을 많이 할 수 없음
바람 적용, 소멸
더 좋은 방법이
없을까?
1.버섯구름 표현
FumeFX로 시퀀스 이미지 제작
지면 폭발
23. • 메인시퀀스에 밀도가 낮은 연기시퀀스 여러장을 겹쳐서 소멸 표현가능
• 바람과 상호작용 가능
1.버섯구름 표현
시퀀스이미지+소멸
지면 폭발
24. • 밀도가 높은 시퀀스이미지로
버섯구름을 표현
• 밀도가 낮은 시퀀스 이미지를
여러장 겹쳐서 사용(적당히)
1.버섯구름 정리
32. • FumeFX에서 노멀텍스처 제작
• 텍스처좌표계에 맞춰 조명을 셋팅
• X축에 Red
• -Y축은 Blue
• -Z축에 반대방향으로 Green
2.라이팅
Normal Pass(FumeFX에서 랜더링)
지면 폭발
Red
Green
Blue
33. • 그림자표현이 매끄럽지 않음
• 어두운연기의경우 입체감이 부족
2.라이팅
Normal Pass 결과물
지면 폭발
34. • Skull & Bones에 사용된 방법을 참고
• 6방향으로 랜더링된 라이트맵을
이용한 그림자 만들기
출처: https://realtimevfx.com/t/smoke-lighting-and-texture-re-usability-in-skull-bones/5339
2.라이팅
라이트맵으로 그림자 표현
디렉셔널라이트 벡터(방향)
라이트맵
지면 폭발
35. • 정육면체 노멀기준으로 조명을
하나씩 배치해서 랜더링
• 6방향랜더링 (출처에는 정면과 후면은
연산으로 처리)한 텍스처를 RGBA채널에
입력
2.라이팅
라이트맵 제작방법Pass(FumeFX에서 랜더링)
지면 폭발
41. 지면 폭발
여기서 잠깐!!
머티리얼 파라미터 콜렉션이란??
머티리얼
파라미터
콜렉션
머티리얼블루프린트
MaterialParameterCollection은
스칼라 및 벡터 매개변수를 여러 머티리얼에서 참조
글로벌 데이터를 한꺼번에 많은 머티리얼에 사용가능
언리얼 문서 발췌
54. 불타는 나무
TA와의 협업
불타는 나무 구현내용
• 충돌체의 방향벡터와 반경을 계산하여
포인트를 검색
• 시간순서대로 나뭇가지포인트에 잔불들을
생성
• 바람적용
외곽 충돌박스
에 충돌
• 충돌지점에 피격이펙트, 기둥에 큰불 생성
• 나무기둥과 가지가 흔들림
• 충돌지점 중심으로 나무가 타들어가며 잔불들이
차례로 생성
• 바람적용
내부 충돌박스
에 충돌
55. 불타는 나무
불타는 나무 제작 소개
1.타들어가기
2.나무에 불 붙기
3.바람 상호작용
아트 제작 요소
56. 불타는 나무
타들어가는 마스크 테스트
• HitPosition을 중심으로 타들어가는
머티리얼 제작
• Fmod 함수를 이용하여 마스크생성
• Ceil 함수를 이용하여 경계면을
뚜렷하게 만듬
1.타들어가기
실제 구현은 월드좌표계
머티리얼 파라미터를
블루프린트와 연동
57. 불타는 나무
Fmod
두 입력을 나눈 부동소수점 나머지 값
Ceil
소수점값을 올려 정수로 만듬
Fmod, Ceil
여기서 잠깐
58. 불타는 나무
머티리얼 비주얼 테스트
• HitPosition중심으로
나무기둥과 나뭇잎에
타들어가는 머티리얼 적용
1.타들어가기
59. 불타는 나무
종류별 불이펙트 제작 및 테스트
• 충돌체가 나무기둥에 맞았을때
나오는 큰불
• 기둥과 근접해 있는 가지부분은 중불
• 바깥쪽 가지부분은 잔불
2.나무의 불 붙기
60. 불타는 나무
불이펙트 위치 설정
• 불붙는 위치를 버텍스
컬러를 이용하여 구현
• Red색상은 불의 위치
• Green색상은 버텍스 애니
2.나무의 불 붙기
66. 불타는 나무
3. 바람 상호작용
Static Mesh Morph Targets 원리
3DSMAX에서
스크립트를 이용
매쉬 익스포트
머티리얼에서
Static Mesh
Morph Targets
함수를 이용
파티클에
매쉬적용,
머티리얼 적용
블루프린트를
이용하여 머티리얼
파라미터에 전달
매쉬 제작
머티리얼 제작
파티클에 적용
블루프린트로 값을 전달
67. • 3DSMAX에서
스크립트를 실행
불타는 나무
맥스스크립트를 이용한 Export
스크립트주소 :EngineExtras3dsMaxScriptsStaticMeshMorpher.ms
1
2
3
4
5
6
7
3. 바람 상호작용
78. • 타들어가는 표현(월드좌표계에서 SphereMask를
사용하여 HitPosition위치적용)
• 불의 종류별 제작(버텍스컬러와 자체적으로 만든
더미를 이용해 위치적용 )
• 불에 바람적용(static mesh morph targets과
바람벡터,카메라오른쪽벡터를 이용한 내적+1값을 이용해 구현)
정리
불타는 나무