일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 종속변수
- 독립변수
- 도트
- setItem
- wsl
- 픽셀
- classList
- 코딩
- 연습
- euler
- 자주 사용하는 Quaternion 함수
- PYTHON
- javascript
- 웹스크래핑
- Event
- Unity
- 회전
- jQuery
- 도린이
- 탑다운
- Quaternion
- className
- 2D
- click
- getItem
- vsCode
- intervals
- topdown
- addEventListener
- Lerp
Archives
- Today
- Total
쫑가 과정
두 각(Quaternion) 사이를 부드럽게 이어준다 / Quaternion.Slerp 본문
Quaternion.Slerp
https://docs.unity3d.com/ScriptReference/Quaternion.Slerp.html
public static Quaternion Slerp(Quaternion a, Quaternion b, float t);
a = 시작 값(value)으로, t = 0일 때 반환.
b= 종료 값(value)으로, t = 1일 때 반환.
t = 보간 비율 (a와 b 값 사이를 채우는 비율) @ [0,1] 범위 고정.
비율 t 에 의해 쿼터니언 a와 b 사이를 구형으로 보간(채운다)한다.
쿼터니언 a와 b 사이에 구형(완만한 곡선)으로 보간 되는 쿼터니언으로 반환.
(t가 0.5라면 a와 b 사이의 중앙 쿼터니언을 반환한다)
첫 번째 쿼터니언 a에서 두 번째 쿼터니언 b 사이를 부드럽게 보관하는 회전을 생성.
매개변수의 값이 0에 가까우면 출력이 a에 가깝고 1에 가까우면 b에 가깝습니다.
예) b 값을 따라 부드럽게 회전하는 a
void Update()
{
transform.rotation = Quaternion.Slerp(from.transform.rotation, to.transform.rotation, 0.01f);
}
from은 캡슐 오브젝트 - 초기 지정 rotation은 (0, 90, 90)
to는 사각 오브젝트 - 초기 지정 rotation은 (0, 0, 0)
from의 회전이 to의 회전을 0.01f 씩 보간하며 따라간다.
void Update()
{
transform.rotation = Quaternion.Slerp(from.transform.rotation, to.transform.rotation, timeCount);
timeCount = timeCount + Time.deltaTime;);
}
예 2) 마우스 방향으로 부드럽게 회전하기.
void Update()
{
Vector3 mousePosition = Input.mousePosition;
Vector3 playerPosition = transform.position;
mousePosition.z = playerPosition.y + playerCamera.transform.position.y;
Vector3 target = playerCamera.ScreenToWorldPoint(mousePosition);
Vector3 dir = target - playerPosition;
Quaternion rot = Quaternion.LookRotation(dir);
transform.rotation = Quaternion.Slerp(transform.rotation, rot, 0.2f);
}
@ Quaternion.Lerp
차이점은 Lerp는 선형 보간이라 직선으로 표현된다. 더 단순.
https://docs.unity3d.com/ScriptReference/Quaternion.Lerp.html
https://tiborstanko.sk/lerp-vs-slerp.html
'Unity > 이론' 카테고리의 다른 글
축방향을 원하는 축방향으로 회전하기 / Quaternion.FromToRotation (0) | 2022.01.16 |
---|---|
(Euler) 각을 (Quaternion) 값으로 바꾸기 / Quaternion.Euler (0) | 2022.01.13 |
두 회전 사이의 각 구하기 / Quaternion.Angle (0) | 2022.01.12 |
타겟 방향 바라보기 함수 / Quaternion.LookRotation (0) | 2022.01.12 |
벡터 연산 이해하기 (0) | 2022.01.07 |
유니티3D 회전 이해 (0) | 2022.01.06 |
객체 지향 프로그래밍의 캡슐화 (0) | 2021.12.28 |
객체 지향 프로그래밍의 상속과 다형성 (0) | 2021.12.28 |
Comments