SPICA icon indicating copy to clipboard operation
SPICA copied to clipboard

Multiple Animation Export (DAE - Pokemon)

Open Wambosa opened this issue 7 years ago • 14 comments

Pokemon Motivations

This began with attempting to export multiple animations using spica. This kind of operation was not possible. The following code aims to make multiple animation export possible for at least pokemon sun moon models. Through great community effort, most file locations are known. Knowledge is a bit scattered over the internet. Hopefully this concatenation of information in executable form is helpful to more than just myself.

Target features

  • [x] adjustable CLI tool for exporting without the need to render a UI
  • [x] include frame start-end numbers for the animations that were exported
  • [x] exported files compatible with unity3d

spica cli

dev note

I hope that it is obvious that this is still a work in progress, but since it is already working and doing what i need, i think it is time to open up for discussion to see if it is possible and/or worthy to merge into the main codebase.

todo list

  • [x] gather all modder notes in a single place
  • [x] export multiple animations
  • [x] support UI operation for multiple animation exports
    • multiple animation selection support
  • [x] create CLI operation for exports
    • incorporate garc 0/9/4 model-bin map as a text lookup
  • [x] include animation frame ranges txt file on export
  • ~~refactor manipulations to Dae generic class~~
    • ~~discuss if the anim concatenation is generic enough for the dae base class. i already know that the motion name lookup is too specific. Perhaps there is more to consider here. potentially create PokemonDae : Dae which will truly isolate the functionality to just pokemon sun moon~~
  • [x] try to fix build by getting dependencies added properly

stretch goals

  • ~~support .dae library_animation_clips~~
    • (i only care about this if unity supports it)

Wambosa avatar Jul 20 '18 17:07 Wambosa

example of the cli lookup. the converted format is in yaml so that users can easily fix keys by hand if need be. Since the source list was manually written painstakingly over time and by hand, there will have to be manual corrections as well to the machine generated file that the cli aspect of the application can use.

sumo_094.txt (aka source list) model_bin_map.yml.txt

Wambosa avatar Jul 20 '18 17:07 Wambosa

This is going to be super useful. Hope @gdkchan comes back to merge this when it's finished

legoj15 avatar Jul 20 '18 22:07 legoj15

even though the app compiles and runs just fine locally. the automated build doesn't seem to load the cli parser and yaml parser dependencies to the project. I am not keen on csproj and dependency handling in these .net projects (i am a js python guy myself). I added the packages.config, yet appveyor does not seem to ever run a nuget command. (when ctrl+f the page)

Wambosa avatar Jul 21 '18 05:07 Wambosa

Hope to see this finished soon, really difficult to batch export animations.

dore0062 avatar Jul 14 '19 02:07 dore0062

It does currently work @Skeeve2 :) I've exported many models with their textures and animations using the cli version.

Once you have the dependencies from this commit; which i installed using nuget, then it should work.

Wambosa avatar Jul 14 '19 03:07 Wambosa

Just wanted to say this was really helpful!

DanielLuu avatar Sep 27 '19 14:09 DanielLuu

How do I download it?

TheCoolestName avatar Jul 25 '21 19:07 TheCoolestName

How do I download it?

You are supposed to build it, but here is a link that is good till Friday 2021-07-30 https://www.dropbox.com/sh/xcm9rt021b8d74p/AAAjMJ5BrhsOYDvf-UuYSphga?dl=0

Wambosa avatar Jul 26 '21 12:07 Wambosa

Okay, thanks!

TheCoolestName avatar Jul 27 '21 01:07 TheCoolestName

It has been four years and people still email me for the build lol I'll send it cause I love Pokemon, but it would be more expedient for people if someone here knew how to fix the appveyor build and could merge this? Pretty please?

Wambosa avatar May 09 '22 18:05 Wambosa

@Wambosa hello. For CI builds, you may need pre-scripts to download nuget packages, I have forked your repository to test the build process.

The following is the content of the pre-script

cd **sln-dir** 
nuget resore

in Build setting

Haleclipse avatar Jul 30 '22 23:07 Haleclipse

Thank you @Haleclipse! Your findings make complete sense!

Only, I do not appear to have access to the underlying settings in appveyor When I log in, my dashboard is completely empty. And when I attempt to visit any of

https://ci.appveyor.com/project/gdkchan/spica/builds/25886830
https://ci.appveyor.com/project/gdkchan/spica/builds
https://ci.appveyor.com/project/gdkchan/spica

all of them just redirect me to a login page; Which I have already authenticated with and can change various other personal settings about appveyor, but no access to this project itself on this branch where the build is failing.

Okay okay, so all this and a few years more experience with ci/cd pipelines has taught me there should also be a way to override the settings from the repo via a config file.

After quickly looking for it, there appears to be a way here: https://www.appveyor.com/docs/build-configuration/#appveyoryml-and-ui-coexistence image

I am not in a position to spend time digging into appveyor's config file novelties, however, this does appear to be a way forward.

My motivation to do it has waned since it appears this repo is not going to accept any additional merges anyways. At least the cli tool does work swimmingly 🤓 even if the ci/cd is busted

Wambosa avatar Aug 02 '22 16:08 Wambosa

Thank you @Haleclipse! Your findings make complete sense!

Only, I do not appear to have access to the underlying settings in appveyor When I log in, my dashboard is completely empty. And when I attempt to visit any of

https://ci.appveyor.com/project/gdkchan/spica/builds/25886830
https://ci.appveyor.com/project/gdkchan/spica/builds
https://ci.appveyor.com/project/gdkchan/spica

all of them just redirect me to a login page; Which I have already authenticated with and can change various other personal settings about appveyor, but no access to this project itself on this branch where the build is failing.

Okay okay, so all this and a few years more experience with ci/cd pipelines has taught me there should also be a way to override the settings from the repo via a config file.

After quickly looking for it, there appears to be a way here: https://www.appveyor.com/docs/build-configuration/#appveyoryml-and-ui-coexistence image

I am not in a position to spend time digging into appveyor's config file novelties, however, this does appear to be a way forward.

My motivation to do it has waned since it appears this repo is not going to accept any additional merges anyways. At least the cli tool does work swimmingly 🤓 even if the ci/cd is busted

Although I don't really know how other pull requests get past the build task, and I'm a beginner at this aspect of CI/CD.

But what you said is true, because the settings in the UI panel actually correspond to the appveyor.yml file (see appveyor.yml), but it's strange that others have successfully passed the build without creating this file.

Lastly, I would like to add that the "Details" of the pull request build check below jumps to the login screen after clicking on it because you don't have permission (not the owner)

Haleclipse avatar Aug 02 '22 18:08 Haleclipse

Thank you for the clear guidance @Haleclipse! That appears to have removed the build error

Wambosa avatar Aug 04 '22 14:08 Wambosa