- 53일차 -
'Nuke'를 이용한 합성수업과 같이 'FX'수업이 시작되었어요.
'FX'는 크게 'CFX'와 'VFX'로 나눌 수 있는데 'CFX'는 마야와 마블러스디자이너와 마야의 'Xgen'플러그인을 사용해 옷이나 머리카락을 만들고 충돌을 사용할 수 있어요.
'VFX'는 마야와 'Bifrost'플러그인과 'Realflow'를 사용하며 물이나 불이나 연기와같은 비쥬얼적인 효과를 만들 수 있어요.
저는 모델러를 희망하기에 'CFX'만 배우기로했습니다.
-
구체와 플랜을 만들고 플랜은 면의 갯수를 늘린채 위에처럼 배치를 해줄게요.
히스토리를 지우고 'Freeze'도 했습니다.
플랜을 선택하고 'F5 - nCloth - Create nCloth'를 적용해줄게요.
이상태로 재생을 하면 플랜이 중력의 효과를받아 밑으로 떨어지는걸 확인할 수 있어요.
아웃라이너에 'nucleus'라는 항목이 생겼는데 속성창에 들어가면 'Gravity and Wind'항목을 확인할 수 있어요.
'Gravity'는 중력인데 9.8이 기본값이며 특수한 상황이 아니면 수치를 건드리지 않아요.
'Gravity Direction'은 중력이 작용하는 방향이며 'Y축'이 '-1'인데 수치를 변경하면 중력의 방향을 바꿀 수 있어요.
'Air Density'는 공기의 밀도이며 수치가 낮으면 공기중의 입자의 갯수가 적어지며 수치가 높으면 갯수가 많아져요.
'Wind Speed'는 바람의 속력이며 수치값이 높아지면 바람이 강해져 물체의 외형이 바뀔 수 있어요.
'Wind Direction'은 바람이 부는 방향을 설정할 수 있어요.
'Wind Noise'는 바람이 불때 불규칙성과 무작위성을 부여할 수 있어요.
'Ground Plane'에서 'Use Plane'에 체크를 하면 임시로 바닥을 만들 수 있으며 플랜이 무한정 내려가지 않고 바닥에 안착해요.
바닥에 생긴 'N'이라 적힌 아이콘으로 바닥의 위치를 수정할 수 있어요.
'Plane Bounce'는 탄성의 수치가 올라가며 물체가 통통 튀게돼요.
'Plane Friciton'은 저항이며 물체가 곡면을 굴러가는 상황일 때 바닥을 유리나 시멘트나 흙처럼 마찰력을 만들 수 있어요.
'Plane Stickniness'는 점성이며 수치가 올라가면 물체가 표면에 탁! 붙게돼요.
이 세가지 옵션은 계속 보게될 옵션이며 임시적으로 바닥을 만드는 기능들이기에 바닥에 붙어있을 때 활용할 수 있어요.
구체를 선택하고 'F5 - nCloth - Creater Passive Collider'를 적용한 뒤 다시 재생을 해볼게요.
아까와는 달리 플랜이 구체를 뚫고가지 못하고 구체모양대로 자연스럽게 접히는걸 확인할 수 있어요.
재생속도가 'Real-time'으로 설정이 되어져있는데 'Real-time'은 현실의 시간을 기반으로 재생되는 속도예요.
'Real-time'을 사용하면 문제가 있는데 플랜이 아래로 내려오면서 다른 물체와 부딪히고 모양이 변경되는 계산을 하기위한 시간이 있는데 그 시간을 무시하고 현재의 시간에 맞추게되며 계산이 불안정하게돼요.
'FX'를 사용할 땐 속도를 'Free'나 'Max Real-time'을 사용하면 돼요.
'Free'는 한 프레임이 계산이 되어야 다음 프레임으로 넘어가며
'Max Real-time'은 'Free'와 'Real-time'을 반반 섞어놓은듯한 기능이에요.
1프레임을 계산할 때 정해진 시간이 있는데 그 시간이 넘어가면 다음프레임으로 넘어가서 계산을 하는 설정이에요.
'Free'를 사용했을 때 정확도가 가장 높으니 'Free'를 사용할게요.
플랜의 면의 갯수를 늘린 이유는 면이 많았을때와 적었을 때의 결과물의 차이가 커요.
점선면이 접혀가며 모양이 잡히는데 갯수가 적으니 모양이 빳빳해질 수 있어요.
플랜에는 'nCloth'를, 구체에는 'Passive Collider'를 적용해서 작업을 했는데 'nCloth'는 자동으로 움직이는 방식이며 'Passive Collider'는 수동으로 움직이는 방식이에요.
'nCloth'끼리도 충돌해서 모양을 만들 수 있고 'Passive Collider'끼리도 충돌해서 모양을 만들 수 있어요.
예를들어 침대가 있고 캐릭터가 누워있는데 이불이 놓여져있을 때, 아랫쪽에 놓인 침대는 움직이지 않게 고정을 해줘야하고 위에있는 이불은 움직이도록 작업할 때 캐릭터의 움직임에 따라서 움직여야 하기에 고정이 되어야하는 침대에는 'Passive Collider'를 적용하고 자유롭게 변경이 되어야하는 오브젝트는 'nCloth'를 적용해줘요.
아웃라이너의 'nCloth'의 속성창에 'Collisions'라는 항목을 확인할 수 있어요.
상단의 'Collide'는 다른 물체와 충돌하지를 설정하며 'Self Collide'는 스스로도 충돌을 할 지 설정할 수 있어요.
실제로 플랜과 구체가 밀착되면서 계산이 되지는 않아요.
플랜을 잘라보면 위처럼 구체와의 사이가 먼것을 확인할 수 있어요.
'Solver Display'를 'Collision Thickness'로 변경하면
해당 오브젝트가 노랗게 변하며 두께가 생기는데 이 두께가 충돌을 하는 범위에요.
면의 갯수가 많을수록 부드러운 움직임을 만들 수 있는데 만들어져있는 모든 면을 분석하고 계산하려면 시간이 오래걸리게돼요. 작업시간을 효율적으로 사용하기 위해서 면 자체를 계산하는 것이 아닌 비교적 단순화한 데이터를 가지고 작업을 진행해요.
면의 갯수가 수천, 수만개로 이뤄진 오브젝트여도 수십개의 면으로 작업을 하는것처럼 비교적 단순화해서 모양이 잡힐 수 있도록 작업을 진행하게돼요.
'Thinkness'의 수치로 충돌범위를 설정할 수 있어요.
상단의 'Flag'라는 항목들이 있는데 작업을 할 때 기준을 어떻게 설정할지 충돌의 지표가 되는 옵션이에요.
'Collision Flag'는 다른 물체와 부딪힐때의 기준이며 'Self'는 스스로 부딪힐때의 기준이에요.
여기서도 'Bounce', 'Friction', 'Stickiness'를 통해 탄성, 저항, 점성값을 수정할 수 있어요.
'Dynamic Properties'는 얼마나 더 구부러질지, 부드러워질지, 뻣뻣하게 만들지 등 다양한 수치값들을 조절할 수 있어요.
이 많은 수치값들을 하나씩 알고있다면 좋지만 그러기에 쉽지는 않을거예요.
그럴땐 상단의 'Presets'으로 기존에 만들어진 설정들을 사용할 수 있어요.
각 항목을 선택하고 'Replace'를 적용하면 설정값이 자동으로 바뀌는데 이 때 처음과 어떤 설정들이 바뀌었는지들을 확인하면 더 수월하게 작업할 수 있어요.
이번엔 새로운 기능에 대해 알아보기위해 간단하게 깃발을 제작했어요.
이번에도 'Passive Collider'와 'nCloth'를 기둥과 깃발에 적용하고 재생을 하면 깃발이 바닥으로 떨어지는걸 확인할 수 있어요.
고정을 하고싶은 점선면을 임의로 선택하고
'F5 - nConstraint - Transform Constraint'를 적용하면 아웃라이너에 'dynamicConstraint'가 생성되며 점들이 고정돼요.
재생을 해보면 'Transform Constrain'를 적용한 곳이 고정되며
바람을 설정해주면 바람에 휘날리는 깃발을 표현할 수 있어요.
기둥이 넘어지는 애니메이션을 만들면 기둥이 넘어지면서도 깃발과 충돌을 하는걸 확인할 수 있어요.
하지만 'Transform Constrain'를 적용했기때문에 깃발이 기둥을 따라오지않고 허공에 떠있는걸 확인할 수 있어요.
그럴땐 'dynamicConstraint'와 기둥을 순서대로 선택하고 리깅때 사용한 'K-P'를 적용시켜주면 됩니다.
재생을 할때마다 결과값이 조금씩 달라지게되는데 그렇게 하고싶지 않다면 플랜을 선택하고 'F5 - nCache - Creater New Cache - nObject옵션'에서
'Cache directory'로 저장경로를 설정하고 'Cache name'으로 파일명을 선택해주고 'File distribution'은 'One file'로 설정해주고 'Apply'를 해줄게요.
'One file'로 설정하는 이유는 어떻게 저장을 하겠냐는 설정인데 'One file per frame'은 각 프레임 한장한장을 모두 파일로 저장하겠다는 뜻인데 수정을 하기엔 용의하지만 시간과 용량적인 측면을 위해 압축을 할 수 있는 'One file'을 사용할게요.
애니메이션이 자동으로 재생이 된 후부터는 재생속도가 빨라지는데 저장한 파일이 있는한 지금의 정보가 남아있게되고 매번 새로운 계산을 할 필요가없기에 애니메이션작업이 빨라진거예요.
-
오늘은 'FX'첫수업이 있었어요.
모델러가 되기위해서 옷과 머리카락을 만드는 방법을 배우기위해서 수업을 받기로했는데
오늘배운 'nCloth'기능도 사용할 수 있는 방법이 무궁무진할 것 같아 잘 숙지하고 있어야할 것 같아요.
-
'Maya' 카테고리의 다른 글
55일차 - nCloth의 또 다른 기능들 (0) | 2022.01.14 |
---|---|
54일차 - Nuke (0) | 2022.01.13 |
52일차 - Nuke (0) | 2022.01.12 |
51일차 - 얼굴움직임 애니메이션 (0) | 2021.12.02 |
50일차 - 리깅의 노드작업 마무리 (0) | 2021.12.01 |