Gildor's Forums

Author Topic: Animation Compression Library (ACL) support  (Read 3543 times)
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library (ACL) support
« on: June 27, 2021, 16:02 »

I was planning to create an updated list with games, which are using ACL compression, for statistics and better navigation in the future, to simplify possible tests and such. The list contains links to corresponding forum topics, if present.

Most games from the list are now supported with different ACL umodel builds, posted in this topic or respective game topics. Alternatively, there is third party tool for such animations, created by akderebur, but it doesn't support games with older ACL versions. You can get it along with instruction from this topic at xentax.

Desktop games:
All latest Dontnod's games: two last episodes of Life is Strange 2, Twin Mirror, Tell Me Why, most likely all their future releases as well.
Beyond a Steel Sky, Chivalry 2, Fortnite (current version), Kena: Bridge of Spirits, Remnant: From the Ashes (current version), Rogue Company (current version), Star Wars: Tales From The Galaxy's Edge, Final Fantasy VII Remake (including Intergrade), The Ascent, The Dark Pictures Anthology: House of Ashes, Valorant, Evil Dead: The Game, The Quarry, The DioField Chronicle, Borderlands 3, Tiny Tina's Wonderlands, Medieval Dynasty (current version), Divine Knockout, Lost Ark, SD Gundam Battle Alliance, Back 4 Blood, KartRider: Drift (current version), Dragon Quest X Offline, Gran Saga (current version), Gundam Evolution (current version), The Outlast Trials, Harvestella, Valkyrie Elysium, The Dark Pictures Anthology: The Devil In Me.

Mobile games:
Apex Legends Mobile (current version), Dislyte, Marvel Future Revolution, Mir4, Ni no Kuni: Cross Worlds, PUBG Mobile (current version), Undecember, Blade & Soul Revolution (current version), Crystal of Atlan, Mortal Kombat: Onslaught.

Console games:
No More Heroes 3
« Last Edit: November 19, 2022, 01:02 by spiritovod » Logged
babymammoth
Newbie
*
Posts: 7


View Profile
Animation Compression Library support
« Reply #1 on: July 30, 2021, 22:51 »

looks like we've met the 10-15 games threshold for the support to be added  cool
Logged
BetaX
Newbie
*
Posts: 4


View Profile
Animation Compression Library support
« Reply #2 on: September 13, 2021, 17:19 »

Also Lost ark and Apex Legends Mobile Smiley
Logged
Juso3D
Moderator
Hero Member
*****
Posts: 909


Welcome to Gildor Forums


View Profile
Animation Compression Library support
« Reply #3 on: September 13, 2021, 17:59 »

looks like we've met the 10-15 games threshold for the support to be added  cool

Remember also though:

I'll consider integration (if it will not break anything in UModel)
Logged

Blender + Linux User Here.
MountainFlash
Newbie
*
Posts: 4


View Profile
Animation Compression Library support
« Reply #4 on: February 07, 2022, 08:42 »

Umodel build with ACL support.
tested it with Valorant(release-04.02)

https://cdn.discordapp.com/attachments/719155652286742578/940104173423321148/umodel_win32.zip
Logged
FDArtZz
Newbie
*
Posts: 20


View Profile
Animation Compression Library support
« Reply #5 on: February 08, 2022, 00:34 »

Umodel build with ACL support.

Thx for all your work always <3 you help us all alot! I cant test it atm but would this also fix add anims or is this only for ACL support? And if not is this something you are thinking of working on or not?
Logged
Triadasoul
Newbie
*
Posts: 30


View Profile
Animation Compression Library support
« Reply #6 on: February 11, 2022, 01:43 »

Umodel build with ACL support.
tested it with Valorant(release-04.02)

https://cdn.discordapp.com/attachments/719155652286742578/940104173423321148/umodel_win32.zip

Tested on Mir4 - it doesn't work. Reports this after animation search:

Code:
USkeleton::ConvertAnims: Skel=Mon_D_Centipede_Skeleton Anim=Mon_D_Centipede_Btl_Atk01 <- UAnimSequence4::PostLoad <- PostLoad: Mon_D_Centipede_Btl_Atk01 <- UObject::EndLoad <- LoadWholePackage: /Game/Animation/AnimationSequence/Monster/Animal/D_Centipede/Mon_D_Centipede_Btl_Atk01.uasset <- Load: 0/20 <- CSkelMeshViewer::FindUE4Animations <- CSkelMeshViewer::AttachAnimSet <- CSkelMeshViewer::ProcessKey <- CUmodelApp::ProcessKey: key=80000061, down=1 <- VisualizerLoop <- Main: umodel_build=1586

Appending certain animation also doesn't work with this code:

Code:
USkeleton::ConvertAnims: Skel=Mon_Bloody01_Skeleton Anim=Mon_Bloody01_Btl_Atk01 <- UAnimSequence4::PostLoad <- PostLoad: Mon_Bloody01_Btl_Atk01 <- UObject::EndLoad <- LoadWholePackage: /Game/Animation/AnimationSequence/Monster/Bloody/Bloody01/Mon_Bloody01_Btl_Atk01.uasset <- CUmodelApp::ShowPackageUI <- CUmodelApp::ProcessKey: key=6F, down=1 <- VisualizerLoop <- Main: umodel_build=1586
« Last Edit: February 11, 2022, 01:48 by Triadasoul » Logged
Triadasoul
Newbie
*
Posts: 30


View Profile
Animation Compression Library support
« Reply #7 on: February 11, 2022, 03:20 »

As for Remnants from the Ashes it doesn't work either:

Code:
appMalloc: size=1408172336 (total=279 Mbytes) <- FArray::Empty: 1408172336 x 1 <- FString<< <- UAnimSequence4::SerializeCompressedData <- UAnimSequence4::Serialize <- LoadObject: AnimSequence4'Slime_Hulk_Atk_WaterWave.Slime_Hulk_Atk_WaterWave', pos=970F, ver=517/0 (unversioned), game=ue4.22 <- UObject::EndLoad <- LoadWholePackage: /Game/World_Swamp/Characters/Swamp_FatCreature/Animations/Slime_Hulk_Atk_WaterWave.uasset <- Load: 0/72 <- CSkelMeshViewer::FindUE4Animations <- CSkelMeshViewer::AttachAnimSet <- CSkelMeshViewer::ProcessKey <- CUmodelApp::ProcessKey: key=80000061, down=1 <- VisualizerLoop <- Main: umodel_build=1586
Logged
MountainFlash
Newbie
*
Posts: 4


View Profile
Animation Compression Library support
« Reply #8 on: April 06, 2022, 13:58 »

Mir4 uses a custom engine version so I can't fix it. and I don't know about Remnants from the Ashes.

Source code with ACL support: https://github.com/MinshuG/UEViewer.git
Logged
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library support
« Reply #9 on: May 13, 2022, 22:24 »

Experimental builds for games using newer ACL format: link

Only tracks are supported (though it should be fine for most games). Tested with:
2.1: Marvel Future Revolution, The Quarry / The Devil in Me, Valorant, Medieval Dynasty, The DioField Chronicle, Evil Dead: The Game, No More Heroes 3 (a few anims may require 1.3 build), Kena: Bridge of Spirits, The Dark Pictures Anthology: House of Ashes, Undecember, SD Gundam Battle Alliance, KartRider: Drift, Crystal of Atlan, Dragon Quest X Offline, Gundam Evolution, The Outlast Trials, Mortal Kombat: Onslaught, Harvestella, Valkyrie Elysium
2.0a: Chivalry 2, Rogue Company, Divine Knockout
2.0b: Back 4 Blood

Update: Build is updated with support for The Quarry and The Dark Pictures Anthology: The Devil In Me, you need to use game specific override option (it's the same for both games).
Update 2: Build is updated with support for Valorant, you need to use game specific override option. It can now also export vertex normals to psk thanks to floxay (more info here).
Update 3: Build is replaced with the one with different ACL implementation (like in 1.x builds). Also, support for Kena: Bridge of Spirits is added, you need to use game specific override option (for anniversary update simply choose proper engine version).
Update 4: There are more builds now, 2.0 are based on old dev versions and 2.1 would be based on latest ACL version. For Rogue Company & Divine Knockout you need to use game specific override option, for Chivalry 2 use 4.25 Plus override.
Update 5: Separate build for Back 4 Blood is added to the archive, you need to use 4.25 Plus override option.
Update 6: Build is updated with support for The Outlast Trials, you need to use game specific override option.

P.S. Game specific override option is when you enable override detection and choose Unreal 4 -> Game Name in drop-down list.
« Last Edit: November 19, 2022, 00:50 by spiritovod » Logged
Krazze
Newbie
*
Posts: 28


View Profile
Animation Compression Library support
« Reply #10 on: May 15, 2022, 12:36 »

So which are the supported games using this special build? Valorant/EvilDead and nothing else? I've tried chivalry 2 and it doesn't work.
Logged
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library support
« Reply #11 on: May 15, 2022, 18:42 »

@Krazze: It should support default ACL implementation in default UE4 games. But there can be other changes, which is the case for most games with ACL animations. For instance, it seems that Chivalry 2 has additional values affecting bone mapping, so even if animation tracks can be decompressed properly, result can't be processed without additional adjustments.
Probably House of Ashes and Beyond the Steel Sky are supported by this build as well, not sure about others.
Logged
Richtoveen
Newbie
*
Posts: 13


View Profile
Animation Compression Library support
« Reply #12 on: May 20, 2022, 18:20 »

on apex the ACL build is giving me this:
assertion failed: Seq->RawAnimationData.Num() == NumTracks
whole call stack:
USkeleton::ConvertAnims: Skel=SK_Hero_Base_Skeleton Anim=A_Wattson_Revive_TPP <- UAnimSequence4::PostLoad <- PostLoad: A_Wattson_Revive_TPP <- UObject::EndLoad <- LoadWholePackage: /Game/Art/Animation/Revive/Light/Wattson/A_Wattson_Revive_TPP.uasset <- CUmodelApp::ShowPackageUI <- Main: umodel_build=ACL based[/sub]
Logged
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library support
« Reply #13 on: May 20, 2022, 19:15 »

@Richtoveen: This build doesn't support Apex mobile, but akderebur's tool, mentioned on previous page, should work with animations. For more info about the game specifics read its topic.
Logged
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library support
« Reply #14 on: August 14, 2022, 05:00 »

Experimental builds for games using older ACL format: link

Only clips are supported (it should be fine though for most games). Tested with:
1.3: Ni no Kuni: Cross Worlds, The Ascent, Mir4, Remnant: From the Ashes, Beyond a Steel Sky, Dislyte, Tell Me Why, Life is Strange 2, Star Wars: Tales from the Galaxy's Edge, Gran Saga
1.2: Blade & Soul: Revolution, Twin Mirror
1.1: Borderlands 3, Tiny Tina’s Wonderlands

Update: Support for Star Wars: Tales from the Galaxy's Edge is added to 1.3 build, you need to use game specific override option.

--------------------------------------------------------------------------------------------

Some not that obvious things about older ACL format (versions 1.3.x and below):

1) While modern versions (2.0+) are using mostly tracks and databases, old versions are relying mostly on clips, that's why they're not fully backward compatible, except if you don't make explicit workarounds.
2) Tags determines if it's a clip (0xAC10AC10) or tracks (0xAC11AC11) - they are accessed differently, but processed similarly.
3) You can implement ACL directly from headers, this way you can easily debug native ACL functions if needed. Also it's easier to done it through decompress bone functions rather than decompress pose, in that case writer implementation is not required, you can take output as is (there is almost no performance degradation here, +- 2sec for the whole batch is no big deal).
4) Very old versions, used in FFVII Remake and a few other games, relies not on rtm library, but on ACL internal math (when rtm was not separate library, but part of ACL).
5) If you don't want additional problems with compilation, explicitly disable optimizations in rtm/ACL math.h (SSE/AVX/etc support).
« Last Edit: September 22, 2022, 23:22 by spiritovod » Logged
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Leviathan design by Bloc | XHTML | CSS