12_전기에 따른



스파크 소스부터 시작하겠습니다.

전기의 시작과 끝이 중요합니다.


지금 우리가 주목해야 할 것은 보라색 원의 시작점과 빨간색 원의 끝점입니다.

스파크를 만드는 아이디어(바람 부분은 나중에 생각하겠습니다)

  • 기본적으로 시작점과 끝점에서 스파크를 원합니다.
  • 기본적으로 지면의 시작점은 지면의 법선 방향이 되어야 하고, 몸체에 부착된 끝점은 그 지점에서 표면의 법선 방향이 되어야 합니다.
    • 이때 법선 방향이 초기 방향이 됩니다.
    • 스파크가 정상적인 방향으로 생성되면 일정한 방향으로 튀기 때문에 다소 임의의 값이 추가됩니다.

파일 캐시에 로드된 데이터에 대한 불필요한 정보는 제거해야 합니다.


생각보다 많은 정보가 있습니다. 선을 만들 때 동적 솔버를 사용했기 때문입니다. N(정상)에 대한 정보도 있습니다. 그러나 이 값은 우리가 사용하기에는 너무 작습니다. 이는 발전 과정에서 일부 계산에 의해 N의 값이 줄어들었기 때문이다.


이 값을 사용하면 원하는 속도를 얻기 어려울 수 있으므로 N을 다시 찾아야 합니다.

클린 노드를 사용하여 이전에 작업한 파티클의 결과로 얻은 부산물을 제거합니다.


깨끗한 매개변수


이제 시작점과 끝점을 가져와야 합니다.

우리는 받은 시작/종료 지점에 대해 지상/야수로부터 정상적인 정보를 얻습니다.

작업은 하나로 연결된 각 라인에서 수행됩니다.


연결된 각 조각에 대해 연결하고 블록 끝 노드의 단일 패스를 활성화하면 연결된 선만 확인할 수 있습니다.


단일 패스 0

단일 패스 1

단일 패스 2

이제 폭발 노드를 사용하여 시작점과 끝점을 분리해 보겠습니다.


시작점은 달성하기 쉬운 0입니다. 종점은 Blast로 종점의 점 번호를 직접 입력할 수 있으나 점 수가 변경되면 이 방법을 사용하기 어렵다.

따라서 끝점을 얻으려면 정렬 노드를 사용하여 포인트 정렬을 반대로 설정하십시오. 이 경우 끝점 번호는 0으로 변경되며, Blast 노드를 사용하여 점 0을 제거하면 끝점을 얻을 수 있습니다.



이제 얻은 정보에서 일반 정보를 만들어 봅시다.

먼저 래스터를 만들고 원시 문자와 함께 일반 노드를 사용하여 일반 정보를 만듭니다.

그리고 둘 다 병합하십시오.


위 이미지의 일반 노드 정보는 시작/종료 지점에 대한 참조입니다.

transfer node 속성을 이용하여 정상적인 시작/종료 지점 정보를 전송합니다.


작은 파일 캐시에도 동일하게 적용됩니다.



작은 전기 부품도 정상적인 정보를 잘 수신합니다.


이제 파티클을 만들어야 합니다.

규칙을 정해야 합니다.

  • 큰 전기에서 나오는 입자가 좀 더 크고 폭발적으로 폭발했으면 좋겠다.
  • 작은 전기에서 생성된 입자는 상대적으로 작고 덜 강력해 보입니다.

큰 전기 부분부터 시작하겠습니다.

노멀 정보를 바탕으로 초기 속도를 생성합니다.


집에 온 기분, 속성 싸움

dop 네트워크를 만들고 입자 설정을 지정합니다.


지금 당장은 그 어떤 것도 예쁘게 보이지 않지만 적어도 올바른 방향으로 날고 있다는 것은 알 수 있습니다.


Pop force 노드를 이용하여 Gravity를 표현하고 Ground Plane을 생성하여 적용하였다.

파티클의 수명은 Pop Source의 Birth 탭에 있는 Life Expectancy / Life Variance에서 제어합니다.


(솔직히) 우리가 원했던 느낌은 아니지만 기본 설정은 다 되어 있습니다.

이제 최적화입니다.

Pop 소스의 Tap 속성으로 이동하여 초기 속도를 사용하되 상속된 속도에 추가하도록 설정하여 임의의 값을 추가할 수 있습니다.



그건 다른게 아니야 좀 너무해

초기 속도에 임의의 값을 추가하려면 Attributes 탭에서 조정할 수 있으며 생성된 입자 수는 Birth 탭에서 일정하게 설정됩니다. 출산율을 조절할 수 있습니다.

이제 생성된 파티클이 바디와 충돌할 수 있도록 조정해야 합니다.

Brute SDF가 필요합니다.

dop 네트워크에서 설정을 변경합니다.


생성된 파티클에 추적을 연결하고 추가 노드를 사용하여 선으로 만듭니다.



이제는 연기처럼 보면서 타이밍을 맞춰야 한다.

파티클이 그렇게 오래 지속되는 것을 원하지 않으면 팝 소스에서 const를 사용할 수 있습니다. 출생률에 키 애니메이션을 부여하면 일정 시간이 지나면 파티클이 생성되는 것을 방지할 수 있습니다.


이제 작은 전류에 스파크를 일으키기만 하면 됩니다.

큰 전기가 만들어내는 불꽃은 연기의 속도에 영향을 받지 않고 무게감이 있다고 설명했다.

전기의 작은 불꽃은 크기가 작기 때문에 팔을 휘두르며 발생하는 바람에 따라 움직인다고 한다.

초기 속도는 @N 값을 큰 전기와 같은 초기 속도로 설정합니다. 대신 너무 크게 적용할 수 있으니 @N에 채널의 float 값을 곱하여 조절할 수 있습니다.


충돌 조건/지면과의 충돌은 큰 전기 스파크처럼 적용되므로 이전 dop 네트워크에서 복사됩니다.


중력은 팝 파워 노드로 적용되며, 생성되는 파티클의 수와 수명이 제어됩니다.

팝 소스와 const를 복사합니다. 출생률을 크게 높이는 또 다른 버전.


파티클의 개수가 많으면 나중에 확률을 적용하여 생성되는 파티클의 양을 조정할 수 있습니다. 그러나 처음부터 입자의 수가 적으면 나중에 제어하기 어려워집니다. 그래서 저번 수업시간에 이야기가 올라왔는데, 최대한 입자를 많이 만들어주는게 좋아요.

먼저 @id를 사용하여 rand 함수로 플로트 시드를 만듭니다. 이것은 모든 입자가 고유한 ID를 가지고 있기 때문에 가능합니다.

그런 다음 조건문을 작성하면 불필요한 입자가 날아갑니다.


채널 글라이드를 사용하여 생성된 입자의 비율을 조정할 수 있습니다. (0에서 1)

그리고 같은 속도로 날아가더라도 다른 입자가 날아가길 원할 수 있으므로 시드 값을 변경할 수 있는 다른 채널 플로트를 만들고 rand 함수의 @id에 추가합니다.

이제 바람에 대해 설명하겠습니다.

이때 필요한 정보는 흡연에 사용되는 Vel 정보이다.



밀도와 온도는 blast로 빼서 나머지 정보는 vel.

일반 볼륨인 vel.x / vel.y / vel.z를 convert VDB 노드를 이용하여 VDB 정보로 변환한 후 VDB Vector Merge 노드를 이용하여 float VDB 3개를 생성하는 대신 벡터 VDB를 병합합니다.



이렇게 생성된 Vel 정보를 Partkill 시스템에서 사용하고 싶습니다.

볼륨별로 노드 팝 이류를 사용하십시오.


Advection Type은 Update Position으로 설정됩니다.

가이드를 켜면 Advect에 대한 정보를 검토할 수 있습니다.



튀는 입자가 있습니다. 그 이유는 연기 소화기에 있습니다. 시간이 지남에 따라 온도와 함께 상승하는 연기가 있기 때문에 연기 흐름의 속도로 인해 입자가 상승합니다.

이 부분은 Pop Advect by Volume의 Parameters 탭에서 Velocity Scale에 키 애니메이션을 적용하여 사용자 정의할 수 있습니다.


렌더링을 위해 오늘 편집된 파티클은 캐시로 추출됩니다.

선으로 변경하거나 나중에 해야 하기 때문에 지금 저장하지 않아도 됩니다.

따라서 캐시 데이터가 포인트 단위로 저장된다고 가정해 보겠습니다.


모든 데이터가 준비되면 다음에 렌더링을 계속할 계획입니다.

지금까지…
이제 정말 세게 때릴 때입니다.
선생님이 보여주신 과정과 트윅은 나만의 내가 직접 하면 내가 된다.


숙제.

Brute의 재료 설정을 계속하십시오!



효과를 만드는 재미를 느낄 시간입니다.
하나의 솔버로 모든 문제를 해결할 수 있는 것은 아닙니다.
뭐, 서툰 것도 모르고 따라갈 일이 아니다.
알려진 부분은 건너뜁니다.
이제부터 수업 중 이해가 되지 않는 부분이 있다면 꼼꼼히 복습하고 흐름에 맞춰 수업을 들어보세요.


언제나 즐거운데 항상 시간이 부족하네요…ㅠ

깊은 슬픔에 잠긴 밤입니다.

‘내가 후디니를 공부하는 이유는…?’