본문 바로가기

Houdini/basic

노드(node)의 개념

후디니를 공부할 때

프로그래밍은 몰라도 된다고 하는 유튜버 선생님들도 있었다.

하지만 프로그래밍을 이미 알고 있는

나의 입장(컴퓨터공학 전공)에서는 조금 반대다.

 

 

공부란 보통 '암기'와 '이해'로 나뉜다.

'암기'와 '이해'는 다르다.

나의 경우 암기과목은 대부분 응용이 힘들었다.

하지만 후디니 '아티스트'란 결국 응용의 영역이다.

 

 

 

그런 면에서

나는 코딩을 모르면 후디니를

암기하긴 쉬울 수 있어도

이해하기는 어려울 수 있다고 생각한다.

철저히 내 개인적인 의견일 뿐이지만.

 

 


 

 

그래서 노드를 설명하기 전에 코딩의 기본 구조를 간단히 짚겠다.

 

a = b + 1
"b라는 변수에 들어있던 값에 정수 1을 더해서
다시 a라는 변수의 내부에 덮어써라"

변수명은 보통 원하는 무엇이든 쓸 수 있다.

변수명에 제약이 있긴 하지만, 그건 다음에 별도로 설명한다.

 

 

 

 

 

 

 

만약

a1, a2, a3, a4 ... a100라는 변수의 값에 각각 1을 더해서

b1, b2, b3, b4 ... b100라는 변수에 각각 넣고 싶다면?

 

위 코드대로 쓴다면 코드가 100줄 이상 나올 거다.

그래서 코딩에는 함수(function)라는 개념이 있다.

 

 

def add(b):
    a = b + 1
    return a
"add라는 함수에
인수로 b를 받아서
b + 1을 a에 넣은 다음
a를 토해내라"
위 코드는 python에서 더하기를
(굳이굳이) 함수로 만들어본 거다.

깊게 들어가진 않겠지만
코딩에서는 저런 식으로 반복할 작업을
함수의 형태로 만들어 둔다.
그리고 저 함수 하나만 반복문 안에 넣으면 작업이 끝난다.

 

여기서 인수인 b는 input 값이다.

그리고 return되는 a의 값은 output이 된다.

 

 

 

 

 

 

 

 

노드는 이런 input과 output의 구조를 갖는다.

둘 다 1개, 혹은 그 이상일 수 있다.

 

 

이는 프로그래밍에서의 함수와 결이 같다.

 

정리하자면,

'노드'라는 건 '함수' 기능을 한다.

 

노드는 인풋과 아웃풋이 있고

그 안에서 뭔가 정해진 기능을 수행한다.

 

다만 그 함수들은 유저가 만든 게 아니라

후디니 제작사(sidefx)에서 만든 거다.

나도 고급 후디니 유저가 되면

직접 함수를 정의할 수 있을지도.

 

 

 


 

 

 

 

 

사실 후디니도, 여러 3D 툴들도,

저런 함수를 기반으로 하는 작업이 꽤 많다.

가시적으로 보이는 모든 작업들이 사실은

코딩의 개념이 내포되어 있다.

 

저런 식으로

100줄의 코드를

10줄에 해결할 수 있기 때문이다.

 

 

 

 

코드가 복잡하다고 생각하는 사람들이 많지만,
결국 코드는 복잡한 걸 쉽게 만들기 위한 작업이다.