다음 비디오의 지침을 따랐습니다. www.youtube.com/watch?v=SissgQ0IXvk
XNA 4.0과 Blender 2.69를 사용하고 있습니다.
애니메이션이있는 모델을 .FBX 파일로 내 보냅니다.
애니메이션은 손을 흔드는 남자
다음은 Blender에서 어떻게 생겼는지입니다.
i.stack.imgur.com/481r9.jpg
다음은 XNA에서 렌더링되는 방법입니다.
i.stack.imgur.com/iWk1E.jpg
애니메이션이 발생하는 팔이 크게 왜곡됩니다.
AnimationPlayer 클래스에서 오류가 발생한다고 생각합니다.
/// <summary>
/// Helper used by the Update method to refresh the WorldTransforms data.
/// </summary>
public void UpdateWorldTransforms(Matrix rootTransform)
{
// Root bone.
worldTransforms[0] = boneTransforms[0] * rootTransform;
// Child bones.
for (int bone = 1; bone < worldTransforms.Length; bone++)
{
int parentBone = skinningDataValue.SkeletonHierarchy[bone];
worldTransforms[bone] = boneTransforms[bone] *
worldTransforms[parentBone];
}
}
/// <summary>
/// Helper used by the Update method to refresh the SkinTransforms data.
/// </summary>
public void UpdateSkinTransforms()
{
for (int bone = 0; bone < skinTransforms.Length; bone++)
{
skinTransforms[bone] = skinningDataValue.InverseBindPose[bone] *
worldTransforms[bone];
}
}
위의 코드를 수정하면 버그를 고칠 수 있다고 생각하는데, 어떻게해야할지 모르겠습니다. 누군가가이 왜곡 버그를 수정하도록 도울 수 있습니까?
다음은 프로젝트 소스 코드에 대한 링크입니다.
www.mediafire.com/download/ps5ocf1nxbfgrru/SkinningSample_4_0.zip
다음은 블렌더 파일에 대한 링크입니다.
www.mediafire.com/download/vrt8h1p83vkd76g/wave.blend
문제를 찾았습니다. XNA의 콘텐츠 파이프 라인이 애니메이션 FBX를 올바르게 처리 할 수없는 것 같습니다. 그래서 XNA에는 버그가 있습니다. 운 좋게도 블렌더 2.68a 및 이전 버전에는 이에 대한 "수정"이 있습니다. FBX를 내보낼 때 "XNA 회전 애니메이션 해킹"을 확인하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다