Perfare / AssetStudio

AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles.
MIT License
13.27k stars 2.56k forks source link

May be export animations? #87

Closed Seraphie closed 6 years ago

Mactastic1-5 commented 7 years ago

@RobertTopala No, you can't export animations with any Unity decompilers that I've seen.

Mactastic1-5 commented 6 years ago

@Avatarchik It isn’t free and they want a lot of money for the full version.

Avatarchik commented 6 years ago

Let me look for free alternatives, with a diet, you can finish this Unity Studio, since they can do it ... I do not think it's more complicated than the other types, Now I am looking for different information to share with all

Mactastic1-5 commented 6 years ago

@Avatarchik To my knowledge, every other decompiler is free. It would be nice if the developers of Unity Studio could add features from that paid program to Unity Studio. I might buy a copy to rebuild a project.

Mactastic1-5 commented 6 years ago

If I wanted to rebuild a project, it would cost $200. Sounds like a scam.

Perfare commented 6 years ago

this program use crunch.dll copy from UnityStudio, I don't know why he doesn't make one by himself. also, Il2cpp related code copy from my another project. but I don't see any license in this program, I don't know what to say.

Avatarchik commented 6 years ago

We will try to refine UnityStudio)

Mactastic1-5 commented 6 years ago

Functionality:

  • Opening of distribution files (Unity standelone files (win, MAC, linux), apk, ios)

  • View scene structures

  • View resources content (text, images, sounds, meshs, scripts, scene objects)

  • View scripts source code (decompile)

  • Export resources and scripts (convert image asset to PNG, DDS, sound to WAV, export Mesh to .obj format, decompile assemblys and etc.)

  • Generate Unity Project

  • Make Unity project (to Unity 5.6 format)

  • scenes (.unity)

  • scripts (c#)

  • models (with animation)

  • assets (images, sounds, mesh, font, video and etc.)

  • resources

  • prefabs

  • plugins

    • Replace content in assets: (for standelone games)
    • replace images
    • replace text
    • replace binary content
    • change asset header fields
    • Replace and view all strings in assembly

Support Unity3D Asset types:

  • Texture2D (support convert to PNG)
  • TextAsset
  • Mesh (support convert to Obj format)
  • AudioClip
  • Videop content (avi..)
  • Animations (animation, anitmator, animation clip, animation controller)
  • Materials
  • Sprite
  • Font
  • Shader sript (old unity) and other..

Export model to .unitypackage container

Export model To FBX format (base implamentation)

Formats resource file names:

  • level *;
    • mainData;
  • CustomAssetBundle- *;
  • CAB- *;
  • BuildPlayer- *;
    • .assets;
    • .sharedAssets and other..

Opening Standelone (win, mac, linux) game

Opening APK files with the ability to view and export the contents of the package.

    • .apk
    • .xapk
    • .obb

Opening Unity bundle files with the ability to view and export the contents of the package:

    • .unity3d;
    • .unity3d.lz4;
    • .assetbundle;
    • .bundle;
    • .bytes

If they can do it, we can do it too.

Mactastic1-5 commented 6 years ago

@Perfare The demo version available for download is just a demo. You can't preview scenes and assets, generate a Unity Project, export resources to a directory, export all prefabs, or make an APK.

Avatarchik commented 6 years ago

Yes there is a cropped version there is no code, you need a version, since the pre-release version was hacked quickly the author decided to cut out the functional with a demo version

Mactastic1-5 commented 6 years ago

@Avatarchik I was wondering why there was literally no code within the demo. The developer is advertising on Unity Community Answers. I see that the pirated version is all over the Internet. Maybe if he didn't want so much money for it when most of it is public domain, people wouldn't be pirating it.

Mactastic1-5 commented 6 years ago

@Avatarchik The online service will fail just the same if people have to pay a premium price. All of the download links are dead and I don't advise posting links to a forums where they frequently upload illegal content.

Mactastic1-5 commented 6 years ago

I would just like to point out that it isn't impossible to bypass the security he added to the program. He just made it more difficult.

Mactastic1-5 commented 6 years ago

@Avatarchik Are you even allowed to sell software that includes DLLs that aren't yours?

mafaca commented 6 years ago

I research his project. Sad, but he exports models and animation to Unity's internal format, so u can't open it with Blender and change it if u want. Btw, this internal Unity's format fairly easy to implement, so maybe UnityStudio should support it too?

Avatarchik commented 6 years ago

Btw, this internal Unity's format fairly easy to implement, so maybe UnityStudio should support it too? Yes!!! Stellarspace (I'm not a developer DevXUnity-Unpacker Magic Tools) I want to make a free alternative!

Avatarchik commented 6 years ago

As it is still interesting to export the whole project, more precisely how it exports scenes and prefabs in general ...

Mactastic1-5 commented 6 years ago

@mafaca With his program, you can only export to a Unity Package? Doesn't it say you can export to FBX? It's possible.

Mactastic1-5 commented 6 years ago

@Avatarchik Building on Unity Studio is a good start to making a free alternative. The user interface needs a lot of work.

Mactastic1-5 commented 6 years ago

@Avatarchik It is interesting how the program can create a Unity project from a .unity3d file. You can also view the 3D models and scenes within the program as well. You can see the DLLs the developer is using to do these things. I don't see why we wouldn't be able to decompile the program and add features to Unity Studio.

Avatarchik commented 6 years ago

In the demo version there is no functional, you need the full version to figure out what's what ...

Perfare commented 6 years ago

@mafaca It's a good idea, and I'll try to do it.

Mactastic1-5 commented 6 years ago

@Avatarchik Correct, so if I were to pay for the $38 one, I should be able to do unlock the $258 one.

ndv400 commented 6 years ago

@Stellarspace, just in case you didn't figure this out already: the download links on that Russian forum aren't dead, they appear in such a way (for no apparent reason) until you register. Had to find that out the hard way...

Mactastic1-5 commented 6 years ago

@Daniil1288 I didn't figure it out, I thought the links were actually dead. Thank you. Are any of them the activate version? I don't want to purchase the product or buy a key that is activated for 3 months when I am only going to use it once.

Mactastic1-5 commented 6 years ago

Rebuilding the project doesn't work properly. When I open it in Unity, it crashes. I wonder if it works on the newer version.

Mactastic1-5 commented 6 years ago

@Daniil1288 The developer doesn't even respond to emails. Why should I buy a product that doesn't work for what I need it for? I could buy it through Paypal and then file a dispute to get a refund if it doesn't work since the developer most likely won't give me a refund.

JuGGerNaunT commented 6 years ago

Unity's plugin https://assetstore.unity.com/packages/essentials/fbx-exporter-beta-101408 allows u to export Unity's internal format to FBX, so US definitely should support this internal format.

Perfare commented 6 years ago

Even if I lack of 3d model knowledge. I still try to accomplish this feature. check here I only tested Honkai Impact 3, I think it working fine in this game. But there are many things that need improvement.

mafaca commented 6 years ago

Wow. It is good news to hear that. Definitely, huge step forward to significant improving US. But it is sad to see that only new Animator component is supported. I hope u r planning to implement separation AnimationClip export, because old Animation component isn't work now. Besides, Animation Clip can be ship in separate asset bundles, so there is neither Animator or Animator component at all. As I remember it would be problems with AnimClip heirarchy if no mesh present in asset bundle, but I hope u could handle this case ) Anyway, even Animator dont work perfect yet. I tested it with animations from my work project and got nothing. FBX exported as binary type so i cant even tell on which state issue occures - on export or on Unity import. By the way, when i tryed to implement animation export,i faces the problem with high angle rotations. I cant test it, but i hoped ur work dont have such issue.

Perfare commented 6 years ago

@mafaca I will continue to support Animation and separate AnimationClip I also tested some files like this #116 "MetaToyHappy", looks like it work fine. In addition, in order to be able to export successfully, load assets and their all shared files to creating a complete Transform path is required

mhoangvslev commented 6 years ago

I really think the mesh export with skeleton has to be completed first. In games like Verdun, meshes are not in good order.

JuGGerNaunT commented 6 years ago

US requires more contributors in order to implement all desirable features. As i know, issue from this topic https://github.com/Perfare/UnityStudio/issues/104 still actual for FXB export. We need someone either who can fix it or write same unpacker as in project above.

Perfare commented 6 years ago

@mafaca Because export AnimationClip need Animator(Avatar) to get bone name info, So I finally added a new export method. You need to import the model and the animation assets together, use ctrl to select Animator and AnimationClip, Export - Animator with AnimationClip will work

Aircoookie commented 6 years ago

Hi Perfare, first off all, thank you for your awesome work! I successfully managed to export a FBX model with bones and textures (T-Pose)! Now I'd also like the animations for that character. So I tried your latest animation branch. Indeed I was able to find and export the AnimationClip file I wanted. However, I only get a file without a file extension which I can't import into Unity or any other application. You've mentioned I'd also need an Animator(Avatar) file, however I was unable to find that type of file in the Asset list. Do you have any idea where I could find this Animator Controller file? This may sound like a stupid question since I have no experience with Unity whatsoever, I'd just like to retrieve the model in the pose from the game for 3D printing. If it matters, I'm trying to get the "E3_S01B_Rachel_I_CurledUp" pose from the third episode of Life Is Strange before the storm (Rachels Room). Thank you so much for this!

Perfare commented 6 years ago

@Aircoookie I can't know where Animator is, you can try to load all the asset files

mafaca commented 6 years ago

"Btw, this internal Unity's format fairly easy to implement" © Hahah, "I've never been so wrong" meme. I started implementing yaml format few time ago and finally got some results. It works already with meshes, animation clips, materials, shaders and prefab structure (game objects + components) for assets with 4.x.x. version. Now i'm working on newer versions. I hope in a short period of time i will release it.

Nifty255 commented 6 years ago

@Perfare I've noticed 2 things in your animation branch that might be of importance.

Firstly, the Animation class isn't properly loading and therefore crashes any attempted export which involves them. It appears the class is misreading the number of AnimationClip pointers in the array. If this could be fixed, you're well on the way to a really easy solution for exporting animations, which brings me to my next point.

Instead of worrying about manual exporting of Animators and their clips, why not directly tie that into exporting 3D objects? During the FBX export process, you can search each GameObject for an Animation OR Animator component and then use the same functions you're using already to hit 2 birds with one stone and just write all of the associated clips directly into the 3D object FBX you're exporting.

Thinking about it, it might also be a good idea to write a second simple text file with clip start and end times for each clip exported to an FBX file, just so it can be used as a reference when importing back into Unity.

Perfare commented 6 years ago

@Nifty255 This is my mistake. I've fixed it. "exporting 3D objects" is export ascii FBX file, if I want to add functionality to the old code, I need time to research the ascii FBX format.

Perfare commented 6 years ago

@mafaca I wish you success

Nifty255 commented 6 years ago

@Perfare I noticed that the animation export system uses binary. Why not change the "export 3D object" code to use the same? It makes importing to Blender much easier.

Perfare commented 6 years ago

@Nifty255 In my plan, I will keep "export 3D object" and add a new option like "export 3D object (binary)"

Nifty255 commented 6 years ago

Awsm.

Nifty255 commented 6 years ago

Honestly, I wish you could just directly export AnimationClips to the Unity.anim format, but there's something in Unity preventing them from being properly recognized so you can't use them.

mafaca commented 6 years ago

As I see, currently animation export don's properly handle such situation as when Quaternion rotation shift from -170 to 170 degrees (which mean -190 euler). At least it look like so, because I also faced this issue when i tried to implement FBX animation export myself.

mafaca commented 6 years ago

Finally I released yaml exporter in my repository. It's a separate module which can be easily included in other project. I added console application with command line for test and as an example. Currently it supports prefabs, meshes, meshrenderers, skinnedmeshrenderers, animator, animation, avatars, legacy and generic animationclips, textassets and old shaders. In the near future I'm going to add support for 5.3-5.4 and serialized shaders.

atomixnmc commented 6 years ago

Hi, just pass by and want to say i really appreciate all your effort in developing the tools and this feature. I'm diving into the code right now and really feel the urgent of cracking this last bit!

I have a vision of exporting the whole asset bundle into an opinioned well-form unity project structure including source code. Animation is an important part of the process so i will stay tune with this thread's notification.

akderebur commented 6 years ago

I was looking at getting the legacy animations to export, using the clips from the Idolmaster game. So I was able to populate the track using the keyframe values in translation/rotation curves. There seems to be no problem with those values, but it looks like the keyframe interpolation isn't right.

It is probably because the in/out slope of the keyframes aren't taken into consideration during the interpolation. I couldn't find a way to provide that information to SB3Utility.

First I exported the animation just using the keyframes, and it looked like this : NoInt

You can see that there are some weird hand movements. I think the reason is the wrong interpolation, since it happens between keyframes.

After that I tried interpolating via code, before passing the frames to SB3Utility. So the value of the curve would be evaluated at each frame, and added to track, as if it is a keyframe. That fixed the hand movements but made the animation a bit jittery overall (this isn't the best way to do it anyway) : Int

I don't know if there is a way to fix this. Maybe it is possible to pass slope data to SB3Utility, but I didn't notice? If not, it might be easier to achieve that using ASCII FBX.

This stuff is mostly related to the exporter library, but I still wanted to let you know. Keep up the great work.

Perfare commented 6 years ago

@akderebur Can you upload a file?

akderebur commented 6 years ago

Here you go : Sample Files

One of the files has mesh and animator, other one has the clip. Both are bundle files.