즐거웠던 고멤무스메와 비슷한 러너 게임 제작 후... 다시 기초 쌓기 시간~ 이번주는 VFX, Terrain의 기능을 맛보기 하면서 게임 효과 또는 지형을 직접 제작해보는 시간을 보냈다.
Visual Effect Graph (VFX)
Particle System을 그래프 형식으로 구현할 수 있게 만든 것이다. 파티클 시스템 대비 장점이라면 노드와 graph 모듈을 연결해서 모여주므로 시각적으로 효과의 흐름을 이해하기 쉽고, 파티클에 비해 시스템 상의 부하가 덜하다는 점? Particle system은 emission rate이나 max particle 수를 늘리면 엄청나게 렉을 먹거나 프로그램 자체가 느려지는데, VFX에서는 Rate 20,000, Capacity 3,000,000으로 해도 잘만 재생되더라.
설치
Package Manager에서 Unity Registry - Visual 검색해 설치
Play()와 Stop()은 파티클 생성을 제어함.
▶️ 작동 시작. ⏸️ 작동 일시 정지. 아예 작동을 멈추려면 ⏹️ 클릭. 이 때는 Play, Stop 버튼 눌러도 작동하지 않음.
Spawn
생성할 Particle의 수를 설정할 수 있다.
Initialize Particle
파티클 처음 생성할 때 적용할 내용.
Capacity 파티클 시스템에서의 Max Particles와 같은 내용. 최대로 유지할 수 있는 파티클 개수.
Set Life 파티클의 생애주기 길이 설정. 길수록 더 오래 살아남아 멀리 날아갈 것.
Set Color 파티클의 색상 설정
Update Particle
중간중간 계속해서 변경해야 하는 설정. 왜곡을 주는 Turbulance, 충돌 감지 등등
Output Particle Quad
마지막에 파티클 내보내기 전 이것저것 설정 가능.
Blend Mode : Additive → 파티클끼리 겹치면 밝아지게
Main Texture에서 원하는 파티클의 모양 설정 가능
예제) 불꽃놀이 만들기
- Spawn rate 20000, Initialize 부분에서 Capacity 3000000 정도로 크게 설정해 파티클 많이 생성될 수 있도록 함
- Initialize 부분에서 Set color 이용해 파티클의 색을 원하는 대로 설정
- Output Particle Quad에 Set Scale 블록 추가
- Channels를 X, Y 값만 변경되게 선택
- Length, Get Attribute: velocity 노드 생성
- Velocity를 Length로 받아 Scale Y로 넣어줌
* Initialize Particle에서 원하는 색상을 설정했는데도 색이 바뀌지 않는 경우에는 마지막 Output Particle Quad 부분에 색을 설정하는 부분이 있는지 확인하고 해당 모듈을 꺼주면 된다. 각 그래프가 위에서부터 순서대로 적용되므로 마지막에 색을 바꿔버리면 이전에 색 변경한 내용은 묻혀버린다.
결과
예제 2) Turbulance, Collider 연습
위에서 만든 불꽃놀이 예제에 색상만 푸른~보라빛으로 변경하고 와류를 주었다.
1. Update 부분에 Turbulence graph 추가
2. Sine, Cosine 출력 값을 X, Z Angle에 넣어줌
3. Post process volume에서 Bloom의 Intensity 값으로 효과 조절하면 더 예쁘게 보이게 할 수 있음
결과
예제 3) Collide with Sphere
파티클이 퍼지는 범위의 한게를 결정한다.
- Blackboard에서 Transform 하나 생성
- Transform의 position, scale을 Collide with Sphere의 Position, Radius에 연결 X, Y, Z 범위 모두 다르게 주고 싶으면 Scale에 연결
- Transform의 Scale을 변경하면서 파티클 퍼질 수 있는 범위 조절
결과
Scale 1
Scale 2 : 더 큰 구 표면 주위에서 생성됨
예제 4) 특정 물체에 닿으면 파티클 튀게 만들기
Collide with ~ 종류로 파티클의 충돌 체크
Visual Effect component 달린 오브젝트에 VFX Property Binder 추가
- Property Bindings에서 Transform 추가
- 추가한 Transform 클릭해 Target의 Transform 받을 Property 설정
응용) Collide with AABox, Collide with Plane 활용 가능
Normalized 값이 들어가는 것 같아서 Normalize node로 타겟 Transform의 angle을 정규화해주었다.
결과
Target과 충돌할 때 Particle이 타겟에 밀리는 것을 확인
Collide with Plane을 사용하고 Bounce(20)와 Friction(10) 값을 어느 정도 크게 주면 아주 빠르게 튀어나가는 파티클을 확인할 수 있다.
Terrain
Windows - Package Manager - Unity Registry - Terrain Tools 다운로드
Terrain 기능
Raise or Lower Terrain
땅을 높이거나 낮춰 지형을 생성한다.
- Strength 한 번 클릭했을 때 솟아오르는 정도.
- Spacing 브러시 간격
- Scatter 흩어져서 생성되는 정도
- Rotation 브러시 회전 정도
단축키
A 버튼 : Strength
S 버튼 : Size
D 버튼 : Rotation
Ctrl + 클릭 : 지우기
Paint Texture
만든 지형에 각종 Texture를 색칠한다.
결과
Paint Trees
나무 설치하는 툴이라 보면 된다. 나무 Asset을 받아서 Add Tree한 뒤 Brush Size와 Tree Density를 마음에 드는 값으로 설정한 뒤 Terrain 위에 도장 찍듯 클릭하면 나무가 생성된다.
결과
Paint Details
꽃이나 잔디를 대량으로 심기 위한 도구이다. Paint Trees와 마찬가지로 Add Grass Texture를 통해 꽃이나 잔디를 추가할 수 있다.
결과
꽃을 잔뜩 심었다.
사용한 Assets
꼭 이거 안 써도 되고... 예뻐보이는 거 골라서 사용 궈궈
Terrain Sample Asset Pack
Grass Flowers Pack Free
Conifers
Low Poly Environmental Starter Pack
카카오의 데이터 센터 고장을 딛고 출간된 나의 병합 정렬 공부 기록...
[백준] 24060 알고리즘 수업 - 병합 정렬 1
문제 오늘도 서준이는 병합 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 병합 정
psych-dobby.tistory.com
후기
러너 게임에서 각 주자의 현재 위치를 화면 위의 막대 상에 표시하는 기능을 넣었는데 어떻게 구현했냐고 질문이 들어와서 뿌듯했다. VFX는 아무래도 다른 사람이 만들어둔 효과를 참고해야할 것 같고.. Terrain은 오랜만에 만져보는데 재미있었다. 백두산 백록담 같은 느낌으로 만들려고 했는데 잘 만들어졌는지는 의문...
주말에는 카카오 데이터 센터에 불이 난 건지 고장이 난 건지 아무튼 데이터 센터가 셧다운 돼서 카카오톡은 물론 카카오 관련 모든 서비스가 12시간 넘게 안 되는 촌극이 벌어졌다. 하필 티스토리가 다음 계열 -> 카카오의 다음 인수 후 카카오 운영으로 바뀐 지라 얘도 맛이 갔었다...케케 그래도 병합 정렬은 게시물 작성 창을 열어놨던 지라 다행히 글쓰기가 불가능한 와중에도 작성할 수 있었다. 이거 무슨 전쟁 중에도 실록 기록하는 사관도 아니고...ㅋㅋㅋ 카카오 크루들은 엄청나게 고생했을 것이고 나도 내 회사 일이었다면 웃지 못했을 테지만 지금은 일반 카카오 유저니깐... 분산 백업의 중요성을 널리 알리게 된 재미있는 사건인 것 같다.
라고 쓴 다음에 내용 수정하는데 중간에 티스토리가 또 셧다운 됐다;;;;; 재밌네 이거...
유데미코리아 바로가기 : https://bit.ly/3b8JGeD
본 포스팅은 유데미-웅진씽크빅 취업 부트캠프 유니티 1기 과정 후기로 작성되었습니다.
새로운 가능성의 시작, 유데미 x 웅진씽크빅
글로벌 최신 IT 기술과 실무 교육을 입문부터 심화까지! 프로그래밍, 인공지능, 데이터, 마케팅, 디자인 등 세계 최고의 강의를 경험하세요.
www.udemykorea.com
댓글