1 00:00:04.409 --> 00:00:08.963 실감 공통편 포털 이펙트 2 00:00:08.963 --> 00:00:11.607 GCC 사관학교 3 00:00:27.200 --> 00:00:29.798 안녕하세요 박현상입니다 4 00:00:29.799 --> 00:00:33.200 이번에는 흔히 포털 이펙트라고 해서 5 00:00:33.200 --> 00:00:35.099 다른 장소로 이동할 때 6 00:00:35.099 --> 00:00:40.360 공간이 분리된 것처럼 보이는 이펙트를 제작할 것입니다 7 00:00:40.360 --> 00:00:42.520 이러한 효과는 게임뿐만 아니라 8 00:00:42.520 --> 00:00:46.520 영화 같은 곳에서도 다양하게 쓰이는데요 9 00:00:46.520 --> 00:00:52.400 언리얼5를 소개하는 영상 엔딩 시퀀스에서도 나왔었죠 10 00:00:52.400 --> 00:00:55.599 자연스럽게 흐르는 파티클의 움직임을 통해 11 00:00:55.599 --> 00:00:59.826 유저들의 시선을 집중할 수 있는 효과를 제작해 보겠습니다 12 00:01:00.075 --> 00:01:03.847 포털 이펙트 생성 13 00:01:04.360 --> 00:01:06.379 실습을 위해서 우선 14 00:01:06.379 --> 00:01:09.680 Niagara System을 먼저 하나 만들고요 15 00:01:09.680 --> 00:01:13.480 그리고 이번에는 비어있는 상태로 16 00:01:13.480 --> 00:01:17.480 Create Empty Niagara System을 이용해서 17 00:01:17.480 --> 00:01:18.959 만들어 볼 겁니다 18 00:01:18.959 --> 00:01:23.279 그래서 FX_Portal이라고 이름 짓고요 19 00:01:23.279 --> 00:01:24.760 열어 주겠습니다 20 00:01:24.760 --> 00:01:27.279 비어있는 나이아가라 시스템을 만들면 21 00:01:27.279 --> 00:01:30.480 이미터 자체가 아예 존재하지 않습니다 22 00:01:30.480 --> 00:01:34.120 그래서 이렇게 여러분들이 아예 없는 상태에서 23 00:01:34.120 --> 00:01:37.239 만들어 보시는 건 아마 처음일 것 같은데 24 00:01:37.239 --> 00:01:39.689 한번 우클릭해서 25 00:01:39.689 --> 00:01:42.360 기존에 있던 템플릿을 가져오는 게 아니라 26 00:01:42.360 --> 00:01:45.160 Add Empty Emitter를 통해서 27 00:01:45.160 --> 00:01:48.160 차근차근 한번 만들어 보겠습니다 28 00:01:48.160 --> 00:01:50.860 우선 Emitter Update 항목에서 29 00:01:50.860 --> 00:01:53.760 Emitter State를 추가해 줍니다 30 00:01:53.760 --> 00:01:56.858 Emitter State는 이 공장 라인이 31 00:01:56.858 --> 00:01:59.320 얼만큼 가동할지에 대한 내용이죠 32 00:01:59.320 --> 00:02:02.519 그래서 Life Cycle을 Self로 바꾸시고 33 00:02:02.519 --> 00:02:05.760 Infinite로 설정해 두시기 바랍니다 34 00:02:05.760 --> 00:02:10.479 그리고 나서 Update 항목에 마찬가지 추가로 35 00:02:10.479 --> 00:02:15.440 Spawn Rate 항목 모듈을 추가해 주겠습니다 36 00:02:15.440 --> 00:02:19.039 이거는 한번에 대략 100~300개씩 할 건데 37 00:02:19.039 --> 00:02:22.919 현재는 렌더링이며 뭐며 아무 기능도 없기 때문에 38 00:02:22.919 --> 00:02:25.880 어차피 만들어 놔도 눈에 보이지는 않습니다 39 00:02:25.880 --> 00:02:28.600 그리고 파티클이 스폰될 때 40 00:02:28.600 --> 00:02:34.800 이 항목에다가 Initialize Particle이라고 41 00:02:34.800 --> 00:02:38.039 이렇게 모듈을 가장 사이즈라든가 이런 것들 42 00:02:38.039 --> 00:02:41.479 기본적인 것들을 설정할 수 있는 항목을 추가해 놓고요 43 00:02:41.479 --> 00:02:44.720 업데이트라든가 여기에서는 나중에 하고 44 00:02:44.720 --> 00:02:50.520 우선은 Renderer에서 Sprite Renderer를 추가해 줍니다 45 00:02:50.520 --> 00:02:55.119 그러면 이제 우리가 눈으로 파티클을 볼 수가 있고 46 00:02:55.119 --> 00:02:57.479 실제 Spawn Rate 값이 있죠 47 00:02:57.479 --> 00:03:01.880 초당 100개씩 생성을 하기 때문에 겹쳐 있을 뿐이지 48 00:03:01.880 --> 00:03:05.320 지금 수백 개의 파티클 입자들이 여기 모여 있습니다 49 00:03:05.320 --> 00:03:09.440 그래서 Initialize Particle에서 일정한 범위로 나올 수 있게 50 00:03:09.440 --> 00:03:12.600 Shape Location 모듈을 추가해 주고요 51 00:03:12.600 --> 00:03:14.279 그러면 현재는 Sphere니까 52 00:03:14.279 --> 00:03:18.160 구체 범위로 러프하게 생긴 게 보이시죠 53 00:03:18.160 --> 00:03:22.000 이걸 우리가 흔히 포털이라고 하는 것 자체가 54 00:03:22.000 --> 00:03:24.639 이렇게 동그란 범위를 가지고 55 00:03:24.639 --> 00:03:28.279 이 동그란 범위는 다른 공간하고 연결되어 있는 걸 56 00:03:28.279 --> 00:03:31.839 보통 표시하려고 이런 이펙트를 만들잖아요 57 00:03:31.839 --> 00:03:34.901 그러다 보니까 보통 구체 내지는 58 00:03:34.901 --> 00:03:38.720 구체보다도 평면에 원형의 형태를 많이 하는데 59 00:03:38.720 --> 00:03:40.759 그걸 위해서 Torus 항목으로 60 00:03:40.759 --> 00:03:42.909 이 Shape Primitive 모형을 61 00:03:42.909 --> 00:03:45.360 도넛의 형태로 바꿔 줄 겁니다 62 00:03:45.360 --> 00:03:48.080 여러분들이 보시기엔 이 Torus와 63 00:03:48.080 --> 00:03:49.980 Ring / Disc 간의 차이가 별로 64 00:03:49.980 --> 00:03:52.000 없다고 느끼실 수 있는데 65 00:03:52.000 --> 00:03:54.100 Ring / Disc 같은 경우에는 66 00:03:54.100 --> 00:03:56.919 위아래에 대한 높이 값이 없습니다 67 00:03:56.919 --> 00:04:00.639 반면에 Torus 같은 경우에는 일정한 두께를 가지고 68 00:04:00.639 --> 00:04:03.289 이 Radius를 만약에 우리가 임의로 69 00:04:03.289 --> 00:04:05.320 한 300 정도로 넓힌 다음에 70 00:04:05.320 --> 00:04:09.080 밑에 있는 Handle Radius를 넓히면 71 00:04:09.080 --> 00:04:11.030 이 Handle이라는 게 바로 72 00:04:11.030 --> 00:04:14.080 이 도넛 자체가 가지고 있는 두께 73 00:04:14.080 --> 00:04:15.479 이걸 얘기하는 겁니다 74 00:04:15.479 --> 00:04:18.880 이 범위를 우리가 임의로 조절할 수 있기 때문에 75 00:04:18.880 --> 00:04:22.519 이런 식으로 여러분들이 일정한 두께와 범위를 가지고 76 00:04:22.519 --> 00:04:25.239 만들 수가 있다는 것이고요 77 00:04:25.239 --> 00:04:28.600 여기에서 지금은 입자들이 너무 크니까 78 00:04:28.600 --> 00:04:33.480 Initialize Particle에서 Sprite 사이즈를 Uniform으로 79 00:04:33.480 --> 00:04:38.079 10이 아니라 1 정도만 돼도 사실은 충분합니다 80 00:04:38.079 --> 00:04:41.529 제가 일부러 현재 사이즈에 맞춰가지고 81 00:04:41.529 --> 00:04:43.200 크게 보이게 했는데 82 00:04:43.200 --> 00:04:46.519 보통 포털이라고 하면 사람이 왔다 갔다 하니까 83 00:04:46.519 --> 00:04:51.119 실제 Shape Location의 Radius가 300 유닛이란 얘기는 84 00:04:51.119 --> 00:04:54.679 반지름 300이니까 총 6m 짜리 포털인 거죠 85 00:04:54.679 --> 00:04:56.640 굉장히 큰 포털입니다 86 00:04:56.640 --> 00:05:00.000 건물 하나나 커다란 트럭 정도 들어갈 수 있는 87 00:05:00.000 --> 00:05:04.160 그래서 이거를 절반이 되는 150 정도로 좀 줄여 놓고요 88 00:05:04.160 --> 00:05:08.359 여기에서 보면 이제 가까이 Torus 형태로 생성이 된 89 00:05:08.359 --> 00:05:11.239 파티클 입자들을 보실 수가 있죠 90 00:05:11.239 --> 00:05:13.789 이렇게 Torus 형태의 파티클을 91 00:05:13.789 --> 00:05:16.640 우리가 좀 더 자연스럽게 92 00:05:16.640 --> 00:05:20.380 차원 공간이 일어나는 것처럼 좀 묘사를 해 볼 건데 93 00:05:20.380 --> 00:05:22.920 제가 Handle은 설명을 위해서 좀 두껍게 한 거지 94 00:05:22.920 --> 00:05:25.459 지금 상황에서는 사실 두꺼운 형태의 95 00:05:25.459 --> 00:05:27.640 이렇게 파티클 흩어지는 것보다 96 00:05:27.640 --> 00:05:30.040 뭉쳐 있는 게 조금 더 보기 좋으니까 97 00:05:30.040 --> 00:05:33.040 Handle Radius를 5 정도로만, 얇게 98 00:05:33.040 --> 00:05:36.799 이 정도로 얇은 띠 형상이 되도록 좀 바꿔 놓고요 99 00:05:36.799 --> 00:05:40.320 그리고 Initialize Particle의 컬러 값도 마찬가지로 100 00:05:40.320 --> 00:05:43.839 그 전까지는 계속해서 레드 8, 그린 1로 갔는데 101 00:05:43.839 --> 00:05:48.440 이번에는 블루 8, 그린 1, 레드 0.2 정도로 해서 102 00:05:48.440 --> 00:05:52.040 푸른색 빛이 나게끔, 이렇게 좀 바꿔 보겠습니다 103 00:05:52.040 --> 00:05:55.239 이제 이 파티클을 돌려 줘야 됩니다 104 00:05:55.239 --> 00:05:59.480 보통 포털이라고 하는 것은 부자연스러운 현상이잖아요 105 00:05:59.480 --> 00:06:02.180 이 허공이 갑자기 뻥 뚫려 보인다는 건 106 00:06:02.180 --> 00:06:05.359 굉장히 부자연스러운 상황이기 때문에 107 00:06:05.359 --> 00:06:10.440 안정적이지 못한 느낌이 나게끔 일렁일렁 일 수 있게 108 00:06:10.440 --> 00:06:14.119 이 파티클들이 이렇게 안정된 형태를 이루기 보다는 109 00:06:14.119 --> 00:06:17.640 계속해서 움직이고 일렁이게끔 만들어주는 게 110 00:06:17.640 --> 00:06:20.198 그 느낌을 조금 더 잘 살려줄 수 있다고 111 00:06:20.198 --> 00:06:21.799 생각이 드는데요 112 00:06:21.799 --> 00:06:25.000 우선 이걸 돌리기 위해서 Particle Update에다가 113 00:06:25.000 --> 00:06:28.239 Vortex Force 이걸 추가해 놓으면 114 00:06:28.239 --> 00:06:34.279 여기에 SolveForcesAndVelocity 항목이 빠져 있다고 되어 있죠 115 00:06:34.279 --> 00:06:38.640 이것을 Fix issue를 눌러서 추가해 주시면 됩니다 116 00:06:38.640 --> 00:06:42.760 그러면 Vortex라는 게 보통 그 소용돌이와 같은 형태 117 00:06:42.760 --> 00:06:46.239 이렇게 뱅글뱅글 뱅글뱅글 이렇게 돌아가는 118 00:06:46.239 --> 00:06:49.480 지금 그래서 바깥으로 계속 이렇게 번져나가고 있죠 119 00:06:49.480 --> 00:06:52.839 움직이면서 이런 형태를 만들어주는 것이기 때문에 120 00:06:52.839 --> 00:06:55.289 자연스럽게 빙글빙글 돌면서 121 00:06:55.289 --> 00:06:58.519 어떤 형상을 만들어 내기에 좀 유리하고요 122 00:06:58.519 --> 00:07:00.269 지금 보시는 것처럼 123 00:07:00.269 --> 00:07:04.279 파티클의 입자가 좀 부족해서 그런 건데 124 00:07:04.279 --> 00:07:09.399 Spawn Rate 값을 한 300~600 정도로 125 00:07:09.399 --> 00:07:14.200 이렇게 모아 보면 훨씬 더 느낌이 나죠 126 00:07:14.200 --> 00:07:17.720 다만 Vortex 쓰실 때 하나 조심해야 될 것은 127 00:07:17.720 --> 00:07:20.839 다른 각도에서도 한 번쯤 확인이 필요하다는 겁니다 128 00:07:20.839 --> 00:07:25.640 이게 이제 Vortex의 값이라든가 축에 따라서 129 00:07:25.640 --> 00:07:28.839 지금 보면 Vortex Force Amount가 200 이죠 130 00:07:28.839 --> 00:07:31.889 이 값이 어떻게 되느냐에 따라서는 131 00:07:31.889 --> 00:07:34.799 소용돌이가 굉장히 빨리 흩어지게 될 수도 있고 132 00:07:34.799 --> 00:07:37.799 값이 커지면, 값이 작아지면 133 00:07:37.799 --> 00:07:42.559 굉장히 천천히 이렇게 흐를 수도 있게 됩니다 134 00:07:42.559 --> 00:07:43.659 지금은 전부 다 이렇게 135 00:07:43.659 --> 00:07:48.399 바깥으로 퍼지는 형태의 모습만 보여지고 있는데 136 00:07:48.399 --> 00:07:52.447 이것에서 이 Origin Pull Amount의 값을 137 00:07:52.447 --> 00:07:55.799 한 100 정도로 높이다 보면 138 00:07:55.799 --> 00:07:58.849 지금 보시는 것처럼 이렇게 안쪽으로 모였다가 139 00:07:58.849 --> 00:08:00.799 퍼지는 걸 볼 수가 있습니다 140 00:08:00.799 --> 00:08:04.519 이때 움직임을 잠깐 스케치해 보면 이렇게 되는 겁니다 141 00:08:04.519 --> 00:08:09.319 스폰됐던 파티클이 여기 있는 소용돌이를 만나서 142 00:08:09.319 --> 00:08:12.079 돌다가 튕겨나가는 거죠 143 00:08:12.079 --> 00:08:14.679 이런 식으로 쭉쭉쭉 144 00:08:14.679 --> 00:08:18.920 이 소용돌이의 전체 흐름의 가운데 중심으로 이렇게 돌다가 145 00:08:18.920 --> 00:08:23.559 바깥으로 쭉쭉 빠져나가는 형태로 묘사가 되고 있는 겁니다 146 00:08:23.559 --> 00:08:26.359 그래서 이 소용돌이에 147 00:08:26.359 --> 00:08:30.880 얼만큼 빨려 들어갔는지, 당겨졌는지의 이 값하고요 148 00:08:30.880 --> 00:08:34.630 그리고 우리가 얼마나 그 주변을 돌고 있는지 149 00:08:34.630 --> 00:08:37.039 Vortex Force라는 값하고를 150 00:08:37.039 --> 00:08:40.719 여러분들이 두 개의 값을 잘 매칭을 해보시면 151 00:08:40.719 --> 00:08:45.200 저는 임의로 이것을 300에 100 정도로 둘 거고요 152 00:08:45.200 --> 00:08:49.050 그러면 마치 경계에서 이렇게 돌다가 153 00:08:49.050 --> 00:08:50.840 빠져나가는 듯한 느낌으로 154 00:08:50.840 --> 00:08:53.119 묘사가 되는 걸 확인하실 수가 있죠 155 00:08:53.119 --> 00:08:55.769 근데 지금은 보시는 것처럼 156 00:08:55.769 --> 00:08:59.400 입자가 완전히 다 점점점 알갱이처럼 되어있기 때문에 157 00:08:59.400 --> 00:09:03.840 시각적으로 그렇게 티가 강하게 나거나 하지는 않습니다 158 00:09:03.840 --> 00:09:10.239 이때 여러분들이 이 Update에다가 Scale, Sprite인데 159 00:09:10.239 --> 00:09:13.520 한마디로 Sprite의 Size를 바꿔 줄 건데 160 00:09:13.520 --> 00:09:17.919 그 전까지 우리가 임의의 그래프를 이용해서 사이즈를 바꿨죠 161 00:09:17.919 --> 00:09:21.799 밑에 스피드 값을 이용해서 바꿔 줄 겁니다 162 00:09:21.799 --> 00:09:24.599 이거 Fix issue 눌러 주도록 할게요 163 00:09:24.599 --> 00:09:27.249 Vortex에 들어가기 전, 보면 164 00:09:27.249 --> 00:09:29.119 Fix issue를 누르고 나서 165 00:09:29.119 --> 00:09:31.960 이 입자를 조금만 가까이서 보겠습니다 166 00:09:31.960 --> 00:09:33.360 입자들의 변화를 167 00:09:33.360 --> 00:09:35.660 지금은 속도값이 작을 때는 168 00:09:35.660 --> 00:09:38.719 원래 오리지널 사이즈, 100%의 사이즈고요 169 00:09:38.719 --> 00:09:41.960 속도값이 클 때는 최대 2배까지 커져가는데 170 00:09:41.960 --> 00:09:45.400 이것을 Max Scale의 X축은 그대로 놔두고 171 00:09:45.400 --> 00:09:48.400 Y축만 10배를 한번 키워보겠습니다 172 00:09:48.400 --> 00:09:51.000 혹은 20배나 이런 식으로 173 00:09:51.000 --> 00:09:54.599 그러면 지금 보는 것처럼 속도값에 따라서 174 00:09:54.599 --> 00:09:57.640 이렇게 Y축이니까 위로 길어지겠죠 175 00:09:57.640 --> 00:10:00.540 이런 식으로 마치 일자로 서 있듯이 176 00:10:00.540 --> 00:10:03.200 빙글빙글 도는 걸 볼 수가 있게 됩니다 177 00:10:03.200 --> 00:10:05.425 이런 식으로 속도에 따라서 178 00:10:05.425 --> 00:10:08.880 빠른 애들은 더 길게, 천천히 있는 애들은 짧게 179 00:10:08.880 --> 00:10:12.359 이런 식으로 우리가 임의로 표현해 줄 수가 있고요 180 00:10:12.359 --> 00:10:14.209 다만 어색한 게 181 00:10:14.209 --> 00:10:17.719 제일 좋은 거는 지금 회전의 흐름은 여긴데 182 00:10:17.719 --> 00:10:19.760 Sprite들이 Y축을 기준으로 하다 보니까 183 00:10:19.760 --> 00:10:22.799 이렇게 일자로 쭉쭉쭉쭉 서 있게 되죠 184 00:10:22.799 --> 00:10:24.449 사실 회전의 흐름에 맞춰서 185 00:10:24.449 --> 00:10:28.179 이렇게 늘어나는 게 제일 자연스럽겠죠, 이런 식으로 186 00:10:28.179 --> 00:10:31.000 그러려면 Sprite Renderer에서 187 00:10:31.000 --> 00:10:33.300 이 Alignment, 정렬하는 것을 188 00:10:33.300 --> 00:10:36.919 속도에 따라서 정렬을 하라고 바꿔주게 되면 189 00:10:36.919 --> 00:10:40.239 이렇게 서 있는 파티클들이 어떻게 바뀌는지 한번 보세요 190 00:10:40.239 --> 00:10:43.889 회전하는 속도값에 따라서 자연스럽게 191 00:10:43.889 --> 00:10:46.159 좌우로 이렇게 늘어나게 됩니다 192 00:10:46.159 --> 00:10:47.758 좀 더 정확하게는 항상 193 00:10:47.758 --> 00:10:49.359 이 스프라이트는 카메라를 기준으로 194 00:10:49.359 --> 00:10:50.609 원래 이렇게 보이던 애들이 195 00:10:50.609 --> 00:10:53.039 속도 때문에 이렇게 길어진 거죠 196 00:10:53.039 --> 00:10:55.679 근데 진행하는 방향에 맞춰서 197 00:10:55.679 --> 00:10:59.960 이거를 이렇게 회전시켜서 이렇게 맞춰 준 겁니다 198 00:10:59.960 --> 00:11:02.310 그래서 진행하는 방향에 맞춰서 199 00:11:02.310 --> 00:11:04.559 스프라이트가 늘어나 보일 수 있게 200 00:11:04.559 --> 00:11:07.359 자연스러워 보이게끔 하는 기능을 201 00:11:07.359 --> 00:11:10.320 한번 모듈을 세팅해 봤습니다 202 00:11:10.320 --> 00:11:12.020 이제 여기에서 여러분들이 203 00:11:12.020 --> 00:11:15.080 Initialize Particle의 Sprite Size라든가 204 00:11:15.080 --> 00:11:17.730 이걸 조금 더 두껍게 하면 205 00:11:17.730 --> 00:11:20.439 보다 경계선이 명확해질 거고요 206 00:11:20.439 --> 00:11:26.039 Vortex의 회전값을 500 정도로 놔두면 더 멀리 퍼지겠죠 207 00:11:26.039 --> 00:11:29.960 Pull Amount를 만약에 0일 때랑 비교해 보겠습니다 208 00:11:29.960 --> 00:11:34.479 0일 때와 Pull Amount가 150이나, 100이나 209 00:11:34.479 --> 00:11:37.880 이렇게 되면 한번 안쪽에 모였다 가는 것 때문에 210 00:11:37.880 --> 00:11:41.880 조금 더 이 링의 띠의 형태가 211 00:11:41.880 --> 00:11:43.640 Pull Amount가 없을 때보다 212 00:11:43.640 --> 00:11:46.840 더 선명해진 것을 확인하실 수가 있죠 213 00:11:46.840 --> 00:11:50.040 이런 식으로 파티클의 기본적인 움직임을 214 00:11:50.040 --> 00:11:52.159 한번 만들어 봤습니다 215 00:11:52.159 --> 00:11:56.400 지금 Vortex Force가 적용되고 있는 모습을 보면 216 00:11:56.400 --> 00:12:00.039 굉장히 균일하다는 생각이 드시죠 217 00:12:00.039 --> 00:12:04.039 이 경계가 명확하게 깔끔하게 똑 떨어지지 않습니까 218 00:12:04.039 --> 00:12:07.200 이러면 아무래도 보는 입장에서 좀 지루합니다 219 00:12:07.200 --> 00:12:11.880 지루하기 때문에 여기에다가 약간의 변화를 넣어줄 수 있는 220 00:12:11.880 --> 00:12:14.880 Noise 항목을 한번 추가해 보겠습니다 221 00:12:14.880 --> 00:12:19.239 Curl Noise Force라는 모듈을 하나 추가해 줬고요 222 00:12:19.239 --> 00:12:22.000 잠시 Vortex를 끄고 움직임이 있으면 223 00:12:22.000 --> 00:12:24.960 그 원래의 기능을 좀 파악하기 힘드니까 224 00:12:24.960 --> 00:12:27.119 F키를 뷰포트에 눌러서 225 00:12:27.119 --> 00:12:30.320 Curl Noise 값이 적용되기 전과 후에 226 00:12:30.320 --> 00:12:32.679 이 한번 모습을 비교해 보시죠 227 00:12:32.679 --> 00:12:35.640 Noise는 기본적으로 이 Strength 값을 이용해서 228 00:12:35.640 --> 00:12:39.119 Strength 값이 크다면 지금 보시는 것처럼 229 00:12:39.119 --> 00:12:42.719 이렇게 안으로 밖으로 퍼지는 모양이 230 00:12:42.719 --> 00:12:44.599 약간의 변화가 생겼죠 231 00:12:44.599 --> 00:12:47.880 그리고 이 Frequency 항목을 통해서 232 00:12:47.880 --> 00:12:50.320 Frequency 항목이 높다면 233 00:12:50.320 --> 00:12:54.599 안으로 밖으로 퍼지는 패턴이 더 조밀하게 일어나고요 234 00:12:54.599 --> 00:12:58.119 Frequency 자체가 만약에 값이 이렇게 작다면 235 00:12:58.119 --> 00:13:01.719 Noise의 안과 밖으로 나가는 구간들이 조금 더 236 00:13:01.719 --> 00:13:03.840 이렇게 바깥으로 나가는 구간 237 00:13:03.840 --> 00:13:07.719 안쪽으로 모이는 구간들이 명확해지죠 238 00:13:07.719 --> 00:13:10.599 바깥과 안쪽 이런 식으로 239 00:13:10.599 --> 00:13:14.280 그래서 Frequency가, Noise의 주파수의 빈도수가 240 00:13:14.280 --> 00:13:17.039 이런 식으로 일정한 수준이 된 상태에서 241 00:13:17.039 --> 00:13:19.080 Vortex가 적용이 되면 242 00:13:19.080 --> 00:13:22.719 Vortex 항목보다 Noise 항목을 먼저 위로 두겠습니다 243 00:13:22.719 --> 00:13:25.919 이제 끝에 끝나는 가장자리 부분이나 244 00:13:25.919 --> 00:13:28.960 이런 것들이 조금 더 변화를 만들어 줄 수 있는데요 245 00:13:28.960 --> 00:13:31.520 이걸 의도적으로 좀 강하게 줘보면 246 00:13:31.520 --> 00:13:33.760 제가 일부러 좀 소심하게 줬는데 247 00:13:33.760 --> 00:13:36.640 만약에 Strength 값이 강해진다면 248 00:13:36.640 --> 00:13:39.400 이런 식으로 퍼지는 모양 자체가 249 00:13:39.400 --> 00:13:43.039 완전히 부피감을 가지고 다르게 퍼지게 되죠 250 00:13:43.039 --> 00:13:45.239 이건 좀 제가 강하게 준 거고 251 00:13:45.239 --> 00:13:49.400 한 150 정도로 살짝의 변화만 만들어 주는 선에서 252 00:13:49.400 --> 00:13:52.440 그러면 이제는 끊기는 모양이 253 00:13:52.440 --> 00:13:55.159 아까처럼 딱 정원의 형태가 아니라 254 00:13:55.159 --> 00:13:58.440 살짝 이런 식으로 일렁이는 듯한 모습으로 255 00:13:58.440 --> 00:14:00.599 바뀐 것을 확인하실 수가 있죠 256 00:14:00.599 --> 00:14:03.840 나중에 이런 값들은 다 임의의 257 00:14:03.840 --> 00:14:06.440 미니멈, 맥스 값 같은 것들을 정해서 258 00:14:06.440 --> 00:14:09.679 계속해서 변화가 일어나게끔 유도를 할 겁니다 259 00:14:09.679 --> 00:14:11.629 단지 지금 하는 작업들은 260 00:14:11.629 --> 00:14:14.119 기본 값을 잡기 위한 과정입니다 261 00:14:14.119 --> 00:14:15.840 패턴이 너무 균일하다면 262 00:14:15.840 --> 00:14:18.520 어느 정도의 값을 줬을 때 263 00:14:18.520 --> 00:14:20.840 패턴이 점점 사라지는가 264 00:14:20.840 --> 00:14:23.479 이런 것들을 보기 위한 작업인 거지 265 00:14:23.479 --> 00:14:27.320 실제로 이 값을 픽스해서, 고정해서 쓰지는 않습니다 266 00:14:27.320 --> 00:14:31.159 마찬가지로 여기서 퍼져나가는 속도도 267 00:14:31.159 --> 00:14:35.359 이 Particle Spawn에서 Velocity를 이용해서 268 00:14:35.359 --> 00:14:39.359 더 추가하거나 빼주거나 할 수도 있습니다 269 00:14:39.359 --> 00:14:42.009 만약에 이것을 From Point로 270 00:14:42.009 --> 00:14:44.320 Velocity Mode를 바꾼 다음에 271 00:14:44.320 --> 00:14:46.000 바깥으로 더 빼고 싶다면 272 00:14:46.000 --> 00:14:48.640 이렇게 바깥으로 확 퍼지게 만들 수가 있겠죠 273 00:14:48.640 --> 00:14:51.799 당연히 Force 값보다 어느 정도는 좀 커져야 274 00:14:51.799 --> 00:14:53.640 이렇게 바깥으로 돌 건데 275 00:14:53.640 --> 00:14:57.280 이거를 임의로 좀 작게 만들어 보겠습니다 276 00:14:57.280 --> 00:15:00.039 Velocity Speed 값을 작게 해서 277 00:15:00.039 --> 00:15:02.119 만약에 마이너스가 된다면 278 00:15:02.119 --> 00:15:04.039 이런 식으로 지금 보시는 것처럼 279 00:15:04.039 --> 00:15:06.280 패턴이 약간 바뀌었죠 280 00:15:06.280 --> 00:15:09.119 그래서 플러스와 마이너스, Velocity까지도 281 00:15:09.119 --> 00:15:11.359 같이 섞어서 써주게 되면 282 00:15:11.359 --> 00:15:15.320 Vortex와 Noise와 Velocity를 섞어서 써주면 283 00:15:15.320 --> 00:15:19.119 이 Vortex에서 Force Amount를 살짝만 줄이겠습니다 284 00:15:19.119 --> 00:15:22.239 그러면 점점 이렇게 안쪽으로 모이죠 285 00:15:22.239 --> 00:15:24.159 Force Amount를 너무 늘리면 286 00:15:24.159 --> 00:15:27.799 바깥으로 오는 대신 이런 식으로 멀리 퍼집니다 287 00:15:27.799 --> 00:15:31.119 이렇게 이것을 600개만 뿌리는 게 아니고요 288 00:15:31.119 --> 00:15:32.719 여러분들이 원하신다면 289 00:15:32.719 --> 00:15:35.039 한 3,000개 뿌려 보셔도 됩니다 290 00:15:35.039 --> 00:15:38.219 당연히 이 Vortex Force 값 자체가 291 00:15:38.219 --> 00:15:40.919 만약에 1,000 정도로 커졌다면 292 00:15:40.919 --> 00:15:43.159 이런 Force 값들을 쓰실 때는 293 00:15:43.159 --> 00:15:47.320 한쪽이 커지면 다른 값을 무시하는 경향이 있기 때문에 294 00:15:47.320 --> 00:15:49.000 내가 Noise를 살리고 싶다면 295 00:15:49.000 --> 00:15:50.880 Noise도 같이 키워줘야 됩니다 296 00:15:50.880 --> 00:15:53.119 그래야 Noise 패턴의 값도 297 00:15:53.119 --> 00:15:55.719 어느 정도 반영이 되기 때문에 298 00:15:55.719 --> 00:15:57.200 이 Force 값을 쓰실 때는 299 00:15:57.200 --> 00:16:00.640 여러분들이 이런 식의 주의가 좀 필요합니다 300 00:16:00.640 --> 00:16:02.960 이게 너무 바깥으로 멀리 나가는 게 싫으시면 301 00:16:02.960 --> 00:16:05.119 Initialize로 Lifetime 자체를 302 00:16:05.119 --> 00:16:10.440 0.5~0.7초 정도로 줄이셔도 됩니다 303 00:16:10.440 --> 00:16:13.280 Velocity를 조금만 낮추도록 하겠습니다 304 00:16:13.280 --> 00:16:14.479 이런 식으로 305 00:16:14.479 --> 00:16:17.021 그래서 이 3가지 지금 306 00:16:17.021 --> 00:16:20.880 Velocity와 Curl Noise와 Vortex Force 307 00:16:20.880 --> 00:16:23.719 이 3가지 모듈을 엮어서 308 00:16:23.719 --> 00:16:28.760 원형의 움직임이되 패턴이 너무 뻔하게 드러나지 않게끔 309 00:16:28.760 --> 00:16:32.880 약간씩의 변주를 주는 기본 틀을 만들어 본 겁니다 310 00:16:32.880 --> 00:16:35.679 그래서 원형의 틀이 이런 식으로 311 00:16:35.679 --> 00:16:37.880 일렁일 수 있는 형태의 모양으로 312 00:16:37.880 --> 00:16:39.520 이렇게 실루엣을 그려보면 313 00:16:39.520 --> 00:16:42.599 이런 식의 모양으로 나오고 있죠 314 00:16:42.599 --> 00:16:47.239 Simulation 타겟을 CPU가 아닌 GPU로 바꿔주시면 315 00:16:47.239 --> 00:16:49.159 가용할 수 있는 파티클의 수라든가 316 00:16:49.159 --> 00:16:52.400 이런 것들이 조금 더 늘어날 수 있게 됩니다 317 00:16:52.400 --> 00:16:54.880 물론 이제 파티클 입자라든가 318 00:16:54.880 --> 00:16:57.400 이런 것의 Lifetime이라든가 319 00:16:57.400 --> 00:17:00.280 이렇게 늘어나면 개수가 늘죠 320 00:17:00.280 --> 00:17:03.880 다만 이 개수가 많아지면 많아질수록 321 00:17:03.880 --> 00:17:07.439 여러분들이 CPU를 사용하시는 것보다 322 00:17:07.439 --> 00:17:09.599 CPU로도 늘어나긴 합니다만 323 00:17:09.599 --> 00:17:12.839 GPU를 쓰시는 것이 훨씬 더 324 00:17:12.839 --> 00:17:16.160 이 파티클의 많은 개수를 활용할 때 325 00:17:16.160 --> 00:17:18.959 퍼포먼스적으로 도움이 많이 됩니다 326 00:17:18.959 --> 00:17:22.800 특히나 이런 식의 굉장히 많은 입자를 뿌려야 327 00:17:22.800 --> 00:17:24.920 그 이쁜 효과가 결이라든가 328 00:17:24.920 --> 00:17:28.400 지금 보는 것처럼 결 같은 게 잘 드러나는 것들은 329 00:17:28.400 --> 00:17:30.400 입자를 많이 뿌려야 될 수가 있거든요 330 00:17:30.400 --> 00:17:34.520 이거는 다시 0.7로 좀 약하게 되돌리도록 하고요 331 00:17:34.520 --> 00:17:39.359 그리고 대신 공장 자체의 라인의 가동시간을 332 00:17:39.359 --> 00:17:42.059 2배로 늘리면 혹은 333 00:17:42.059 --> 00:17:44.800 3, 4배로 늘려보는 것도 방법입니다 334 00:17:44.800 --> 00:17:47.119 여러분들이 1로만 두실 게 아니고 335 00:17:47.119 --> 00:17:51.760 이런 식으로 공장의 시간, Rate 의 값, Lifetime 336 00:17:51.760 --> 00:17:53.280 Particle 개별 입자의 시간 337 00:17:53.280 --> 00:17:55.400 이런 것들을 컨트롤 해보시면 되는데 338 00:17:55.400 --> 00:17:57.400 계속해서 일부 파티클은 생성되고 339 00:17:57.400 --> 00:18:00.880 소멸이 되면서 일정한 개수가 유지가 될 겁니다 340 00:18:00.880 --> 00:18:04.760 그러면서 자연스럽게 원의 경계도 나오게 되고 341 00:18:04.760 --> 00:18:08.640 이 상태에서 GPU를 쓸 때 조심해야 될 거 342 00:18:08.640 --> 00:18:11.079 여기 보면 경고 표시가 떠 있죠 343 00:18:11.079 --> 00:18:14.400 Missing fixed bounds라고 되어 있습니다 344 00:18:14.400 --> 00:18:18.479 Emitter에서 보시면 Missing fixed bounds인데 345 00:18:18.479 --> 00:18:20.959 여기 보면 Bounds라는 항목이 있습니다 346 00:18:20.959 --> 00:18:25.280 Bounds 항목을 3점 메뉴를 클릭해서 347 00:18:25.280 --> 00:18:29.680 Set Fixed Bounds(Emitters) 항목을 체크를 해보시면 348 00:18:29.680 --> 00:18:33.280 크게 변화는 없는데 갑자기 경고 표시가 사라졌죠 349 00:18:33.280 --> 00:18:36.880 Fixed Bounds라는 항목이 업데이트가 돼서 그런 건데요 350 00:18:36.880 --> 00:18:39.319 Bounds 항목을 단순히 클릭만 하시면 351 00:18:39.319 --> 00:18:41.869 이런 식으로 파티클 입자가 352 00:18:41.869 --> 00:18:45.280 어디까지 최대로 번져나갈 수 있는지 353 00:18:45.280 --> 00:18:47.400 이런 Bounds 값이라는 게 있습니다 354 00:18:47.400 --> 00:18:51.760 만약에 여러분들이 여기 있는 Fixed Bounds 항목을 355 00:18:51.760 --> 00:18:55.040 리셋을 하셔서 이렇게 작은 범위로 한다면 356 00:18:55.040 --> 00:18:58.800 나중에 이펙트를 그릴 때 좀 문제가 됩니다 357 00:18:58.800 --> 00:19:02.000 이건 나중에 월드에 배치해 놓을 시기가 되면 358 00:19:02.000 --> 00:19:04.199 한 번 더 설명을 드릴 건데 359 00:19:04.199 --> 00:19:08.680 그래서 이미터가 번져나갈 수 있는 최대 범위로 360 00:19:08.680 --> 00:19:11.119 이렇게 Bounds 값을 설정하시는 게 361 00:19:11.119 --> 00:19:13.319 여러분들이 파티클보다 362 00:19:13.319 --> 00:19:16.400 안정적으로 제어할 수 있게 되는 겁니다 363 00:19:16.400 --> 00:19:18.040 우선 이렇게 두고요 364 00:19:18.040 --> 00:19:20.920 마저 나머지 효과들을 만들어 보겠습니다 365 00:19:20.920 --> 00:19:24.640 파티클의 세부적인 정리는 나중에 366 00:19:24.640 --> 00:19:29.640 전체적인 구성 요소가 다 갖춰진 다음에 하도록 하고요 367 00:19:29.640 --> 00:19:32.640 여기에서 지금 가운데에 368 00:19:32.640 --> 00:19:36.040 월드 상의 파티클을 배치를 해 보면요 369 00:19:36.040 --> 00:19:37.599 이렇게 배치가 됐죠 370 00:19:37.599 --> 00:19:40.160 이것을 월드 상에 이렇게 옮겨 놓고 371 00:19:40.160 --> 00:19:41.680 조금만 띄우겠습니다 372 00:19:41.680 --> 00:19:45.560 그리고 회전을 시켜서 보게 되면 373 00:19:45.560 --> 00:19:49.239 이런 식으로 보텍스 때문에 모양이 회전을 시켰을 때 374 00:19:49.239 --> 00:19:51.560 제대로 이렇게 안 서게 되는 375 00:19:51.560 --> 00:19:54.319 눕혔을 때만 모양이 제대로 보이게 되는 376 00:19:54.319 --> 00:19:56.119 이러한 증상이 있습니다 377 00:19:56.119 --> 00:20:00.147 그래서 우리는 이 Vortex 자체에 378 00:20:00.147 --> 00:20:02.647 Axis Coordinate의 Simulation을 379 00:20:02.647 --> 00:20:04.920 Local로 좀 바꿔줄 필요가 있습니다 380 00:20:04.920 --> 00:20:08.627 이걸 Local로 바꾸지 않으면 나중에 여러분들이 381 00:20:08.627 --> 00:20:12.080 이게 Simulation일 때 모양이고요 382 00:20:12.080 --> 00:20:14.360 이것이 Local일 때 모양입니다 383 00:20:14.360 --> 00:20:15.795 우리가 원하는 건 이대로 384 00:20:15.795 --> 00:20:18.760 이렇게 파티클이 유지되는 걸 원하는 거죠 385 00:20:18.760 --> 00:20:22.360 이런 식으로 그러면 우리가 해줘야 될 건 386 00:20:22.360 --> 00:20:25.040 가운데 영역의 뒷배경이 아니라 387 00:20:25.040 --> 00:20:29.799 전혀 새로운 공간, 다른 지역을 보여줄 필요가 있는데요 388 00:20:29.799 --> 00:20:32.799 여기에다가 뭔가 다른 지역을 보여줄 때 389 00:20:32.799 --> 00:20:35.200 레벨 세팅을 좀 보겠습니다 390 00:20:35.200 --> 00:20:37.000 레벨을 좀 다른 장소로 391 00:20:37.000 --> 00:20:40.700 아예 바깥쪽 파란색이 좀 눈에 띄면 392 00:20:40.700 --> 00:20:43.439 확실히 좀 알기 쉬울 텐데요 393 00:20:43.439 --> 00:20:47.139 이 파란색 큐브가 우리가 넘어가야 될 394 00:20:47.139 --> 00:20:49.919 다른 공간이라고 가정을 해보겠습니다 395 00:20:49.919 --> 00:20:52.720 포털을 타고 넘어가야 될 다른 공간 396 00:20:52.720 --> 00:20:57.840 그러면 이 화면을 찍고 있는 카메라가 한 대 필요합니다 397 00:20:57.840 --> 00:21:00.440 그것이 Place Actor 항목에서 398 00:21:00.440 --> 00:21:03.000 Capture라고 검색을 해보시면 399 00:21:03.000 --> 00:21:06.600 Scene Capture 2D라는 이 카메라가 400 00:21:06.600 --> 00:21:08.800 게임 모드를 풀어서 좀 보겠습니다 401 00:21:08.800 --> 00:21:12.060 이런 식으로 배치가 될 거고요 이렇게 402 00:21:12.060 --> 00:21:14.610 그리고 이 Scene Capture 2D는 403 00:21:14.610 --> 00:21:17.800 기존에 있던 카메라들과는 역할이 조금 다릅니다 404 00:21:17.800 --> 00:21:21.800 기존에 우리가 서드 퍼슨으로 사용하던 캐릭터 같은 경우에는 405 00:21:21.800 --> 00:21:26.700 실제 카메라가 찍은 장면을, 잠깐 F8번 눌러서 406 00:21:26.700 --> 00:21:30.720 이 컴포넌트 구성을 좀 보면서 얘기를 하겠습니다 407 00:21:30.720 --> 00:21:35.720 여기에 이 FollowCamera라고 카메라 컴포넌트가 붙어 있죠 408 00:21:35.720 --> 00:21:39.070 이거 같은 경우엔 유저들의 화면에다가 409 00:21:39.070 --> 00:21:41.720 자기가 찍은 걸 보여주는 카메라고요 410 00:21:41.720 --> 00:21:44.800 ESC를 누르고 플레이 모드를 끝내서 411 00:21:44.800 --> 00:21:46.550 이 Scene Capture 같은 경우에는 412 00:21:46.550 --> 00:21:48.400 캡쳐 카메라가 찍은 것을 413 00:21:48.400 --> 00:21:52.919 유저 화면이 아닌 텍스처로 전달을 하는 역할을 합니다 414 00:21:52.919 --> 00:21:56.760 그래서 이 카메라가 찍고 있는 걸 담을 수 있는 415 00:21:56.760 --> 00:21:59.710 마이크로 SD 같은 역할을 하는 텍스처를 416 00:21:59.710 --> 00:22:02.040 하나 애셋을 생성해야 됩니다 417 00:22:02.040 --> 00:22:05.959 그래서 Content 브라우저 창에서 오른쪽 클릭 418 00:22:05.959 --> 00:22:10.440 Texture - Render Target이라는 텍스처를 클릭을 해주고요 419 00:22:10.440 --> 00:22:13.000 보통 줄여서 RT라고 씁니다 420 00:22:13.000 --> 00:22:14.750 PortalDest 421 00:22:14.750 --> 00:22:18.759 Destination, 목적지라는 의미로 이렇게 썼고요 422 00:22:18.759 --> 00:22:21.559 이렇게 만들어진 텍스처를 423 00:22:21.559 --> 00:22:24.320 카메라 아래쪽에 디테일 창에 보면 424 00:22:24.320 --> 00:22:26.479 Texture Target 항목이 있습니다 425 00:22:26.479 --> 00:22:31.479 여기에다가 렌더 텍스처를 이렇게 전달을 해줍니다 426 00:22:31.479 --> 00:22:33.559 그러면 이 텍스처를 더블 클릭해 보면 427 00:22:33.559 --> 00:22:35.119 창을 좀 키울게요 428 00:22:35.119 --> 00:22:37.119 더블 클릭해서 보면 429 00:22:37.119 --> 00:22:41.199 이런 식으로 현재 카메라가 찍고 있는 장면이 나오죠 430 00:22:41.199 --> 00:22:46.049 지금은 256 픽셀 이라는 굉장히 작은 해상도로 431 00:22:46.049 --> 00:22:47.880 촬영이 되고 있는 거고요 432 00:22:47.880 --> 00:22:52.559 이거를 여러분들이 원하신다면 512나 1024와 같이 433 00:22:52.559 --> 00:22:55.960 큰 해상도로 그냥 바로 바꾸면 적용이 됩니다 434 00:22:55.960 --> 00:22:59.160 이런 식으로 촬영을 바로바로 할 수 있게 435 00:22:59.160 --> 00:23:02.160 이렇게 세팅을 해 놓는 겁니다 436 00:23:02.160 --> 00:23:06.880 그럼 우리는 이 렌더링 된 화면을 캡처 카메라가 437 00:23:06.880 --> 00:23:09.480 Scene Capture 카메라가 찍은 화면을 438 00:23:09.480 --> 00:23:13.160 여기 있는 포털에다가 적용을 해야 되는 것이죠 439 00:23:13.160 --> 00:23:18.479 그래서 나이아가라 화면으로 다시 한번 좀 돌아가겠습니다 440 00:23:18.479 --> 00:23:23.279 나이아가라에서 스프라이트 하나를 추가해 주겠습니다 441 00:23:23.279 --> 00:23:27.399 우선은 오른쪽 클릭해서 Add emitter 442 00:23:27.399 --> 00:23:32.360 SingleLoopingParticle을 추가해 줍니다 443 00:23:32.360 --> 00:23:35.279 SingleLoopingParticle 같은 경우에도 444 00:23:35.279 --> 00:23:38.440 Emitter가 이 Self로 놓고 445 00:23:38.440 --> 00:23:42.199 이것을 Once가 아닌 Infinite로 두게 되면 446 00:23:42.199 --> 00:23:44.399 1초가 계속해서 반복되죠 447 00:23:44.399 --> 00:23:47.599 그리고 Initialize Particle 자체도 448 00:23:47.599 --> 00:23:51.317 LoopDuration에 맞춰서 Lifetime을 갖기 때문에 449 00:23:51.317 --> 00:23:56.119 별도의 타이밍을 손봐주지 않아도 됩니다 450 00:23:56.119 --> 00:23:58.619 그럼 여기에 작은 점 같은 451 00:23:58.619 --> 00:24:02.199 이런 스프라이트가 떠 있는 게 보이죠 452 00:24:02.240 --> 00:24:05.919 스프라이트의 사이즈를 조금만 키워 보겠습니다 453 00:24:05.919 --> 00:24:09.679 지금 10으로 되어 있는 걸 이렇게 쭉 키워서 454 00:24:09.679 --> 00:24:12.279 대략적으로 우리가 만들어 놓은 455 00:24:12.279 --> 00:24:15.880 이펙트의 틀에 맞게끔 세팅을 해 놓고 456 00:24:15.880 --> 00:24:18.610 위에서 볼 때는 문제가 없어요, 위에서는 457 00:24:18.610 --> 00:24:23.480 이것을 앵글을 틀어 보면 문제가 됩니다 458 00:24:23.480 --> 00:24:28.119 스프라이트의 성질 자체가 항상 카메라를 바라보기 때문에 459 00:24:28.119 --> 00:24:33.559 지금 보시는 것처럼 이렇게 우리가 만든 파티클 이펙트와 460 00:24:33.559 --> 00:24:37.920 비교를 해서 보더라도 위에서 볼 때는 문제가 없죠 461 00:24:37.920 --> 00:24:41.000 여기에서 시뮬레이션 되는 공간 자체를 462 00:24:41.000 --> 00:24:44.300 Local Space로 체크를 한다고 하더라도 463 00:24:44.300 --> 00:24:47.000 동일한 증상이 나옵니다 464 00:24:47.000 --> 00:24:50.720 이때는 약간 다른 방법을 써 줘야 됩니다 465 00:24:50.720 --> 00:24:53.660 이 방향을 정하기 위해서는 466 00:24:53.660 --> 00:24:57.010 물론 여기에서 Facing Mode라고 하는 것을 467 00:24:57.010 --> 00:24:59.160 바꿔주는 방법도 있는데요 468 00:24:59.160 --> 00:25:01.960 모듈 중에 Particle Spawn에다가 469 00:25:01.960 --> 00:25:04.299 Facing이라고 검색을 하면 470 00:25:04.299 --> 00:25:06.700 Facing은 바라보는 방향을 의미하죠 471 00:25:06.700 --> 00:25:10.050 그래서 Sprite Facing and Alignment 472 00:25:10.050 --> 00:25:13.339 이 부분을 추가를 해 줍니다 473 00:25:13.339 --> 00:25:17.459 그렇게 되면 이제는 어느 각도에서 보더라도 474 00:25:17.459 --> 00:25:21.339 각도가 일정해진 걸 확인해 볼 수가 있는데 475 00:25:21.339 --> 00:25:26.459 다만 여기에서 Sprite Facing 옵션을 보면 476 00:25:26.459 --> 00:25:28.619 X, Y, Z축으로 되어 있죠 477 00:25:28.619 --> 00:25:33.980 현재는 X축을 기준으로 정렬이 되어 있는 상태입니다 478 00:25:33.980 --> 00:25:36.420 여기 X축 보이시죠 479 00:25:36.420 --> 00:25:40.380 이렇게 X축을 기준으로 수직이 되게 480 00:25:40.380 --> 00:25:42.880 그래서 여기에 보면 Facing에 481 00:25:42.880 --> 00:25:45.700 이런 식으로, 1로 되어 있죠 482 00:25:45.700 --> 00:25:48.339 우리는 X축이 아니라 483 00:25:48.339 --> 00:25:52.940 파티클 방향에 맞춰서 Z축으로 1을 입력해 주고 484 00:25:52.940 --> 00:25:57.385 X는 0으로 두겠습니다 이렇게 485 00:25:57.385 --> 00:25:59.579 그리고 나서 저장을 해서 486 00:25:59.579 --> 00:26:04.399 월드 상에서 정상적으로 잘 보이는지 확인을 해야겠죠 487 00:26:04.399 --> 00:26:07.749 월드 상에서도 정상적으로 잘 보이는 걸 488 00:26:07.749 --> 00:26:09.899 확인할 수가 있습니다 489 00:26:09.899 --> 00:26:14.019 여기에서 Local Simulation 옵션을 끄게 되면 490 00:26:14.019 --> 00:26:18.100 다시 월드상의 Z축을 바라보게끔 되니까 491 00:26:18.100 --> 00:26:19.940 주의가 필요하고요 492 00:26:19.940 --> 00:26:22.775 그래서 Local Space는 활성화 시켜 주시길 바랍니다 493 00:26:23.272 --> 00:26:27.153 포털 머티리얼 및 다이내믹 파라미터 생성 494 00:26:27.153 --> 00:26:31.420 여기에서 우리가 렌더 텍스처 만들어 놨던 거 있죠 495 00:26:31.420 --> 00:26:34.220 이것을 Sprite Renderer에 496 00:26:34.220 --> 00:26:37.140 Material에 연결을 해 줘야 되는데요 497 00:26:37.140 --> 00:26:40.940 오른쪽 클릭을 해서 Material을 하나 만들어 줍니다 498 00:26:40.940 --> 00:26:48.260 이것은 M_PortalTex 이렇게 이름을 지어 주고요 499 00:26:48.260 --> 00:26:49.779 Material Editor를 엽니다 500 00:26:49.779 --> 00:26:53.019 여기에서 보여지는 포털 같은 경우에는 501 00:26:53.019 --> 00:26:55.299 일단 라이트의 영향을 받을 필요 없으니까 502 00:26:55.299 --> 00:26:57.739 Unlit 상태로 두시고 503 00:26:57.739 --> 00:27:02.140 투명도도 이렇게 평면에 스프라이트에다가 504 00:27:02.140 --> 00:27:05.459 동그랗게 이미지를 만들어 줘야 되니까 505 00:27:05.459 --> 00:27:09.100 이것도 Masked로 두겠습니다 506 00:27:09.100 --> 00:27:14.140 그래서 스프라이트의 사각형 테두리에다가 507 00:27:14.140 --> 00:27:17.339 동그랗게 구멍 난 부분만 보이게끔 508 00:27:17.339 --> 00:27:21.100 그렇게 수정을 해 줄 겁니다 509 00:27:21.100 --> 00:27:23.660 우선 렌더 텍스처를 가지고 와서 510 00:27:23.660 --> 00:27:26.100 Emissive Color에 연결을 해 주면 511 00:27:26.100 --> 00:27:28.619 이미지가 나오겠죠 512 00:27:28.619 --> 00:27:30.540 Apply를 해줍니다 513 00:27:30.540 --> 00:27:33.340 그리고 나서 여기 있는 Material에 514 00:27:33.340 --> 00:27:35.799 그대로 연결을 해 주면 됩니다 515 00:27:35.799 --> 00:27:37.619 이미지가 보이죠 516 00:27:37.619 --> 00:27:42.019 나중에 크기는 그 원형의 마스킹 영역을 잡아 두고 517 00:27:42.019 --> 00:27:45.380 다시 조절을 좀 해야 됩니다 518 00:27:45.380 --> 00:27:48.679 이런 식으로 이미지를 보이게 만들었구요 519 00:27:48.679 --> 00:27:53.019 지금부터는 Material 작업을 해 줘야 됩니다 520 00:27:53.019 --> 00:27:58.980 Material에서 우선은 동그랗게 원형의 이미지로 보이게끔 521 00:27:58.980 --> 00:28:01.500 마스킹을 먼저 작업할 건데요 522 00:28:01.500 --> 00:28:06.859 오른쪽 클릭해서 Radial이라고 검색을 해 보시면 523 00:28:06.859 --> 00:28:10.700 RadialGradientExponential라는 노드가 있습니다 524 00:28:10.700 --> 00:28:13.420 이것을 Emissive에다가 먼저 연결해서 525 00:28:13.420 --> 00:28:15.339 어떤 형태인지 보여드리면 526 00:28:15.339 --> 00:28:21.530 지금 보시는 것처럼 가운데 원형의 이미지로 화이트 527 00:28:21.530 --> 00:28:25.802 여백의 원이 아닌 나머지 영역들은 블랙으로 528 00:28:25.802 --> 00:28:27.802 서서히 그라디언트 효과가 529 00:28:27.802 --> 00:28:30.859 적용되어 있는 걸 확인할 수 있습니다 530 00:28:30.859 --> 00:28:34.619 이것을 Opacity Mask에다가 연결을 해 주고 531 00:28:34.619 --> 00:28:36.979 그러면 Masked 상태니까 532 00:28:36.979 --> 00:28:42.580 지금 보시는 것처럼 이렇게 동그랗게 원형이 보이게 되죠 533 00:28:42.580 --> 00:28:45.299 그러면 우리는 Emissive Color에다가 534 00:28:45.299 --> 00:28:47.299 지금 보시는 것처럼 이렇게 535 00:28:47.299 --> 00:28:51.659 렌더 텍스처를 가지고 와서 연결해 주면 됩니다 536 00:28:51.659 --> 00:28:54.659 이대로 두면 참 멋이 없겠죠 537 00:28:54.659 --> 00:28:59.739 그래서 여기에다가 몇 가지 작업들을 해 줄 겁니다 538 00:28:59.739 --> 00:29:03.780 우선은 Texture Sample을 이용해서 539 00:29:03.780 --> 00:29:06.059 Noise 텍스처를 가지고 올 겁니다 540 00:29:06.059 --> 00:29:10.619 Noise, 가장 기본이 되는 Perlin Noise 텍스처를 541 00:29:10.619 --> 00:29:12.260 가져오도록 할 겁니다 542 00:29:12.260 --> 00:29:14.900 Start Contents에 있어요 543 00:29:14.900 --> 00:29:17.299 이 Noise를 어떻게 쓸 거냐면 544 00:29:17.299 --> 00:29:21.619 여기 있는 그라디언트랑 섞어 줄 겁니다 545 00:29:21.619 --> 00:29:23.700 이 Noise를 섞었을 때 546 00:29:23.700 --> 00:29:27.780 Noise 이미지는 그레이 스케일, 흑백의 이미지니까 547 00:29:27.780 --> 00:29:30.179 레드 채널이던 그린 채널이던 548 00:29:30.179 --> 00:29:34.460 어디서 가져오든 동일한 이미지를 전달합니다 549 00:29:34.460 --> 00:29:36.739 여기에다가 Add 해가지고 550 00:29:36.739 --> 00:29:40.059 이렇게 연결을 해 줄 겁니다 551 00:29:40.059 --> 00:29:45.140 그래서 이것을 Step이라는 노드로 연결을 끊고 552 00:29:45.140 --> 00:29:47.859 X에다가 이렇게 연결을 할게요 553 00:29:47.859 --> 00:29:51.659 Opacity Mask에다가 다시 연결해 주고 554 00:29:51.659 --> 00:29:56.140 이 수치를 0.5 정도로만 이렇게 하겠습니다 555 00:29:56.140 --> 00:29:59.979 지금 보면 원형이라고 보기엔 조금 어려운 556 00:29:59.979 --> 00:30:04.140 굉장히 지저분하게 가장자리만 557 00:30:04.140 --> 00:30:09.260 낡게 찢어진 것 같은 이미지로 만들어졌죠 558 00:30:09.260 --> 00:30:13.979 왜냐하면 이 원 자체의 값은 가운데는 1이고요 559 00:30:13.979 --> 00:30:17.744 여백은 0입니다, 구석은 560 00:30:17.744 --> 00:30:20.780 그럼 이 중간은 1에서부터 0까지 561 00:30:20.780 --> 00:30:23.059 이제 그라디언트한 값인데 562 00:30:23.059 --> 00:30:25.659 Noise 자체도 0에서 1까지의 563 00:30:25.659 --> 00:30:27.099 블랙&화이트로 이루어졌죠 564 00:30:27.099 --> 00:30:31.380 그러니까 1에다가는 어떤 값을 더해도 565 00:30:31.380 --> 00:30:33.859 결국에 1보다 크죠 566 00:30:33.859 --> 00:30:36.780 그렇기 때문에 항상 온전하게 보이는 거고요 567 00:30:36.780 --> 00:30:39.271 여기 있는 여백에다가, 0에다가 568 00:30:39.271 --> 00:30:41.671 Noise에 있는, 1에 있는 값이 만약에 569 00:30:41.671 --> 00:30:44.260 전달이 된다면 보일 거고요 570 00:30:44.260 --> 00:30:46.419 이렇게 보이는 영역들이 있죠 571 00:30:46.419 --> 00:30:48.700 원래 안 보였어야 되는데 572 00:30:48.700 --> 00:30:50.659 0의 값이 더해지면 안 보이겠죠 573 00:30:50.659 --> 00:30:52.539 이렇게 구멍난 것처럼 574 00:30:52.539 --> 00:30:54.619 이걸 응용할 건데 575 00:30:54.619 --> 00:30:59.619 지금은 0에서 1로, 값의 편차가 너무 크니까 576 00:30:59.619 --> 00:31:03.340 텍스처에다가 Multiply를 이용해서 577 00:31:03.340 --> 00:31:06.979 우선 1/10로 줄여 보겠습니다 578 00:31:06.979 --> 00:31:11.340 Multiply를 해주면 0에서 1이었던 값이 579 00:31:11.340 --> 00:31:15.020 0에서부터 0.1이 되겠죠 580 00:31:15.020 --> 00:31:18.299 1에다가 곱하기 0.1 하면 0.1이죠 581 00:31:18.299 --> 00:31:20.539 반면에 0은 0이니까 582 00:31:20.539 --> 00:31:23.260 이 상태에서 Add를 해주면 583 00:31:23.260 --> 00:31:27.179 이런 식으로 원의 테두리에만 약간씩의 584 00:31:27.179 --> 00:31:29.859 울퉁불퉁한 Noise가 낀 것 같은 585 00:31:29.859 --> 00:31:31.940 이러한 상태가 됩니다 586 00:31:31.940 --> 00:31:35.219 당연히 원래 반듯한 원에 587 00:31:35.219 --> 00:31:37.900 여기에는 0.1이 더해지거나 588 00:31:37.900 --> 00:31:40.419 0.1이 더해지거나 589 00:31:40.419 --> 00:31:42.659 안쪽에 더해지거나 빼지거나 해서 590 00:31:42.659 --> 00:31:44.979 바깥으로 더해진 값들이 591 00:31:44.979 --> 00:31:49.580 이렇게 이렇게 흰색으로 처리가 된 거죠 592 00:31:49.580 --> 00:31:51.820 그리고 Step에서는 593 00:31:51.820 --> 00:31:55.780 원래는 부드럽게 이렇게 값이 움직였던 걸 594 00:31:55.780 --> 00:31:58.859 이렇게 0에서 1로 이런 식으로 595 00:31:58.859 --> 00:32:01.979 끊어서 정리를 해 준 거고요 596 00:32:01.979 --> 00:32:07.299 이 상태에서 이번에는 정적으로 멈춰 있으면 597 00:32:07.299 --> 00:32:13.260 이미지가 이 회전하는 파티클하고 너무 좀 다르니까 598 00:32:13.260 --> 00:32:16.460 여기에다가 Rotator라고 하는 599 00:32:16.460 --> 00:32:19.179 노드를 연결을 할 겁니다 600 00:32:19.179 --> 00:32:21.059 Rotator를 연결해 보면 601 00:32:21.059 --> 00:32:24.900 지금 보시는 것처럼 이렇게 회전을 하고 있죠 602 00:32:24.900 --> 00:32:27.900 아래쪽에 열어서 보면 Speed가 있고 603 00:32:27.900 --> 00:32:29.659 Center 값이 있습니다 604 00:32:29.659 --> 00:32:31.419 이런 식으로 UV 값에다가 605 00:32:31.419 --> 00:32:33.979 이 Coordinate라고 얘기하는 건 606 00:32:33.979 --> 00:32:37.539 여기에 들어가야 되는 정보는 UV 입니다 607 00:32:37.539 --> 00:32:42.979 그래서 원래 UV 값이 0,0에서 구석에 1,1이죠 608 00:32:42.979 --> 00:32:47.979 그러면 중앙이 되는 0.5,0.5 609 00:32:47.979 --> 00:32:51.820 여기를 기준으로 해서 회전시키는 겁니다 610 00:32:51.820 --> 00:32:55.419 내가 만약에 이 속도를 제어하고 싶다면 611 00:32:55.419 --> 00:32:58.859 잠시 지워서 Time 노드하고 612 00:32:58.859 --> 00:33:02.140 Multiply로 속도 값을 곱해 주게 되면 613 00:33:02.140 --> 00:33:06.419 시간이 지남에 따라서 2배 빠르게 회전하거나 614 00:33:06.419 --> 00:33:08.700 5배 빠르게 회전하거나 615 00:33:08.700 --> 00:33:12.659 이런 것들이 제어가 가능해집니다 616 00:33:12.659 --> 00:33:16.380 이제 이 Step을 응용을 해서 617 00:33:16.380 --> 00:33:19.340 테두리에다가 Particle의 컬러처럼 618 00:33:19.340 --> 00:33:21.780 빛나게끔 처리를 해 줄 건데요 619 00:33:21.780 --> 00:33:26.739 이것을 그대로 Ctrl+C, Ctrl+V를 하겠습니다 620 00:33:26.739 --> 00:33:31.380 똑같이 X에다가 Add한 결과를 넣어 주고요 621 00:33:31.380 --> 00:33:35.140 Opacity Mask에 쓰는 Step보다 약간만 키워 주고요 622 00:33:35.140 --> 00:33:40.659 이것을 티가 나게 0.7 정도로 키워서 623 00:33:40.659 --> 00:33:42.659 Opacity Mask을 해 보면 624 00:33:42.659 --> 00:33:47.119 보이는 영역이 훨씬 줄어들어 있습니다 0.5일 때보다 625 00:33:47.119 --> 00:33:53.500 당연히 전체 1에서부터 0까지의 범위가 있다고 치면 626 00:33:53.500 --> 00:33:57.619 원래 옆면에서 봤을 때 1에서부터 0까지의 627 00:33:57.619 --> 00:33:59.069 이런 그라디언트 628 00:33:59.069 --> 00:34:02.260 서서히 값이 작아지는 그래프가 있다고 치면 629 00:34:02.260 --> 00:34:07.460 이만큼 보여주고 0.7 이상은 1로 해서 보여주느냐 630 00:34:07.460 --> 00:34:09.820 0.5 이상을 보여주느냐 631 00:34:09.820 --> 00:34:12.260 이 간격의 차이가 생기겠죠 632 00:34:12.260 --> 00:34:14.340 그걸 만들어 준 거고요 633 00:34:14.340 --> 00:34:20.140 이것을 넓은 면적에서 Subtract로 빼 줍니다 634 00:34:20.140 --> 00:34:23.108 이게 이제 경계가 되는 거고 이렇게 보면 635 00:34:23.108 --> 00:34:26.659 이 값의 차이가 적게 나면 적게 날수록 636 00:34:26.659 --> 00:34:29.460 0.5 정도로 두겠습니다 637 00:34:29.460 --> 00:34:31.859 그럼 굉장히 얇은 띠가 되는 거예요 638 00:34:31.859 --> 00:34:37.059 이것을 컬러와 테두리에는 파티클의 컬러처럼 639 00:34:37.059 --> 00:34:42.820 X 0.2, Y 1, Z, 블루 값이 8이 되게끔 640 00:34:42.820 --> 00:34:46.780 이 컬러 값과 텍스처를 Lerp를 해 주겠습니다 641 00:34:46.780 --> 00:34:49.580 이 경계 부분만 빛나야 하니까 642 00:34:49.580 --> 00:34:53.739 컬러는 B에, 텍스처는 A에 643 00:34:53.739 --> 00:34:55.739 순서를 좀 바꿔 줄게요 644 00:34:55.739 --> 00:34:59.900 그리고 Subtract는 Alpha에 연결해서 645 00:34:59.900 --> 00:35:02.619 Emissive Color로 연결해 주면 646 00:35:02.619 --> 00:35:05.940 지금 보시는 것처럼 테두리가 빛나죠 647 00:35:05.940 --> 00:35:09.500 Step 중에 값이 작은 0.5를 입력한 건 648 00:35:09.500 --> 00:35:12.539 Opacity Mask로 다시 원래대로 해 주면 649 00:35:12.539 --> 00:35:15.219 마치 허공에 구멍이 뚫려서 650 00:35:15.219 --> 00:35:18.460 테두리만 빛나는 것처럼 보이게 됩니다 651 00:35:18.460 --> 00:35:19.460 이렇게 말이죠 652 00:35:19.460 --> 00:35:23.419 나이아가라에서 Sprite Size를 키워줍니다 653 00:35:23.419 --> 00:35:26.859 이렇게 테두리하고 잘 연결이 되게끔 654 00:35:26.859 --> 00:35:28.859 이런 식으로 연결을 해 주면 655 00:35:28.859 --> 00:35:31.539 자연스럽게 회전하는 이미지와 656 00:35:31.539 --> 00:35:34.859 파티클의 움직임이 잘 맞아 들어가게 되죠 657 00:35:34.859 --> 00:35:36.567 만약에 여러분들이 방향을 658 00:35:36.567 --> 00:35:39.219 회전하는 방향을 바꾸고 싶으시면 659 00:35:39.219 --> 00:35:43.780 Time에 Multiply 된 곳에 마이너스 값을 넣어 주면 660 00:35:43.780 --> 00:35:45.859 반대 방향으로 돕니다 661 00:35:45.859 --> 00:35:48.940 이러한 결과물을 지금 보면 662 00:35:48.940 --> 00:35:50.900 조금 아쉬운 게 뭐냐면 663 00:35:50.900 --> 00:35:54.619 이 경계를 가만히 보면 패턴이 664 00:35:54.619 --> 00:35:55.979 조금만 느리게 하겠습니다 665 00:35:55.979 --> 00:36:00.700 -0.1 정도로 아주 느리게 666 00:36:00.700 --> 00:36:04.154 패턴이 고정되어 있는 걸 볼 수가 있습니다 667 00:36:04.154 --> 00:36:08.820 그렇죠? 이런 것들은 이렇게 Multiply 했던 이만큼 668 00:36:08.820 --> 00:36:13.340 Time에서부터 Texture를 Multiply한 이만큼을 669 00:36:13.340 --> 00:36:17.859 Ctrl+C, Ctrl+V 해서 복사해 주시고요 670 00:36:17.859 --> 00:36:20.619 간격을 살짝 이렇게 정리를 하고요 671 00:36:20.619 --> 00:36:23.260 여기에서 Time을 하나는 마이너스 방향 672 00:36:23.260 --> 00:36:27.619 하나는 플러스 방향으로 두겠습니다 673 00:36:27.619 --> 00:36:30.179 그리고 이 두 개의 결과를 674 00:36:30.179 --> 00:36:33.059 한 번 더 Multiply 시킬 겁니다 675 00:36:33.059 --> 00:36:35.340 그러면 여기 Add 되는 값은 676 00:36:35.340 --> 00:36:40.080 원래 플러스 방향으로 돌아가는 Noise의 이미지와 677 00:36:40.080 --> 00:36:43.419 마이너스로 돌아가는 Noise의 이미지 678 00:36:43.419 --> 00:36:46.140 이 두 개가 합쳐져서 테두리 값이 679 00:36:46.140 --> 00:36:47.859 조금만 확대해서 보면 680 00:36:47.859 --> 00:36:50.900 약간씩 일렁거리는 게 보이시죠 681 00:36:50.900 --> 00:36:55.739 이제 이 값의 차이만 조금만 크게 준다면 682 00:36:55.739 --> 00:37:01.179 만약에 마이너스 되는 방향을 0.3 정도로 준다면 683 00:37:01.179 --> 00:37:03.179 자글자글 거리는 느낌이 684 00:37:03.179 --> 00:37:06.859 계속해서 변화되게끔 보일 수가 있고요 685 00:37:06.859 --> 00:37:09.939 지금은 회전 값이 같다 보니까 686 00:37:09.939 --> 00:37:14.180 이 이미지 자체가 자글거리는 느낌은 있어도 687 00:37:14.180 --> 00:37:17.180 회전한다는 느낌은 좀 적어졌죠 688 00:37:17.180 --> 00:37:19.020 그래서 어떤 방향이 됐든 689 00:37:19.020 --> 00:37:20.713 이것을 값의 차이를 690 00:37:20.713 --> 00:37:24.263 Time에 Multiply 된 값의 차이를 691 00:37:24.263 --> 00:37:27.339 한 10배 정도로 둔다면 692 00:37:27.339 --> 00:37:32.420 흘러간다는 느낌까지도 같이 만들어 줄 수가 있게 됩니다 693 00:37:32.420 --> 00:37:36.619 뭐 이걸 둘 다 플러스 방향을 해도 상관은 없어요 694 00:37:36.619 --> 00:37:42.140 제 개인적으로는 한쪽은 마이너스 한쪽은 플러스가 되는게 695 00:37:42.140 --> 00:37:47.140 Noise가 조금 더 이쁘게 생기는 것 같아서 이렇게 둔거고 696 00:37:47.140 --> 00:37:49.819 Multiply 되는 Texture가 697 00:37:49.819 --> 00:37:55.020 Multiply 돼서 Noise의 강도를 조정해 주는 영역에서 698 00:37:55.020 --> 00:37:58.420 똑같이 0.3 이런식으로 강하게 준다면 699 00:37:58.420 --> 00:38:03.420 강하게 주는 만큼 Noise가 훨씬 더 강해지겠죠 700 00:38:03.420 --> 00:38:06.339 이렇게, 그러면 기본적으로 701 00:38:06.339 --> 00:38:10.219 Material에 대한 세팅은 끝나게 됩니다 702 00:38:10.219 --> 00:38:13.979 이제 우리는 이것을 나이아가라에 맞춰서 703 00:38:13.979 --> 00:38:17.219 파라미터를 마음대로 조절할 수 있게끔 704 00:38:17.219 --> 00:38:19.660 다이내믹 파라미터를 이용해서 705 00:38:19.660 --> 00:38:23.619 값을 정리해 주는 과정만 남은 거죠 706 00:38:23.619 --> 00:38:27.140 우선은 Dynamic Parameter를 먼저 만들어 줍니다 707 00:38:27.140 --> 00:38:30.500 여기서부터 차근차근히 가볼게요 708 00:38:30.500 --> 00:38:34.459 파라미터의 첫번째 0번 Index에 709 00:38:34.459 --> 00:38:40.780 RotSpeed라고 회전속도를 조절하는 걸 만들 건데 710 00:38:40.780 --> 00:38:44.380 이걸 그대로 전달받는 게 하나가 있을 거고요 711 00:38:44.380 --> 00:38:49.900 이것을 반대로 돌리게끔 Multiply를 마이너스로 해주되 712 00:38:49.900 --> 00:38:51.859 속도의 차이가 생겨야 되니까 713 00:38:51.859 --> 00:38:54.780 -0.2 정도만 되게끔 714 00:38:54.780 --> 00:38:56.619 이렇게 기본값으로 715 00:38:56.619 --> 00:39:00.500 그래서 Noise가 일렁일렁 거리게끔 하는 716 00:39:00.500 --> 00:39:02.420 효과를 하나 만들어 주고 717 00:39:02.420 --> 00:39:06.540 두번째 항목에는 Noise Strength라고 718 00:39:06.540 --> 00:39:08.219 Noise의 강도를 조절하는 719 00:39:08.219 --> 00:39:12.739 노드를 동일하게 연결을 해줄 겁니다 720 00:39:12.739 --> 00:39:17.339 다만 기본값은 0.3 정도로 721 00:39:17.339 --> 00:39:21.099 혹은 0.4나 이런 식으로 722 00:39:21.099 --> 00:39:25.459 Noise의 형태가 드러나듯이 이렇게 바꿔주고요 723 00:39:25.459 --> 00:39:27.660 조금 아래로 내리겠습니다 724 00:39:27.660 --> 00:39:30.420 그리고 나서 Step에서 연결할 수 있게 725 00:39:30.420 --> 00:39:32.660 두 번째, Index 2번에는 726 00:39:32.660 --> 00:39:37.780 StepVal라고 기본값 0.5로 해서 세팅을 하고요 727 00:39:37.780 --> 00:39:40.219 마지막 파라미터 4번에는 728 00:39:40.219 --> 00:39:43.780 Line Width, 두께, 라인의 두께를 결정해 주는 729 00:39:43.780 --> 00:39:47.699 이것은 0.03 정도로만 해서 730 00:39:47.699 --> 00:39:49.900 Line Width는 Add를 시킬 겁니다 731 00:39:49.900 --> 00:39:51.979 누구랑 Add시키냐면 732 00:39:51.979 --> 00:39:56.979 Step Value와 Line Width를 Add시켜서 733 00:39:56.979 --> 00:39:58.739 조금 가까이서 볼게요 734 00:39:58.739 --> 00:39:59.859 Add된 결과는 735 00:40:00.320 --> 00:40:05.480 두 번째 Step에다가 연결을 해줬습니다 736 00:40:05.480 --> 00:40:09.330 그러면 우리는 여기에 있는 파라미터들을 이용해서 737 00:40:09.330 --> 00:40:13.040 나이아가라에서 제어할 수가 있게 되겠죠 738 00:40:13.040 --> 00:40:16.540 그리고 여기에 있는 컬러, 이 컬러 노드는 739 00:40:16.540 --> 00:40:19.340 제가 이제 설명을 위해서 740 00:40:19.340 --> 00:40:22.440 Constant3Vector로 만들긴 했지만 741 00:40:22.440 --> 00:40:25.390 Particle Color를 이용해서 742 00:40:25.390 --> 00:40:29.210 RGB 값을 전달해주게 만들 겁니다 743 00:40:29.210 --> 00:40:31.959 Constant3 노드는 지워주고요 744 00:40:31.959 --> 00:40:34.919 현재는 흰색 값이 나오게 되어 있습니다 745 00:40:34.919 --> 00:40:37.919 이거 Apply를 해줍니다 746 00:40:37.919 --> 00:40:39.919 이렇게 만들어서 747 00:40:39.919 --> 00:40:43.840 여기에서 하나 Alpha 값이 좀 남는 게 아쉬워서 748 00:40:43.840 --> 00:40:47.490 이것을 Radial Gradient에 있는 749 00:40:47.490 --> 00:40:50.320 Radius에다가 연결을 해가지고 750 00:40:50.320 --> 00:40:53.240 원의 크기도 조절할 수 있게끔 751 00:40:53.240 --> 00:40:56.560 이거는 따로 좀 이쪽으로 빼놨습니다 752 00:40:56.560 --> 00:40:58.639 저장을 해줍니다 753 00:40:58.639 --> 00:41:01.160 이제 나이아가라에 가서요 754 00:41:01.160 --> 00:41:03.210 여기 있는 업데이트 항목에는 755 00:41:03.210 --> 00:41:07.559 Dynamic Parameter를 만들어 줍니다 756 00:41:07.559 --> 00:41:11.309 그러면 Material과 연결된 Dynamic Parameter가 757 00:41:11.309 --> 00:41:14.040 자동으로 리스트업이 되고 758 00:41:14.040 --> 00:41:18.080 RotSpeed는 5 정도로 하고 759 00:41:18.080 --> 00:41:20.599 NoiseStrength는 0.3 760 00:41:20.599 --> 00:41:22.440 StepVal는 0.5 761 00:41:22.440 --> 00:41:27.360 그리고 LineWidth는 0.03으로 하면 762 00:41:27.360 --> 00:41:30.760 지금 보시면 이 사각형의 바깥쪽으로 763 00:41:30.760 --> 00:41:34.760 약간만 효과가 생긴 걸 보실 수가 있는데 764 00:41:34.760 --> 00:41:39.959 여기에서 우리가 Particle Color를 연결을 해놨잖아요 765 00:41:39.959 --> 00:41:42.186 그러니까 이 컬러 모드를 766 00:41:42.186 --> 00:41:45.739 Unset이 아니라 Direct Set으로 바꿔서 767 00:41:45.739 --> 00:41:49.800 이 컬러값 자체를 레드는 0.2 768 00:41:49.800 --> 00:41:53.879 그린 1, 블루 8 컬러값을 주되 769 00:41:53.879 --> 00:41:58.879 이 Alpha를 Radial의 Gradient에 연결을 했죠 770 00:41:58.879 --> 00:42:03.559 0.5로 입력하면 원이 이제 줄어들고요 771 00:42:03.559 --> 00:42:06.109 여기 있는 Alpha 값으로 772 00:42:06.109 --> 00:42:08.479 사실 명칭으로만 보면 773 00:42:08.479 --> 00:42:11.199 그렇게 썩 좋은 선택은 아닌데 774 00:42:11.199 --> 00:42:15.960 이걸 이용해서 Alpha 값이 작아지면 원의 크기가 작게 775 00:42:15.960 --> 00:42:18.260 그리고 Alpha 값이 커지면 776 00:42:18.260 --> 00:42:22.360 원의 크기가 커지게 만들 수도 있습니다 777 00:42:22.360 --> 00:42:26.600 이번에는 조금의 디테일을 좀 더하기 위해서 778 00:42:26.600 --> 00:42:30.679 이 Empty라고 되어 있던 이것의 이름을 779 00:42:30.679 --> 00:42:33.831 OuterCircle이라고 바꿔주고요 780 00:42:33.831 --> 00:42:35.460 이걸 Ctrl+C 781 00:42:35.460 --> 00:42:41.160 그리고 옆에다가 그대로 여백을 둬서 782 00:42:41.160 --> 00:42:44.279 디테일 창의 크기를 조금만 줄이겠습니다 783 00:42:44.279 --> 00:42:45.880 Ctrl+V를 해줍니다 784 00:42:45.880 --> 00:42:47.680 또 다른 하나는 이름을 785 00:42:47.680 --> 00:42:50.160 InnerCircle이라고 바꿔주겠습니다 786 00:42:50.160 --> 00:42:52.610 InnerCircle에서 Vortex Force의 787 00:42:52.610 --> 00:42:55.119 Force Amount를 줄이겠습니다 788 00:42:55.119 --> 00:42:59.360 서서히 줄여가지고 마이너스로 만들어 주면 789 00:42:59.360 --> 00:43:02.279 이제 안쪽으로 이런 식으로 790 00:43:02.279 --> 00:43:05.079 그리고 Origin Pull Amount도 791 00:43:05.079 --> 00:43:07.320 조절하는 것을 잘 보시면 792 00:43:07.320 --> 00:43:09.720 값이 커질수록 안쪽으로 더 모입니다 793 00:43:09.720 --> 00:43:12.240 그렇기 때문에 너무 키우지 마시고 794 00:43:12.240 --> 00:43:16.639 Force Amount랑 Origin Pull Amount를 조절을 해서 795 00:43:16.639 --> 00:43:19.839 이 값이 너무 커지면 역으로 삐져나가니까 796 00:43:19.839 --> 00:43:22.639 여러분들이 값을 잘 조절하셔가지고 797 00:43:22.639 --> 00:43:25.339 이런 식으로 안쪽으로도 798 00:43:25.339 --> 00:43:28.520 모양이 들이치는 모양으로 만들어질 수 있게 799 00:43:28.520 --> 00:43:32.360 그리고 Noise의 형태도 조금만 변화를 줘서 800 00:43:32.360 --> 00:43:36.000 이 안쪽까지도 빨려 들어가는 모양새로 801 00:43:36.000 --> 00:43:39.160 표현이 될 수 있게끔 마무리를 해 주시면 802 00:43:39.160 --> 00:43:44.199 조금 더 이 이미지의 경계가 너무 또렷했다 보니까 803 00:43:44.199 --> 00:43:48.559 상대적으로 완화시키면서 정리를 해 줄 수가 있게 되겠죠 804 00:43:48.559 --> 00:43:51.759 이것을 적용해서 월드에서 한번 확인해 보겠습니다 805 00:43:51.759 --> 00:43:56.320 그러면 게임 뷰로 정리해서 보면 이렇게 됩니다 806 00:43:56.320 --> 00:44:00.105 이상으로 포털 이펙트를 마치도록 하겠습니다 807 00:44:01.570 --> 00:44:04.600 언리얼의 파티클들의 움직임 808 00:44:04.600 --> 00:44:09.360 특히 원과 같은 일정한 형태를 가진 움직임에 809 00:44:09.360 --> 00:44:12.880 노이즈를 추가하는 방식에 대해서 다뤄봤고요 810 00:44:12.880 --> 00:44:16.559 또한 많은 수의 파티클을 활용하기 위해서는 811 00:44:16.559 --> 00:44:21.279 GPU 시뮬레이트와 같은 기능이 어떻게 설정하고 812 00:44:21.279 --> 00:44:24.399 세팅해야 되는지를 알아봤습니다 813 00:44:24.399 --> 00:44:28.640 렌더 텍스처를 통해 서로 다른 카메라를 활용해서 814 00:44:28.640 --> 00:44:33.239 하나의 공간에 있는 것 같은 연출을 해봤습니다 815 00:44:33.239 --> 00:44:35.989 그럼 이번 시간 학습한 내용을 정리하면서 816 00:44:35.989 --> 00:44:37.440 마무리 하겠습니다 817 00:44:37.440 --> 00:44:38.160 감사합니다 818 00:44:39.057 --> 00:44:39.607 포털 이펙트 생성 포털 이펙트 Create Empty Niagara System 선택 후 FX_Portal로 이름 설정 Add Empty Emitter로 Empty 이미터 추가 819 00:44:39.607 --> 00:44:40.107 Emitter State 추가 후 LifeCycle Mode를 Self로, Loop Behavior를 Infinite로 설정 Spawn Rate 추가 후 820 00:44:40.107 --> 00:44:40.607 Spawn Rate : 600 Initialize Particle 추가 후 Lifetime : 0.5 Initialize Particle 추가 후 821 00:44:40.607 --> 00:44:41.237 Color값(0.2, 1, 8, 1), Sprite Size mode: Uniform, 1 Shape Location 추가 후 Shape Orimitive: Torus, 822 00:44:41.237 --> 00:44:41.885 LargeRadius : 150, HandleRadius : 5 Vortex Force 추가 후 Vortex Force Amount : 1000, 823 00:44:41.885 --> 00:44:42.386 Vortex Axis : (0, 0, 1) Fix Issue 버튼 클릭으로 Solve Force and Velocity 추가 Scale Sprite Size By Speed 824 00:44:42.386 --> 00:44:42.970 추가 후 min: (1, 1) max: (1, 20) Fix Issue 버튼 클릭으로 Particle State 추가 Curl Noise 추가 후 Noise Strength: 825 00:44:42.970 --> 00:44:43.495 220, Noise Frequency: 25 Add Velocity 추가 후 Velocity Mode: From Point, VelocitySpeed: -62 826 00:44:43.495 --> 00:44:44.136 Emitter Properties의 Sim Target: GPU Compute Sim Fix Bounds: Set Fixed Bounds(Emitters) 827 00:44:44.136 --> 00:44:44.986 렌더 텍스쳐 및 포털 이펙트 Place Actor > Scene Capture 2D 레벨에 배치 828 00:44:44.986 --> 00:44:45.786 Textures > Render Target 애셋 생성(RT_PortalDest) Size 512×512 829 00:44:45.786 --> 00:44:46.636 Scene Capture 2D > Texture Target에 연결 Add Effect > SingleLoopingParticle 템플릿 추가 830 00:44:46.636 --> 00:44:47.386 Emitter State의 LoopBehavior: Infinity Initialize Particle의 Sprite Size: 280 831 00:44:47.386 --> 00:44:48.236 Sprite Facing and Alignment 추가 후 Sprite Facing: (0, 0, 1) 832 00:44:48.236 --> 00:44:49.102 Emitter Properties Local Space 활성화 833 00:44:49.102 --> 00:44:49.775 포털 머티리얼 및 다이내믹 파라미터 생성 포털 머티리얼 M_PortalTex 머티리얼 생성 후 Shading Model: Unlit, Blend Mode: Masked 834 00:44:49.775 --> 00:44:50.455 Sprite Renderer의 머티리얼에 M_PortalTex 연결 RadialGradientExponential 노드 생성 후 Opacity Mask 연결 835 00:44:50.455 --> 00:44:51.059 RT_PortalDest 텍스쳐와 Emissive Color 연결 Texture Sample 생성 후 T_Perlin_Noise_M 선택 836 00:44:51.059 --> 00:44:51.657 RadialGradientExponential과 Add Step X에 연결 Step 결과를 Opacity Mask에 연결 837 00:44:51.657 --> 00:44:52.231 Time 노드 생성 Multiply 5 Rotator 생성 후 Time에 연결, Rotator 결과를 PerlinNoise 텍스쳐 샘플 UV에 연결 838 00:44:52.231 --> 00:44:52.914 Step 노드 추가 생성 후 0.55 입력 Add 된 결과를 X에 연결하고 이전 Step과 Subtract Constant3Vector 생성 후 (0.2, 1, 8) 설정 839 00:44:52.914 --> 00:44:53.568 Lerp 생성 후 Lerp A: RT_PortalDest, Lerp B: Constant3Vector, Lerp Alpha: Subtract 결과 840 00:44:53.568 --> 00:44:54.115 Time ~ Multiply까지 복사 후 이전 노드와 Multiply 두 Time은 서로 다른 수치가 되도록 변경 841 00:44:54.115 --> 00:44:54.615 다이내믹 파라미터 DynamicParameter 생성 index[0]에 RotSpeed 입력 후 Time Multiply B와 연결, 또 다른 타임과는 -0.2를 곱한 후 연결 842 00:44:54.615 --> 00:44:55.115 index[1]에 NoiseStrength 입력 후 2개의 노이즈 텍스쳐 Multiply B에 연결, G값에 0.4 입력 843 00:44:55.115 --> 00:44:55.615 index[2]에 StepVal, B값에 0.5 입력 후 Subtract A에 연결된 Step Y에 연결 index[3]에 Linewidth, A값에 0.03 입력 844 00:44:55.615 --> 00:44:56.115 Add 생성 후 StepVal와 Linewidth를 Add, 결과는 Subtract B에 연결된 Step Y에 연결 845 00:44:56.115 --> 00:44:56.615 Particle Color 생성 후 RGB 값을 Lerp B에 연결, Constant3Vector 노드는 삭제 846 00:44:56.615 --> 00:44:57.232 Dynamic Material Parameter 생성 후 설정은 RotSpeed: 5, NoiseStrength: 0.3, StepVal: 0.5, LineWidth: 0.03 847 00:44:57.232 --> 00:44:57.753 Initialize Particle의 Color 값은 (0.2, 1, 8, 0.5)로 설정 Empty 이미터의 이름을 Outer Circle로 변경 848 00:44:57.753 --> 00:44:58.337 이미터 복사 후 InnerCircle로 이름 변경 Vortex Force의 Vortex Force Amount: -223, Vortex Origin: 180 849 00:44:58.337 --> 00:44:58.823 Curl Noise의 Noise Strength: 98