Dan's Orbiter page

Orbiter English => Orbiter English => Topic started by: dgatsoulis on 12 July 2020, 14:10:18

Title: Frame by frame animations in Orbiter
Post by: dgatsoulis on 12 July 2020, 14:10:18
I am posting further developments here, as to not hijack the [News] Update of OrbiterSound - UMmu - UCGO for Orbiter 2016 any further.

In case you haven't seen any of these animations. here is the latest video:


To answer a couple of questions I got in the previous thread:

I saw some "blinking" is that an artifical glitch or ?
Did you test with SetMeshVisibility of something like that. The main mesh contain all frame in mesh group and you "enable/disable" one group at a time.

The blinking is just a timing miscalculation on my part, I got it (somewhat) resolved in consequent tries.
The SetMeshVisibility method you propose has the potential of having the smallest impact on the framerate, but if one is economical with the number of groups in a single frame and the materials and textures, the impact for a 30 frame animation is very minimal, even for Spacecraft4 animations. (Spacecraft4 animations is the method used in the videos I've shown so far).

Of course, one needs to take into account that if these are used as Mmus, then you might end up with dozens of these on screen at the same time.

Any thoughts on how to adjust so you don't lose the feet to just under the surface on the running test?

No problem, a small adjustment in the .ini file setting the COG a few cm higher.

Now I know that I promised a tutorial, but unfortunately my Orbiter allocated time wasn't enough to create a fully detailed tutorial. 
What I can do, is give you an outline of the process and come back the soonest I have time, to include a more detailed version.

So here is the outline:

1. Create a humanoid mesh in .obj format, preferably with a single group and a single texture. (In the videos, I used a modified version of Kara.msh from the XR2Ravenstar addon). A "standard" T pose is perfect for this, but if you don't have one, it's fine.

2. Go to Mixamo https://www.mixamo.com/#/ (https://www.mixamo.com/#/), sign up and upload the .obj file.

3. Go through the auto-rigger process. (it's quite simple and doesn't take long).

4. Select an animation for your mesh and download it. Make a note of the number of animation frames.

5. Import the .fbx file into blender 2.82 - Use scale 100 during the import.

6. Select the Start / End frames of the animation and export from blender as an .obj with the animation box ticked. This will create an .obj file for all the selected frames in the animation.

7. Install a batch obj import addon in blender and create a new project (File→New→General).
(Batch .obj import addon here: https://blender.stackexchange.com/questions/5064/how-to-batch-import-wavefront-obj-files (https://blender.stackexchange.com/questions/5064/how-to-batch-import-wavefront-obj-files)

8. Press File→Import→Wavefront Batch (.obj) and select all the obj files you exported in step 6. (not the .mtl files). This will import all the animation frames in a single file.

9. Export as .obj and run ObjToAn8.
(ObjToAn8 link here: https://github.com/jombo23/N64-Tools/tree/master/objtoan8 (https://github.com/jombo23/N64-Tools/tree/master/objtoan8)

10. Import the .obj file from step 9 and export as .an8. You'll need to uncheck all the boxes.

11. Open the an8 file with a text editor and delete all the material entries, except the first.

12. Run the an8 file with anim8or, delete the remaining materials and create a new one with your original texture.

13. Select all the groups with CTRL-A and apply the new material. Export as an Orbiter mesh file.
(Orbiter mesh export addon for anim8or here: https://www.orbithangar.com/showAddon.php?id=5ce8e256-08bd-4410-a4cc-f5c5b3cad2d5 (https://www.orbithangar.com/showAddon.php?id=5ce8e256-08bd-4410-a4cc-f5c5b3cad2d5). It works with the latest anim8or version and the previous ones up to 0.95b

14. Open the mesh file with a text editor. Press CTRL-H and replace all of the following
^LABEL.* with [blank]

15. Go to the top of the mesh file and delete the double MATERIAL 1 TEXTURE 1 entry (lines 3 and 4)

16. Finally Press Edit→Line Operations→Remove Empty Lines. Save the file wherever you want in your Orbiter\Meshes directory.

Whew! Done! You have an Orbiter mesh file with its texture UV preserved, with all the animation frames as separate groups.

[To be continued, in the mean time, I'll answer whatever questions might pop up here]
Title: Re: Frame by frame animations in Orbiter
Post by: DanSteph on 12 July 2020, 22:27:21
Love the dance :badsmile:
Title: Re: Frame by frame animations in Orbiter
Post by: Djowin on 13 July 2020, 01:59:10
 :) :badsmile: Mais sérieux !!  :badsmile: :)
Elle sont dingues ces animations !  :wor: :wor:
Title: Re: Frame by frame animations in Orbiter
Post by: Joffrey on 13 July 2020, 18:41:22
Funny !
Title: Re: Frame by frame animations in Orbiter
Post by: Schmidtrock on 14 July 2020, 00:38:51
Simply brilliant!