작성
·
28
0
// Movement
GetCharacterMovement()->bOrientRotationToMovement = true;
GetCharacterMovement()->RotationRate = FRotator(0.f, 0.f, 0.f);
GetCharacterMovement()->JumpZVelocity = 700.f;
GetCharacterMovement()->AirControl = 0.35f;
GetCharacterMovement()->MaxWalkSpeed = 500.f;
GetCharacterMovement()->MinAnalogWalkSpeed = 20.f;
GetCharacterMovement()->BrakingDecelerationWalking = 2000.f;
RotationRate가 회전속도라고 이해했고 값을 바꿔봐도 변화가 안보여서 Yaw값을 0.f로 설정하고 테스트해봤는데 똑같이 회전이 됐습니다. 블루프린트 클래스도 확인해봤는데 여기서는 0으로 되어있습니다.
디버깅 해봤을 때 CharacterMovementComponent의 PhysicsRotation함수에서 위 사진처럼 RotationRate가 Yaw값으로 360이 들어가고 있었습니다.
Charater의 BeginPlay에서 로그를 찍어서 값을 확인해보니 여기서는 0으로 들어가는데 그럼 이후에 값이 다시 360으로 세팅되는 건가요? RotationRate 조정해보고 싶은데 어떻게 해야 되는지 궁금합니다.
답변 2
0
테스트해봤을 때 딱히 문제를 못 찾았습니다.
0이 되면 캐릭터는 회전하지 않아야 합니다.
아마도 생성자로직을 수정한 후 라이브 코딩으로 진행해서 변경사항이 반영이 안된 것으로 보입니다.
에디터를 끄고 다시 빌드해보시겠어요?
0
안녕하세요, 인프런 AI 인턴입니다. Ho Y님.
CharacterMovementComponent의 RotationRate와 관련하여 혼란스러워 하시는 부분에 대해 설명드리겠습니다.
RotationRate는 실제로 캐릭터가 회전할 때의 회전 속도를 결정합니다. 특히 bOrientRotationToMovement
가 true로 설정되어 있으면, 이동 방향에 따라 캐릭터가 자동으로 회전하도록 만들어줍니다. 이 경우 RotationRate의 Yaw 값이 캐릭터의 회전 속도에 중요한 역할을 하게 됩니다.
질문에서 제시하신 로그가 특정 함수에서 RotationRate가 360으로 설정되는 것을 관찰하셨다고 했는데, 이는 아마도 제작하신 코드 외부(예: 엔진 내부 코드 또는 다른 설정)에서 RotationRate가 초기화되고 있을 가능성이 있습니다. 언리얼 엔진은 내부적으로 여러 가지 시스템이 연관되어 작동하기 때문에, 아래의 방법으로 문제를 해결하는 것을 권장드립니다.
Blueprint 및 Default Settings: 블루프린트 설정 및 Default 편집 설정에서 RotationRate가 설정되어 있는지 확인합니다. 프로젝트 설정에서 CharacterMovementComponent 속성이 초기화되는지를 꼼꼼히 점검하세요.
BeginPlay 이후 설정 코드 검사: BeginPlay 이후의 설정 코드에서 원치 않는 값으로 RotationRate가 변경될 수 있으니, 관련된 코드를 확인합니다.
Debug 사용: 디버그를 사용하여 CharacterMovementComponent 초기화 및 설정 중간에 로그를 찍어, 어디에서 값이 변경되는지를 추적하시는 것도 유용할 것입니다.
한편, 두 번째 이미지에 제시된 GetDeltaRotation 함수는 실제로 RotationRate를 사용하는 부분이므로, 이 함수가 어떻게 호출되는지를 추적하는 것도 문제 해결에 중요한 단서가 될 것입니다.
관련된 주제를 다룬 유사 질문들입니다:
- C++ 코드에서 캐릭터 컴포넌트 설정 이유
- Dell Time과 관련된 질문
이들의 내용을 참조하여 직접 코드를 비교하거나 점검하는 것이 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
해결됐습니다. SetCharacterControlData에서 세팅하고 있었는데 코드를 잘 확인하지 않았던 것 같습니다. 감사합니다!