해결된 질문
작성
·
33
·
수정됨
0
안녕하세요 강사님! 언리얼이 쉽지 않네요, 본론으로 질문하겠습니다.
현재 상황
조준 상태일 때 상체에 에임오프셋을 적용시켰는데 비정상적으로 동작하는 현상
1번 사진은 에임오프셋이고 Pitch만 받아서 사용함, 2번 사진은 인게임에서 해당 에임오프셋을 적용한 상태로 Pitch값은 0으로 둘다 동일함, 하지만 인게임에서는 손 위치가 밑에 떨어져 있음
구현하고자 하는 기능
조준 상태일 때, basePose에서 상체에 에임오프셋을 적용하여 상하로 움직이는 상태로 만들어주고 싶음
코드 설명 및 구현한 방법
BasePose는 IdleWalkRun의 블랜드스페이스로 적용이 되어 있고, 착용가능한 무기에 따라서 각기 다른 IdleWalkRun을 구현할 수 있도록 만듬
우클릭을 누르면 조준상태가 되며 관련 정보는 Cpp내부에서 처리
MainState에서 스테이트 에얼리어스를 추가하여 조준 상태일 때, Aiming스테이트로 이동하게 만들고
Aiming 상태에서 가지고 있는 장비타입에 따라 다른 에임오프셋들을 적용시켜주고, 해당 에임오프셋과 BasePose를 Layerd blend per bone으로 섞어 상체는 에임오프셋, 하체는 기존 BasePose를 사용하도록 애니메이션을 섞음
구글 드라이브 링크
https://drive.google.com/file/d/1X1tpQo5A2J-XeGTXWUaEiWsjXJ1j4Th_/view?usp=sharing
PS. 우클릭을 누르고 있으면 조준상태로 바뀌며, 콘솔창에 Handle Pistol, Fist, Rifle을 입력하면 현재 캐릭터가 착용하는 무기타입이 바뀌게 설정해놨습니다.
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. 김보성님, 에임오프셋 관련 문제로 질문을 주셨군요.
현재 김보성님께서 구현하신 것은 조준 시 상체에만 에임오프셋이 적용되도록 설계한 형태로 보입니다. 지금 인게임에서 손 위치가 맞지 않는 문제는 에임오프셋 설정에서 상체와 하체를 적절히 분리하지 못했기 때문일 수 있습니다.
애니메이션 블루프린트에서의 노드 설정 확인:
Layered Blend per Bone 노드를 통해 애니메이션 블렌딩을 수행하는 부분에서 문제가 발생할 수 있습니다. 상체에만 에임오프셋을 적용하고 싶으시다면 해당 노드의 블렌딩 설정이 적절한지 확인해 주세요. Body 폴더에서 Spine 쪽의 노드에만 에임오프셋을 적용하도록 설정되어 있는지 점검해 보세요.
블렌딩 시 블렌드마스크 활용:
특정 부위(상체 등)에만 에임오프셋이 적용되게 하려면 블렌드 마스크를 활용하여 블렌딩 범위를 제한할 수 있습니다. 블렌드 마스크는 캐릭터의 특정 부분에만 영향을 끼치도록 블렌딩을 한정하는 데 유용합니다.
에임오프셋의 파라미터 확인:
에임오프셋의 입력값이 적절히 설정되어 있는지 확인합니다. 특히 Pitch
값이 문제가 없는지 확인해 보세요. Pitch값 = 0
상태에서도 이 문제가 발생하는 상태라면, 에임오프셋 자체의 기본 위치가 잘못 설정되었을 가능성이 있습니다.
위 내용들을 참고하시어 문제 해결에 도움을 받으시길 바랍니다. 프로젝트 내 문제가 지속된다면 구체적인 코드 부분이나 설정 스크린샷을 첨부하시면 더욱 자세한 안내가 가능합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다. 강사님도 좋은 하루되십쇼!