본문 바로가기

Houdini/Houdini1_Starter

STARTER05_Attribute 관련 Node

목차

  • 들어가면서...
  • Attribute 목록
  • 일기

모든 랭글러를 위하여!

※ Group과 Attribute의 가장 큰 차이점

  • Group : -이다 / -이 아니다 와 같이 0 / 1로 표현되는 이분법적으로 구분 짓는 역할을 한다.
    • ex) A라는 프리미티브가 B라는 그룹에 속한다. / 속하지 않는다.
  • Attribute : 0 / 1 같은 이분법적인 것이 아닌, 일단 존재한다면 어떠한 값이든 가질 수 있다. Attribute에 원하는 타입을 정해주고 값을 입력하면 된다.

 오늘의 공부는 모르면 문제가 생길 수 있는 노드 위주로 알아보자.


Attribute Node 목록

Attribute Create Node

  • 우리가 Attribute wangler node에서 어트리뷰트를 처음 생성할 때 고려하던 것들이 다 들어있다.

  • Name : Attribute 이름
  • Number of Attributes : 몇개의 어트리뷰트를 생성할 것인지 기입.
  • Type : Attribute의 타입을 지정할 수 있다.

  • class : Attribute wangle의 run over를 선택해 준 것처럼 class를 지정할 수 있다.

Attribute wangle의 Run Over

  • value : 모든 포인트에 대해 주고싶은 값을 입력할 수 있다. (각각 x, y, z, w를 뜻한다.)

위 사진과 아래 사진은 결과적으로 같다.

  • Default : 임의의 값을 입력하지 않은 상태에서 어트리뷰트가 생성되었을 때의 초기값.

 

 

Attribute Delete Node

  • 어떤 어트리뷰트를 삭제하고 싶은지 기입해주면 된다.

 

Attribute Rename

  • 어트리뷰트의 이름을 변경할 수 있다.

  • Number of Renames : 몇개의 어트리뷰트 이름을 바꿀 것인지 기입
  • 바꾸기를 원하는 어트리뷰트 이름을 적고, 새로 바꿀 어트리뷰트 이름을 적는다.

 

※ 랜덤과 노이즈의 차이

  • 랜덤
    • 모든 순간 모든 항목에 대해 (값은 바뀔 수 있지만, 일반적으로) 0~1 사이의 임의의 값을 반환해 준다.
    • 각각의 경우의 수가 서로에게 영향을 미치지 않는 독립시행이다.
    • 흐름이 존재하지 않는다.★
  • 노이즈
    • 일종의 패턴이다.
    • 노이즈의 활용 목적이 약간의 무작위성을 이용한 랜덤한 느낌일 수는 있지만 엄밀히 말해서 완벽한 무작위는 아니다.
    • 패턴이기에 사이즈를 조절할 수 있다.
      • 패턴의 사이즈를 확대하면 확대할수록 부드럽게 연결되어 있고, 사이즈를 축소하면 짜글짜글하니 랜덤한 느낌이 난다.

상황 1) 수류탄이 터지는 파편의 파편의 방향은 노이즈보다는 랜덤으로 설정하는 것이 좋을 것이다.(무작위성 때문)

상황 2) 폭발로 인한 연기가 발생할 때 공기의 흐름장을 만들기 위해 벡터필드를 생성할 때는 노이즈로 설정하는 것이 좋을 것이다.(공기는 흐름이 있으므로)

 

Attribute Noise Node

Attribute Noise Parameter(ver 18.5 기준)

  • Location Attribute
    • 패턴에 어떠한 어트리뷰트 정보를 입력으로 줄 것인지 기입
    • 패턴에 입력하기 위해 불러올 정보
  • Attributes(Attribute Names)
    • 정보가 패턴에 의해 가공된 결과를 저장해 줄 어트리뷰트

위 사진은 Attribute VOP으로 표현한다면 다음과 같다.

만일 아래 사진과 같이 Attribute Noise에 P의 정보를 받아서 패턴에 입력해 준 뒤, 다시 그 내용을 P에 저장한다면?

이것을 VOP으로 표현한다면...

이게 아니다
코 푼 휴지
이것이 맞다.

원래의 P의 정보에 노이즈 패턴에 의해 가공된 정보를 더해줘야 한다.

  • Mode(Operation)
    • 기존에 입력받은 데이터와 노이즈 패턴에 의해 가공된 데이터 사이에 적용시켜 줄 연산목록
    • Input Attribute와 Output Attribute가 다르다면 크게 상관이 없으나, 만약 같다면(위의 경우와 같이) Mode/Operation을 잘 따져봐야 한다.

Mode(Operation) Multiply의 결과물, Add와는 사뭇 다르다.

  • Animated(Animation Noise)
    • 체크해 줄 경우, 특별한 세팅 없이 노이즈에 움직임을 추가할 수 있다.
  • Center noise(Noise Vaule - Range Values항목)
    • 노이즈가 반환해 주는 값이 0 ~ 1 사이의 값이기 때문에 전반적으로 0.5라는 값을 가지게 된다.
      • x, y, z 축으로 평균적으로 0.5만큼 이동을 한다는 의미이다.
    • 우리는 노이즈의 결과로 물체자체가 옮겨지기를 원한 것은 아니다. 
    • 그럴 때 사용해 줄 수 있다. 평균값이 0으로 존재할 수 있게 해 준다.(-0.5 ~ 0.5)
    • Zero Centered와는 결과가 또 다르다.(Min/Max에 -0.5 ~ 0.5를 기입해 주는 것이 Center Noise와 같다)

  • 패턴에 대한 정의는 아래쪽에서 내려주게 된다.

 

Attribute Randomize

  • 모든 포인트에 대해서(독립시행) 랜덤한 값을 배정
  • Global Scale : 0 ~ 1 사이의 랜덤한 결과에 값을 곱해주게 된다.
  • Demention : 랜덤한 값에 대한 차원수
    • 1 : float(x)
    • 2 : vector2(x, y)
    • 3 : vector3(x, y, z)
    • 4 : vector4(x, y, z, w)

 

Attribute Paint Node

Attribute Paint Parameter

  • 효과의 영역을 칠해주는 것
  • Attribute Paint 노드의 display render flag를 활성화한 상태에서 씬뷰로 가서 enter를 누르면 painting 모드로 변경할 수 있다.

효과 영역을 그릴 수 있다.
Paint mask를 적용한 결과물

  • 페인팅을 해주면 Mask라는 어트리뷰트가 생성된다.
    • 0(보라색) ~ 1(빨간색)
  • Attribute 폴더 안에서 여러 개의 마스크를 만들 수 있다.

Attribute Blur Node

  • Attribute P에 대해서 블러효과를 줄 것이다.
  • Attribute
    • 블러효과를 적용할 어트리뷰트 항목
  • Blurring Iterations
    • 값이 커지면 블러효과가 커진다.

Blurring Iteration 1
Blurring Iteration 30

Attribute Blur 사용 시 주의점!

우리가 블러를 먹인 대상 Attribute가 무엇인지 정확히 인지하는 것이 중요하다.

정확한 어트리뷰트에 블러를 먹이기 위해서는 정확한 위치에 노드가 달려있어야 한다.

위와 같은 순서의 노드가 있을 때, 최하단의 블러 노드에서 fx에 블러를 준다고 P에 영향을 주지는 않는다. 이미 wrangle에서 P에 fx의 노이즈 데이터가 적용되었기 때문이다. fx에 블러를 주고 P에 적용을 하기 원한다면, 노드의 순서는 바뀌어야 할 것이다.

P에 적용 바로 전에 달아주던지
fx 데이터가 나오고 바로 블러를 먹이던지

Attribute Transfer Node

  • 거리를 기준으로 레퍼런스 오브젝트에서 소스 오브젝트로 어트리뷰트를 옮겨줄 수 있다.
    • Group Transfer Node와 차이가 있다면, 어떠한 숫자이던지 불러올 수 있다는 것이다.
  • 색을 옮길 때는 좀 신경 써줘야 할 부분이 있다.
    • Blend Width - 이식되는 정보에 대해 블러를 추가할 수 있다.(블렌딩이 가능하다.)

  • 당장에 Blend Width가 먹지 않는 이유 - Grid의 색상이 (1, 1, 1)이기 때문이다.

Grid 컬러를 (1, 0, 0)으로 바꾼 뒤에는 Blend가 먹는것을 볼 수 있다.

Attribute Transfer를 활용하면 헬기 바람에 부분적으로 더 크게 일렁이는 바닥 등의 효과도 만들어볼 수 있다.

 

Attribute Promote Node

  • 원본이 가지고 있는 어트리뷰트의 내용을 포인트에서 프리미티브로, 또는 프리미티브에서 포인트로 이동시켜 주는 노드이다.

모든 포인트에 대해 작업해준 원본
원본
Point to Primitive

  • Promotion Method : 포인트와 프리미티브는 수량이 다르다. 이런 상황에서 포인트의 정보가 프리미티브로 넘어간다면, 어떤 포인트의 정보가 어떻게 넘어갈 것인지 정해주는 항목이다.

Promotion Method Minimum
Promotion Method Maximum
Promotion Method Average

Attribute Copy Node

  • Group Copy와 굉장히 닮았다.
  • 이왕이면 두 오브젝트의 토폴로지가 같아야 정확한 카피가 가능하다.

Attribute Copy Parameter

  • Attribute Name
    • 내가 레퍼런스에서 원본으로 카피해서 불러오기 원하는 어트리뷰트 이름
  • 가급적 이름을 정확히 기입하는 습관을 기르자.

 후디니를 켜서 탭을 눌러보면 한숨이 가장 먼저 나왔었다. 강의 중에 선생님이 말씀하셨듯이 이걸 언제 다... 뭐가 뭔지도 잘 모르겠고... 했지만, 오늘 노드에 대해 훑어보는 시간을 가지면서 생각보다 한숨이 많이 들어가는 것을 느꼈다.

 노드에 대해 배우게 되면서 이것저것에 대한 활용 또한 생각해 보는 것이 즐겁다. 얼른 이 즐거움을 가지고 머리를 쥐어짜면서 작업하고 싶다는 생각이 드는 밤이다.

 

 선생님이 설명해 주신 후디니와 내가 사용 중인 후디니의 버전이 다르기 때문인가, 노드가 약간 다른 부분이 보인다. 그래도 예전 같았으면 아몰라 하고 넘어갔을 부분인데, 하나하나 설명해 주시는 것을 따라 해보면서 노드의 파라미터가 어떤 작용을 하는지 알게 되어서 어찌어찌 활용할 수 있을 듯하다.

 

 그리고, 선생님이 항상 강조하는 그것, 건강은 꼭 잘 챙기자. 예전처럼 아작내지 말고, 열심히 운동도 하자.