Blender

[Blender] 지오메트리 노드 기초 - Scale Instance 개념

귤까망 2025. 10. 28. 21:06

오브젝트가 기준점의 거리에 따라 위치와 크기가 바뀌는 모션
* 오브젝트와 이펙터 간의 거리의 조절하는 것이 관건
뷰포트 오버레이 창의 Origins (All)을 체크하면 모든 오브젝트의 오리진이 나타남
각 오브젝트의 오리진을 정렬해둠
* 오리진 위치 바꾸는 방법
   : 위에 Options을 눌러서 오리진을 선택하면 G키를 눌렀을 때 오브젝트가 아닌 오리진의 위치가 변경됨

Empty에서 Plane Axes 꺼내기 (렌더가 되지 않도록)
> Mesh에서 큐브 꺼내고 지오메트리 노드 생성 (플레인과 같은 콜렉션에 위치)
> 큐브를 사용하지는 않을 것이므로 Input 노드 삭제
> Collection Info로 Origin 콜렉션 불러오고, Separate Children 체크
> Scale Instances 노드로 개별 크기 수정
   * Transform Geometry는 지오메트리와 연결된 오브젝트를 한 덩어리로 인식하기 때문에 Scale Instances로 사용
> 이펙터와 빗자루 간의 거리를 계산하기 위해 빗자루의 위치 정보를 갖고있는 Position 노드 사용
> 이펙터의 정보는 Object Info로 오브젝트 자체를 불러오고 Location으로 연결
> 두 좌표의 차를 이용하여 거리 계산 => Vector math의 Subtract 이용
> Separate XYZ로 X값만 출력 (Float Curve가 값을 하나만 받을 수 있으므로 가장 많이 움직이는 X축만 출력)
> 커졌다가 작아졌다가를 반복하는 모션을 만들기 위해 Float Curve 사용 
   * Float Curve의 맨 앞의 점(0,0,0)과 마지막 점(1,1,1) 수정하면 안됨
      => 수정하면 처음에 오브젝트가 사라져있는 것과 마지막에 원래 크기로 돌아오는 걸 표현할 수 없음
> 점을 추가하여 물결모양 그래프 만들어서 모션에 다양함 추가

> Set Position 노드 추가하여 위치에 모션 넣기 (Scale Instaces와 Output 사이에 배치)
> Float Curve의 그래프를 수정해서 오브젝트가 올라갔다 내려갔다하는 모션 만들기
   => 위치는 (0,0,0)이어야 원래 자리에 위치하게 되므로 마지막 점을 (0,0,0)으로 바꾸기
* 재생했을 때 위치가 부자연스러운 이유
   : 바로 Offset에 연결했기 때문
      => Scale의 경우는 X, Y, Z가 같은 값을 가져야하므로 문제X. 위치는 Z축에만 변화를 줄 것이므로 Combine XYZ 노드 사용
> Combine XYZ 노드를 추가하여 Z에 연결
> Math 노드에서 Multiply로 속도를 빠르게 해주기 (두 개의 Float Curve 왼쪽에 배치)
* Math - Multiply: 효과를 더 강하거나 더 약하게 나타날 때 사용
> Position, Object Info, Subtract, Separate XYZ는 Ctrl J로 묶어서 Math값이 끼지 않도록 따로 관리
> 이펙트에 키프레임 넣기


지오메트리 노드 기초 - Scale Instances 개념