1일1깡의(짧은 Houdini tip) - Velocity velocity는 후디니사용자가 가장 많이 신경쓰는 attribute 입니다. 왜냐하면 원하는 움직임을 표현하기위해서는 velocity를 잘 다루어야 합니다. Velocity란 "어떠한 물체의 위치 변화를 뜻하는 변위를 변화가 일어난 시간 간격으로 나눈 값이다. " -위키백과 이걸 후디니 vex 로 표현해볼까요?. velocity는 vex에서 @v 이렇게 표현 됩니다. global variable(함수)이기 때문에 후디니에서 @v라고 쓰면 알아듣습니다. 방향(direction) , 크기(magnitude) 를 가지는 백터타입 입니다. 심플공식 velocity = ( P2 - P1 ) / Time // wangle---------------------------------------------- vector P1 = set(0,0,0); vector P2 = set(2,2,0); v @v = (P2 - P1) / @TimeInc; // -------------------------------------------------------- 이 공식에서 velocity의 힘(magnitude)만들 추출하고 싶다면 f@magnitude = length(P2-P1); 혹은 방향(direction)을 따로 원한다면 v@direction = normalize(P2-P1); 위의 velocity의 값은 방향 * 크기로 표현됩니다. 이것을 따로 분리해서 방향만을 바꾸고자 하거나 혹은 힘만을 바꿀수 있습니다. @v = @direction * @magnitude; 이외에도 Velocity를 다루는 여러 공식들이 있습니다. 궁금한게 있으세요~~ 이곳에서 함께 나눌수 있어요. 두밥 1:1 카톡상담방 두밥 그룹채팅방
Vector Addition 개요 및 목적 이번 챕터에서는 Vector구성요소, 방향(direction)과 길이(length) 혹은 크기magnitude)을 컨트롤 하는 방법으로 Vector Addition과 Subtract을 소개합니다. 오브젝트나 포인트 사이의 거리나 넓이를 계산하거나 벨로서티의 방향을 같은 힘의 크기로 바꾸거나 변형을 주어야 할때 유용할 것입니다. What is Vector? Vector는 방향(direction)과 길이(length or Magnitude) 를 가지고 있습니다. Vector = Direction * Magnitude 로 분리할수 있습니다. 이것은 후디니에서 Velocity를 컨트롤 할때 좋은 힌트가 됩니다. 방향설정후힘을 자신이 원하는 값으로 언제든지 변화를 줄수 있습니다. Velocity(속도) vector를 Houdini wrangle node 에서 다음과 같이 정의 할 수 있을것입니다. vector Direction = normalize(@v); float Magnitude = length(@v); @v = Direction * Magnitude; 이와 같이 후디니의 펑션을 이용하면 간단하게 결과를 얻을수 있다. 펑션이 담고 있는 수학적인 내용은 다음과 같다. Vector의 방향을 구하는 방법(Normalize) Normalize는 벡터의 길이는 1의 단위로 만드는 것입니다. 이렇게 함으로서 수학적으로 계산이 간단해지고 데이터 활용에 많은 가능성이 열리게 됩니다. Houdini Wrangle vector Direction = normalize(@v); 길이를 구하는 공식(Magnitude, length formula) 길이를 구하는 방법으로 피타고라스 정리를 사용해보겠습니다. * 피타고라스 정리 : 직각 삼각형의 두 직각변 를 각각 한 변으로 하는 정사각형 면적의 합은 빗변를 한 변으로 하는 정사각형의 면적과 같다 c 2 = a 2 ...
vex를 사용함에 있어서 반복해서 사용하는 함수 라이브러리를 만들어서 사용하면 유용할때가 있습니다. 나만의 랜덤 함수를 만들어보겠습니다. myRandom 이라는 함수고 이것은 후디니에 있는 함수가 아닙니다. #include 에서 나만의 myRandom.h 파일을 불러왔습니다. myRandom.h 파일의 구성은 이렇습니다. float myRandom(float min;float max;int pt) { return rand(pt)*(max-min)+min; } myRandom(minvalue, maxvalue, int(정수)) 로 이루어져있는 함수입니다. 결과 값은 1과 4 사이의 값을 return 합니다. 노트패드 하나를 열어서 myRandom.h 라고 파일을 만들어준후에 위의 내용을 적어주고 저장합니다. 그리고 wrangle 노드에서 #include "경로/myRandom.h" 이라고 하면 자신이 만든 라이브러리 파일을 불러올수 있습니다. 쉽죠?. ~ 궁금한게 있으세요~~? 이곳에서 함께 나눌수 있어요. 두밥 1:1 카톡상담방 두밥 그룹채팅방
댓글
댓글 쓰기