-
JoyOfVEX: DAY17-3 (2023. 3. 2)STUDY: TWA후디니 랭글러 2기 Beginner 2023. 3. 8. 20:49
VEX의 즐거움🤗: Day 17-3
quaternion의 다양한 예제를 실습하였다. 이제껏 배워온 함수들도 활용하면서 회전값에 대한 다양한 효과를 확인하였다. 사실 quaternion을 이해하기 위해 수학적 개념을 꼭 알 필요는 없다고 하셨지만 개인적으로는 좀 궁금했고, 영어를 잘하는 것도 아니고 수학을 잘하는 것도 아니다 보니 용어도 그렇고 단어가 주는 수학적 개념도 없다보니 관성적으로 따라하고만 있는 것 같아서 찾아보았다. 방향을 가진 좌표(3차원)인 vector와 물리적인 크기를 나타내는 scalar로 구성된 사원수(quaternion). 3차원 공간에서의 회전이 축-각 회전, 오일러 각 회전..... 아무튼 그래서 행렬도 필요하고, 오일러도 필요하고, 숫자도 4개가 필요하고.. 그렇다고 한다!😂😂
Day17-3 요약
각도를 활용한 직관적인 회전값 주기
- radians(chf("angle"))
- angle 파라미터에 각도값(degree)을 입력해주면 알아서 radians으로 인식한다.
랜덤하게 회전값 주기
- rand()
- noise() ⬅ 예측 가능한 패턴으로 랜덤하게 움직이는 애니메이션이 가능하다.
얼만큼 회전할것인지 조절하기 위해 회전값을 변수 @A로 만들고 축에 곱하여 quaternion의 함수값으로 활용하여 orient를 구한다.
fit(), trunc(), chramp() 등으로 효과를 꾸며줄 수 있다.
@A 결과값을 @P.y에도 적용시켜 높이값도 줄 수 있다.
euliertoquaternion(변수, 회전순서)에서 회전 순서 활용 방법
- x, y, z축의 회전순서가 중요해지는 때가 온다.
0: x➡y➡z
1: x➡z➡y
2: y➡x➡z
3: y➡z➡x
4: z➡x➡y
5: z➡y➡x
(지난시간에 이어..)
(5) orient 값을 mix해 주는 방법: slerp()
- lerp( ): 첫번째, 두번째 input의 정보를 amount(0과 1사이의 값)로 섞어준다. 즉, amount에 해당하는 값이 된다.
① ( float, float, float(amount) )
② ( vector, vector amount )
e.g. lerp(0, 10, 0.1) ➡ 1
10 : x = 1 : 0.1 ∴ x = 1
- orient에 적용할 때 같은 개념인 slerp()를 활용한다.
- slerp( vector4, vector4, float(amount) )
- orient의 영향을 받지 않고 transform 노드를 활용 할 때: ^orient로 해당 효과 제거
01attribute wrangle에서 작성한 orient의 영향받기 전후. (transform 노드의 위치는 attribute wrangle 아래에 연결되어 있다) (6) orient 값 끼리의 곱, 효과의 중첩: quaternion multiply ➡ qmultiply()
회전값을 갖는 각기 다른 변수가 각각 orient 기능을 수행한다. 즉, 중첩이 가능하다.
- 각각 x, y, z축을 기준으로 회전하는 3개의 변수를 quaternion으로 회전값을 구하고, qmultiply로 orient를 구한다.
각각의 축을 기준으로 회전하는 애니메이션의 중첩 'STUDY: TWA후디니 랭글러 2기 Beginner' 카테고리의 다른 글
JoyOfVEX: DAY18 (2023. 3. 3) (0) 2023.03.09 JoyOfVEX: DAY17-1, 2 (2023. 3. 1) (0) 2023.03.06 JoyOfVEX: DAY16 (2023. 2. 28) (0) 2023.03.01 JoyOfVEX: DAY15 (2023. 2. 27) (0) 2023.02.28 JoyOfVEX: DAY14 (2023. 2. 23) (0) 2023.02.24