Improved MD5 loaders code
Fixed missing return Former-commit-id: b5fb298ab8b147bbfda07ffb2090d248156b96c7
This commit is contained in:
parent
4a0dbcb338
commit
095a44e9b1
|
|
@ -15,12 +15,15 @@ namespace
|
||||||
|
|
||||||
nzTernary Check(NzInputStream& stream, const NzAnimationParams& parameters)
|
nzTernary Check(NzInputStream& stream, const NzAnimationParams& parameters)
|
||||||
{
|
{
|
||||||
|
NazaraUnused(parameters);
|
||||||
|
|
||||||
NzMD5AnimParser parser(stream);
|
NzMD5AnimParser parser(stream);
|
||||||
return parser.Check();
|
return parser.Check();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Load(NzAnimation* animation, NzInputStream& stream, const NzAnimationParams& parameters)
|
bool Load(NzAnimation* animation, NzInputStream& stream, const NzAnimationParams& parameters)
|
||||||
{
|
{
|
||||||
|
///TODO: Utiliser les paramètres
|
||||||
NzMD5AnimParser parser(stream);
|
NzMD5AnimParser parser(stream);
|
||||||
|
|
||||||
if (!parser.Parse())
|
if (!parser.Parse())
|
||||||
|
|
@ -49,7 +52,9 @@ namespace
|
||||||
NzSequenceJoint* sequenceJoints = animation->GetSequenceJoints();
|
NzSequenceJoint* sequenceJoints = animation->GetSequenceJoints();
|
||||||
|
|
||||||
// Pour que le squelette soit correctement aligné, il faut appliquer un quaternion "de correction" aux joints à la base du squelette
|
// Pour que le squelette soit correctement aligné, il faut appliquer un quaternion "de correction" aux joints à la base du squelette
|
||||||
NzQuaternionf rotationQuat = NzEulerAnglesf(-90.f, 90.f, 0.f);
|
NzQuaternionf rotationQuat = NzQuaternionf::RotationBetween(NzVector3f::UnitX(), NzVector3f::Forward()) *
|
||||||
|
NzQuaternionf::RotationBetween(NzVector3f::UnitZ(), NzVector3f::Up());
|
||||||
|
|
||||||
for (unsigned int i = 0; i < jointCount; ++i)
|
for (unsigned int i = 0; i < jointCount; ++i)
|
||||||
{
|
{
|
||||||
int parent = joints[i].parent;
|
int parent = joints[i].parent;
|
||||||
|
|
@ -71,6 +76,8 @@ namespace
|
||||||
sequenceJoint.scale.Set(1.f);
|
sequenceJoint.scale.Set(1.f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,9 @@ namespace
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pour que le squelette soit correctement aligné, il faut appliquer un quaternion "de correction" aux joints à la base du squelette
|
// Pour que le squelette soit correctement aligné, il faut appliquer un quaternion "de correction" aux joints à la base du squelette
|
||||||
NzQuaternionf rotationQuat = NzEulerAnglesf(-90.f, 180.f, 0.f);
|
NzQuaternionf rotationQuat = NzQuaternionf::RotationBetween(NzVector3f::UnitX(), NzVector3f::Forward()) *
|
||||||
|
NzQuaternionf::RotationBetween(NzVector3f::UnitZ(), NzVector3f::Up());
|
||||||
|
|
||||||
NzString baseDir = stream.GetDirectory();
|
NzString baseDir = stream.GetDirectory();
|
||||||
|
|
||||||
// Le hellknight de Doom 3 fait ~120 unités, et il est dit qu'il fait trois mètres
|
// Le hellknight de Doom 3 fait ~120 unités, et il est dit qu'il fait trois mètres
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue