Gildor's Forums

Author Topic: Animation Compression Library (ACL) support  (Read 3542 times)
Ehlyon
Full Member
***
Posts: 162



View Profile
Animation Compression Library support
« Reply #15 on: August 14, 2022, 12:11 »

...

Thank you for your hard work spirit!
I tried it with B&S Revo, Borderlands 3 and Tiny Tina, which, if i'm not wrong, all use an older ACL version. All gives some kind of error. Should i post it? Give some samples? Or just report?
Logged
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library support
« Reply #16 on: August 14, 2022, 15:18 »

@Ehlyon: Thanks for the reminder, I forgot to add those games to the list. I believe only 4.25 and above games may work with the build out of the box, as in 4.24 and below games implementation may be slightly different in games (even considering proper implementation for 3 respective functions in umodel). But I'll definitely look into those games as well in due time.

For now The Ascent is also tested with the ACL (old) build, it works more or less fine, but there are still issues with particular animations (maybe compatibility issue), so just don't use batch operations.

If someone is willing to help, you can provide samples from any game from the list via PM (except for unsupported by akderebur's tool like FFVII or Borderlands 3) - it should be at least mesh, linked skeleton (written in the info about mesh when opened in the viewer) and handful amount of animations, you can extract them as-is via "save packages" option. Scan should work fine for any game, so extracting most animations should be quite easy.
« Last Edit: August 14, 2022, 19:23 by spiritovod » Logged
WollieWoltaz
Full Member
***
Posts: 198


View Profile
Animation Compression Library support
« Reply #17 on: August 14, 2022, 16:26 »

Mir4 animations are supported now with ACL Old build!
Amazing spiritovod!
Logged
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library support
« Reply #18 on: August 14, 2022, 19:20 »

@WollieWoltaz: Thanks for checking, bumped game topic with respective info.

Support for 4.22 games and below is adjusted, now Remnant: From The Ashes also works with updated "old" build.
« Last Edit: August 14, 2022, 19:22 by spiritovod » Logged
CriticalError
Full Member
***
Posts: 172



View Profile
Animation Compression Library support
« Reply #19 on: August 14, 2022, 20:21 »

@Ehlyon: Thanks for the reminder, I forgot to add those games to the list. I believe only 4.25 and above games may work with the build out of the box, as in 4.24 and below games implementation may be slightly different in games (even considering proper implementation for 3 respective functions in umodel). But I'll definitely look into those games as well in due time.

For now The Ascent is also tested with the ACL (old) build, it works more or less fine, but there are still issues with particular animations (maybe compatibility issue), so just don't use batch operations.

If someone is willing to help, you can provide samples from any game from the list via PM (except for unsupported by akderebur's tool like FFVII or Borderlands 3) - it should be at least mesh, linked skeleton (written in the info about mesh when opened in the viewer) and handful amount of animations, you can extract them as-is via "save packages" option. Scan should work fine for any game, so extracting most animations should be quite easy.
Hello mate thanks for your hard work and others colaborate to work in that, I have a question, the version support is this one? because is updated 2 days ago or upload 2 days ago, thanks.

https://drive.google.com/file/d/1t47jZtGqiUznlkryS8AK3CEREtLDGzG3/view
Logged
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library support
« Reply #20 on: August 15, 2022, 02:21 »

@CriticalError: No, that's a usual ACL build from previous page for games, using ACL 2.0+. The one from post above is created for games, using ACL 1.3.x and below (they're not cross-compatible in most cases) - it has "old" suffix in the name to somehow distinguish them, maybe I'll rename it later to avoid possible confusion. Additionally you can always check when a build was created at the left-bottom part of startup screen, there is compilation date there.

I've checked Beyond a Steel Sky, it also works with the "old" build, but note that the game is using zstd compression for packages, unsupported by umodel in general - for more info please read the game topic. I'm planning to port existing solution for zstd to the "old" build later, for more convenient usage with the game (even though only two games used that compression so far, afaik).
« Last Edit: August 15, 2022, 02:23 by spiritovod » Logged
WollieWoltaz
Full Member
***
Posts: 198


View Profile
Animation Compression Library support
« Reply #21 on: August 15, 2022, 03:37 »

@spiritovod
Could you look into Blade & Soul Revolution files as well? I'm willing to provide game samples but I am not sure if I should as you stated in a previous post that we should not send you files wich were not supported by akderbur's tool....

Or is it pointless to look at those files?
Logged
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library support
« Reply #22 on: August 15, 2022, 18:09 »

@WollieWoltaz: Like akderbur's said, the game is using older ACL version than supported by existing builds - though unlike FFVIIR, Borderlands 3 and some other games, which are using mostly v3 (it's internal versioning, ~ACL 1.1), B&S Revolution is using v4 (~1.2). The main ACL problem is that 1.x versions are not totally cross compatible, as the whole thing was in active development back than and even if format in general didn't change much, internally it was reworked many times. Only ACL 1.3 (v5+) and ACL 2.x (v7+) became more or less stable, for older versions it may be required to create separate builds on per-game basis (if even possible) - or compile and link separate external libraries.

I've checked Dislyte, it's now mostly supported with "old" build, though with some issues. Please read the game topic for more info.
No More Heroes 3 also works with "old" build, but the game is using a lot of tracks, which are not implemented yet. I'll look into it before moving to next steps.
« Last Edit: August 15, 2022, 18:52 by spiritovod » Logged
zxhxy
Jr. Member
**
Posts: 41


View Profile
Animation Compression Library support
« Reply #23 on: August 15, 2022, 19:54 »

@WollieWoltaz: Like akderbur's said, the game is using older ACL version than supported by existing builds - though unlike FFVIIR, Borderlands 3 and some other games, which are using mostly v3 (it's internal versioning, ~ACL 1.1), B&S Revolution is using v4 (~1.2). The main ACL problem is that 1.x versions are not totally cross compatible, as the whole thing was in active development back than and even if format in general didn't change much, internally it was reworked many times. Only ACL 1.3 (v5+) and ACL 2.x (v7+) became more or less stable, for older versions it may be required to create separate builds on per-game basis (if even possible) - or compile and link separate external libraries.

I've checked Dislyte, it's now mostly supported with "old" build, though with some issues. Please read the game topic for more info.
No More Heroes 3 also works with "old" build, but the game is using a lot of tracks, which are not implemented yet. I'll look into it before moving to next steps.
@spiritovod  Can you check out Marvel Future Revolutions, it only seems to work on special versions, so you can't test the animation with the ACL version
Logged
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library support
« Reply #24 on: August 16, 2022, 00:37 »

@zxhxy: Marvel Future Revolution works fine with usual ACL build from previous page, because the game is using ACL 2.0 and meshes are already supported in vanilla umodel since around 1570 and all derived builds. I've updated game topic with relevant info.
« Last Edit: August 16, 2022, 00:39 by spiritovod » Logged
cesm1980
Newbie
*
Posts: 24


View Profile
Animation Compression Library support
« Reply #25 on: August 16, 2022, 02:29 »

Some not that obvious things about older ACL formats (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).

Experimental build for games using older ACL formats (based on 1.3.5 version): link (updated)

Currently only clips are supported. Tested with: Ni no Kuni: Cross Worlds, The Ascent (with issues), Mir4, Remnant: From the Ashes, Beyond a Steel Sky, Dislyte (with issues), No More Heroes 3 (partially, because of tracks) - but other games may work with it as well.


@spiritovod

Ok i just tested myself a few games and i found out that the following games ARE supported by this old acl umodel version :

- Life is strange 2 episodes 4 and 5 : akderebur's tool only supported two characters ("Mom" and "Daniel") and Sean was completly incompatible but to my big surprise in this umodel build with the old acl versions the few animations i sent to akderebur to include support, they ALL imported correctly, in ALL three characters! (i mean, their respective animations) So yeah, this tool now has much better support for episodes 4 and 5 than akderebur's tool, but IMPORTANT to anyone using this build do NOT use -lis2 game override, apparently the native 4.16 override was the only way to get animations loading ok, the -lis2 does somehow messup something on the animation decoding from ACL i presume, and the meshes were able to still load ok without the -lis2 tag

-Tell me why : this was another pleasant surprise this game also wasn't supported by akderebur's tool but worked perfectly with this build! This is great!

Now the ones with big issues :

- Medieval dynasty : you said at the time this game had animations support by the main umodel build but after testing in two different characters, only a few ones are standard (like the attack and idle animations without objets, but any of the animations related to locomotion or interacting with objects all give errors), there's many animations that are ACL compressed, in fact the ones that gave the error "Versions 7+ / tracks are not supported by this build!" DID work well on your newest acl 2 build! But the majority of them keep giving the following error and works in no build at all even when trying every ue version override, no idea if you can fix this :

Serializing behind stopper (269AD+4 > 269AD)
FFileReader::Serialize: File=Idle_PlayWithDoll1_NPC.uexp <- FArchive::ByteOrderSerialize <- UAnimSequence4::SerializeCompressedData3 <- UAnimSequence4::Serialize <- LoadObject: AnimSequence4'Idle_PlayWithDoll1_NPC.Idle_PlayWithDoll1_NPC', pos=27754, ver=522/0 (unversioned), game=ue4.27 <- UObject::EndLoad <- LoadWholePackage: Idle_PlayWithDoll1_NPC.uasset <- CUmodelApp::ShowPackageUI <- CUmodelApp::ProcessKey: key=6F, down=1 <- VisualizerLoop <- Main: umodel_build=1587

- Twin Mirror : much like Medieval dynasty in that second type of animation that isnt supported, this one there's not a single build that works, i got the same errors you got that you mentioned on the game's thread and since akderebur's tool also has zero support, so far this is the only dontnod game that is completly unsuported so far.

I also read your post talking about anyone willing to help by providing samples, is it worth sending you samples of these from Medieval dynasty ? I presume that from twin mirror isn't worth since akderebur's tool doesnt support it, altough Tell me why is now supported by this build and wasnt in akderebur's tool...
Logged
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library support
« Reply #26 on: August 16, 2022, 04:46 »

@cesm1980: Wow, that's a lot of testing, much appreciated )

I'm rather surprised that LIS somehow works at all, I thought it's using v3 (ACL 1.1). Could you please PM me some samples (mesh+skeleton+working ACL animation), so I could check things. Current override option actually mess up with ACL related layout (judging by Remnant from the Ashes), so it works the way you've explained - I just didn't have time to confirm it. Probably it can be fixed by partially removing respective workaround for this build.

Twin Mirror is using v4 (ACL 1.2), which shouldn't be supported in general, and also some kind of custom implementation. I should take a look at it later. As for Medieval Dynasty, I was not aware it's using ACL - previously it was fully supported, but it was quite a while ago. Will check it as well in due time. Some samples for Medieval Dynasty would be appreciated.

P.S. There are also issues, when a single game contains ACL animations of different formats (both clip and tracks), and it's not possible to guess actual version from animations data itself, it's most likely included in supplementary assets or engine. For example, No More Heroes 3 has around 2/3 of clips and 1/3 of tracks - clips can be opened in "old" build, while tracks works fine in usual ACL build. But as another example, Chivalry 2 is using mostly tracks, though they're from older versions and fails to load in usual build ("old" one doesn't support tracks yet, ACL is not designed to easily combine stuff like that).
Logged
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library support
« Reply #27 on: August 17, 2022, 04:39 »

Both ACL builds are updated and renamed according to supported versions. Medieval Dynasty works properly now in 2.0 build, the game is using ACL 2.1 for some animations (the rest are usual UE formats), but it's backward compatible. And also there will be additional notifications in logs, suggesting different builds judging by internal versioning.
For now main priority would be support for most ACL versions separately to avoid possible compatibility issues.
Logged
spiritovod
Hero Member
*****
Posts: 1257


View Profile
Animation Compression Library support
« Reply #28 on: August 18, 2022, 04:27 »

I gave up for now on trying to somehow combine 1.x versions in the one build and made a few of them for every minor version to avoid at least compatibility issues.

What's new:
1) All games supported in vanilla umodel build and using ACL are somehow supported in different ACL builds. According to internal versioning, they would suggest required builds now in the logs.
2) I found the reason why some animations failed to load in Dislyte and The Ascent, it's fixed now, which also affected other builds and made them more stable.
3) Since there are only two games using ACL 1.2, I've excluded non-acl animations from scope of that particular build to ignore some weird animations in Twin Mirror. But since all actual animations are using ACL in both supported games, you shouldn't miss anything noticeable.
4) Both Borderlands 3 and Tiny Tina’s Wonderlands are fully supported now in ACL 1.1 build with respective override option.
« Last Edit: August 18, 2022, 04:29 by spiritovod » Logged
Triadasoul
Newbie
*
Posts: 30


View Profile
Animation Compression Library support
« Reply #29 on: August 18, 2022, 19:21 »

Tried Tina's Wonderland: Fatal Error - SDL2.dll was not found

SDL.Init <- VisualizerLoop <- Main: umodel_build=build 1573 based
Logged
Jump to:  

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