Skip to content
This repository was archived by the owner on Jul 7, 2022. It is now read-only.

Commit 4d42621

Browse files
committed
Release v1.12
1 parent c2f8279 commit 4d42621

File tree

4 files changed

+13
-8
lines changed

4 files changed

+13
-8
lines changed

CHANGELOG

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
v1.12
2+
- Fixed specific crash when importing incomplete skeletons. (#18 )
3+
- Fixed wrong root motion rotation directions.
4+
- Added hkaLosslessCompressedAnimation custom class support (library feature).
5+
- Attempt to remove inter-frame gimbal lock issues.
16
v1.11.1
27
- Fixed crash for first-time users.
38
v1.11

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cmake_minimum_required(VERSION 3.3)
22

3-
project(HavokMax VERSION 1.11.1)
3+
project(HavokMax VERSION 1.12)
44

55
set (HavokLibLibraryPath ../HavokLib)
66

src/HavokImport.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -228,10 +228,10 @@ void HavokImport::LoadRootMotion(const hkaAnimatedReferenceFrame *ani,
228228
Quat &cRotation = reinterpret_cast<Quat &>(trans.rotation.QConjugate());
229229
auto cTrans = reinterpret_cast<Point3 &>(trans.translation * objectScale);
230230
cMat.SetRotate(cRotation);
231-
cMat.SetTrans(cTrans * corMat);
232-
//cMat *= corMat;
231+
cMat.SetTrans(cTrans);
232+
auto trueTM = cMats[cTime++] * Inverse(corMat);
233233

234-
SetXFormPacket packet(cMats[cTime++] * cMat);
234+
SetXFormPacket packet(trueTM * cMat * corMat);
235235

236236
cnt->SetValue(SecToTicks(t), &packet);
237237
}
@@ -354,9 +354,9 @@ void HavokImport::LoadAnimation(const hkaAnimation *ani,
354354
}
355355

356356
if (cnt->GetRotationController()->ClassID() !=
357-
Class_ID(LININTERP_ROTATION_CLASS_ID, 0)) {
357+
Class_ID(HYBRIDINTERP_ROTATION_CLASS_ID, 0)) {
358358
cnt->SetRotationController((Control *)CreateInstance(
359-
CTRL_ROTATION_CLASS_ID, Class_ID(LININTERP_ROTATION_CLASS_ID, 0)));
359+
CTRL_ROTATION_CLASS_ID, Class_ID(HYBRIDINTERP_ROTATION_CLASS_ID, 0)));
360360
}
361361

362362
if (cnt->GetScaleController()->ClassID() !=
@@ -418,7 +418,7 @@ void HavokImport::LoadAnimation(const hkaAnimation *ani,
418418
AnimateOff();
419419

420420
Control *rotControl = (Control *)CreateInstance(
421-
CTRL_ROTATION_CLASS_ID, Class_ID(HYBRIDINTERP_ROTATION_CLASS_ID, 0));
421+
CTRL_ROTATION_CLASS_ID, Class_ID(LININTERP_ROTATION_CLASS_ID, 0));
422422
rotControl->Copy(cnt->GetRotationController());
423423
cnt->GetRotationController()->Copy(rotControl);
424424
}

0 commit comments

Comments
 (0)