animator.SetFloat() 함수 질문
animator.SetFloat("애니파라미터", value , damptime, Time.deltaTime);
PlayerMovement 2 강좌에서 나오는 설명으로는
애니메이션이 이전값에서 지금 설정하려는 값으로 부드럽게 만들어준다고 알려주셧는데요
(이전값이라는게 어떤걸 말하고 지금 설정하려는 값이라는게 어떤걸 말하는거죠? 이전 프레임값? 현재 프레임값?)
제가 이해한 바를 적으면 질문글이 더 어지러워질것 같아서 요약해서 질문드리면
각 파라미터 값의 역할을 알고 싶습니다.
Mathf.SmoothDamp(현재, 타겟, 변화량, 현재에서 타겟까지 변화하는 시간)와 달리 이해하기 어렵네요
(무슨 곡선을 그리는지 모르겟지만 대충 처음엔 빠르고 점차 수렴하는걸로 봐서는 로그곡선인가요?)
답변 1
2
이전 값이라는 것은 현재 animator.SetFloat("애니파라미터", value , damptime, Time.deltaTime);이 실행되기 직전에 "애니메이터파라미터"가 당장 가지고 있던 값을 의미합니다.
value는 현재 내가 할당하고 '싶은' 값입니다.
직전의 값을 preValue라고 가정하겠습니다. 값을 부드럽게 이어준다는 의미는, 기본적으로 value에 가까워지도록 값을 변경하되, 지연시간이 클수록 preValue와 value 사이에서 preValue에 더 가까운 값이 찍히게 한다는 의미입니다.
반대로 지연시간이 짧을수록 preValue와 value 사이에서 value에 더 가까운 값이 현재 값으로 찍힙니다. 하지만 그러면 값이 급격하게 변하게 느껴지겠죠.
- 지연시간을 늘려 값의 변화를 부드럽게 이어지도록 그래프를 그리면 그릴수록, value에 가까워지는건 맞는데, 지연시간이 짧은 경우에 비해선 value에 '덜' 가까워진다는 의미입니다.
dampTime은 이전값에서 value에 도달하는데 걸리는데 소요될것이라 가정하는 지연시간입니다. 길면 길수록 value보다는 이전값에 가까운 값이 애니메이터 파라미터에 할당될 것입니다.
Time.deltaTime이 할당된 곳은 이전에 값을 변경한 순간에서 시간이 얼마나 흘렀는지 알기 위해, 이전의 animator.SetFloat() 실행과 현재의 animator.SetFloat() 실행 사이의 시간 간격을 할당하는 곳 입니다. 우리의 예제에서는 직전의 실행과 현재 실행 사이의 시간 차가 Time.deltaTime만큼 나오므로 Time.deltaTime을 할당했습니다.
코루틴 관련 질문 있습니다.
0
68
1
강의 업데이트 질문
0
90
1
궁금한 부분이 있어서 질문 남깁니다.
0
163
1
FreeLook 카메라 Zone 설정관련
0
115
1
와..정말 감탄이 나오네요..
0
146
1
추상 클래스에 대해 이해가 잘 안되었는데
0
119
1
IsTargetOnSight가 자꾸 false로 나와요.
0
106
2
레이캐스트 에셋 임포트하는방법을 모르겠어요.
0
88
1
레이케스트 에셋을 다운받았는데 임포트 방법을 모르겠습니다.
1
141
2
혹시 어드레서블 강좌 추가계획이 있으실까요?
0
127
1
시네머신 FreeLook 관련
0
223
1
텍스트 드래그 앤 드롭
0
378
2
안녕하세요 랜덤오브젝트 생성기에서 질문있습니다.
0
244
1
유니티 에디터 버전
0
376
1
text가 아닌 TextMeshPro를 사용해도 괜찮나요?
0
1733
2
상속 관련 질문입니다.
0
350
1
TPS 캐릭터 문제점 있습니다.
0
438
1
총을 쏴서 적을 맞췄을 때 저를 추적하는 코드는 어디 나와있나요??
0
279
0
github
0
306
0
wave 를 0으로 초기화해주는 부분이없는데 왜 0부터 시작하나요?
0
315
0
TPS게임 제작 Aim애니메이션 관련 질문 드립니다.
1
372
1
점프관련해서 UI버튼클릭을 통한 전달값에 대한 질문입니다.
0
306
1
인터페이스
1
240
0
혹시 본 강의에서 Dictionary 나온 파트가 있을까요?
0
270
0





