- MEL : C++ 베이스 마야 인베디드
- Python
- Pymel : 파이썬 스타일인데 멜이랑 혼용해서 이렇게 세 가지가 존재한다
: expression은 mel이랑 python 두 개만 갖고 된다, 한 속성을 저 수식으로 제어함
어떤 오브젝트의 어떤 어트리뷰트
Object.Attribute = func();
이게 기본 형식!
이 수식의 결과를 이 어트리뷰트에 넣음
수치를 고정값으로 줄 수도 있고 변하는 값을 줄 수도 있고
edit 누르고 익스프레션스로 들어가
익스프레션스 되면 보라색이 됨
pSphere1.translateY = sin(frame/5)*3;
-> 구가 sin그래프 형태로 움직임
- PO (per object) : 파티클 전체 트랜스폼을 뜻함
- PP (per particle) : 파티클 낱개 하나하나당
PP로 쓰고 싶으면 꺼내써
여기서 오른쪽 클릭해서 크리에이션 익스프레션
파티클을 각각 랜덤하게 다르게 만들어지게 하고 싶어서
랜덤값 생성 -> rand(a) : 0~a까지
벡터는 <<rand(a1, b1), rand(a2, b2), rand(a3, b3)>> 로 묶음
x,y,z 차원 다 값을 다르게 하려면
얘는 크리에이션에
nParticleShape1.position = sphrand(10);
return은 벡터 x,y,z 랜덤하게 해주는거
y = ax + c
y = c : 크리에이션 익스프레션, 시작한 값
y = ax : 런타임 변하는 값, 프레임이 변하면서 어떻게 변할 것인가
다이나믹 우선할거냐 이걸 우선할거냐 선택해라 (외부에서 힘을 줘서 모션준거랑 파티클에서 한거랑)
보통 스크립트를 우선해
얘는 런타임에
nParticleShape1.position += <<0, 1, 0>>;
y가 다 1씩 증가함
nParticleShape1.position += <<0, nParticleShape1.particledId/300+0.5, 0>>;
(Id만 써도 됨)
id별로 다름
전에껀 파티클만 만들어서 한 거고
이번엔 에미터에서
nParticleShape1.position = <<age*2, sin(age*2)*3+3, 0>>;
애미터는 태어나는 게 다르잖아, 파티클은 똑같은데 그래서 age를 쓴다
애미터가 크리에이션이니까 별도로 쓸 필요가 없다
'Maya > VFX' 카테고리의 다른 글
VFX03, Air/Vortex/Drag 필드 설명 (0) | 2019.10.20 |
---|---|
VFX 03, Uniform/Turbluence 필드 (+필드 영향주는지 체크하는 방법) (0) | 2019.10.20 |
VFX 02, 독특한 애미션의 기능중 하나 (0) | 2019.09.29 |
VFX 02, 파티클 속성 이어서 (소프트웨어 타입) (0) | 2019.09.29 |
VFX 02, 파티클 속성 이어서 (하드웨어 타입) (0) | 2019.09.29 |