Jump to content
Hash, Inc. Forums

Archived

This topic is now archived and is closed to further replies.

Fuchur

How to export from A:M to a game-engine...

Recommended Posts

Hi guys,

 

I just wanted to let you guys know that there is a new tutorial on how to export from A:M to Unity (a gameengine using the FBX-format) on my website.

Video-Tutorial: A:M2Unity3d.

 

Another tutorial can be found here about how to export from A:M to Quest3d. (a 3d engine using the directX-format)

Video-Tutorial: A:M2Quest3d.

 

Hope you find them useful!

 

See you

*Fuchur*

Share this post


Link to post
Share on other sites

Thanks, Fuchur, and thanks for being the go-to guy for A:M-to-game knowledge!

Share this post


Link to post
Share on other sites

What version of A:M did you use, Fuchur? I have not been able to export from A:M16. It just crashes when I try to export an Action. I'll go back to A:M 14 and see if that works. :(

Share this post


Link to post
Share on other sites

No Problem guys :). Go on and show us what you can do with it ;).

 

What version of A:M did you use, Fuchur? I have not been able to export from A:M16. It just crashes when I try to export an Action. I'll go back to A:M 14 and see if that works. :(

 

v16... it depends on what you are trying to export. I think that it can be trouble-some if you try to export a model with certain properties, poses or smartskins which are not supported by the exporter...

could you upload your project-file so I could have a look at the file and see where the problem may be?

 

See you

*Fuchur*

Share this post


Link to post
Share on other sites

I tried it on another PC and received an error message about no vertex weighting on the eyeballs of my model. I haven't used any smartskin and I have baked all dynamic motion and I have turned off any SSS that was enabled. I do have some "mutation" poses that I will remove, on a new version of the model, and see if that was the problem.

Thanks.

Share this post


Link to post
Share on other sites

Paul, I assume you are trying to export actions made with the TSM2 rig?

 

Try this, bake the action and delete all bone data, from the action, other than the geometry bones. You will need a version of your model before running the TSM2 rigger. Open the model (geometry bones only) and the baked action into a new project. Test the action to make sure the action works. If it does, try exporting the model and action, to see if it still crashes.

 

I assume A:M is crashing because of the control rig.

Share this post


Link to post
Share on other sites
Paul, I assume you are trying to export actions made with the TSM2 rig?

 

Try this, bake the action and delete all bone data, from the action, other than the geometry bones.

 

And I'll note that if this is something you should end up doing frequently, you can make a Selection Filter of the bones you are about to delete, making it easy to select them in future instances.

Share this post


Link to post
Share on other sites

Thanks Fuchur! I'm sure I'll be in need of this sometime in the future.

Share this post


Link to post
Share on other sites

For all the export-data to a game-engine I would recommend to use your own rig without any constraints. Just plain FK without much more.

Not that easy to animate, but that should help anyway. I will have to test it again, but I think it could be the constraints, especially the InverseKinemativConstraints...

 

See you

*Fuchur*

Share this post


Link to post
Share on other sites

It would be interesting to know, if some of the most common riggs are better suited for gameexport then others.

Maybe, that`s were the simple rig or 2008 rig have great advantages compared to the TSM and squetch rigg?

Share this post


Link to post
Share on other sites
Paul, I assume you are trying to export actions made with the TSM2 rig?

 

No. I am using my own very light rig, (about 60 bones including a face rig and control rig). My rig does use IK but I was intending to bake my Actions and then delete all but geometry bones. Unfortunately the only option to bake in an Action that I can see is for dynamic bones. Baking Actions from within a Choreography doesn't create a key on every frame for every bone.

Share this post


Link to post
Share on other sites
Baking Actions from within a Choreography doesn't create a key on every frame for every bone.

 

 

It doesn't ? I thought there was a 'Reduce Channels' option box that popped up and if you set it to '1' (default) it would make a key on every frame--- or do I have this wrong?

Share this post


Link to post
Share on other sites

I tried this...

 

I exported my Chor action as an action, loaded the action, deleted my original chor action and dropped the exported action back onto the character, then Baked all Actions with a tolerance of 0 and I got a key on every frame on every bone.

Share this post


Link to post
Share on other sites
I tried this...

 

I exported my Chor action as an action, loaded the action, deleted my original chor action and dropped the exported action back onto the character, then Baked all Actions with a tolerance of 0 and I got a key on every frame on every bone.

 

A little bit of a indirection, but however you want and what works ;)

Every frame on every bone is normal. The exporter works like that to prevent problems with interpolation-differences between programs.

 

Deleting all the bones is of course no option so... the exporter can't handle cp-animation! Only cp-weightening and bone-animation. (I dont think that the directX-format supports anything else).

So baking and deleting all the constraints may work, but baking and deleting all the bones will very likely not work. (I didnt test this, but I dont see how it should work).

 

See you

*Fuchur*

Share this post


Link to post
Share on other sites

so coming back to my question from above:

 

It would be interesting to know, if some of the most common riggs are better suited for gameexport then others.

Maybe, that`s were the simple rig or 2008 rig have great advantages compared to the TSM and squetch rigg?

 

 

if I understand that right, the fewer bones and constraints a rigg has the (ligther) better it will be suited for export to

a gameengine, right?

For humans, that would favor the light rigg, I guess?

Share this post


Link to post
Share on other sites

I have been using my own simple rig for all of my recent tests.

 

I have created two versions of the same model. One has a geometry rig, control rig, constraints and poses. The second is a copy of the first but with all constraints, control bones and poses removed.

 

I create three Actions with the fully rigged model and place them in sequence on the fully rigged model in a Choreography. I then bake any dynamics, bake all actions and save the choreography as a new Action.

 

The new Action is imported and assigned to the simple geometry rigged model in a new choreography. The results are disappointing as the legs are distorted and the eyes roll up into the head. This seems to indicate that the geometry bones are not assigned all of the transformation data when baking.

 

(I did make a screen cap video to demonstrate but the file size is too large to post at about 18MB)

Share this post


Link to post
Share on other sites

That method should work- and I would think it should be the preferred method no matter which rig you start with. The 'bake' should make a keyframe for each CP on every frame with distinct XYZ placement values, I wonder if you missed a step or what... did you employ the 'Gormezano Method' which is to save and close A:M before you do the 2nd part, or even after is all said and done and you have the weird results... save as... close A:M... reopen all to see if your fate has changed...

Share this post


Link to post
Share on other sites

Hi guys...

 

I just created a small Test-Game using Unity and A:M.

It is really nothing special - I just wanted to test the workflow. You can navigate a small character created with A:M with different animations applied through a terrain and shoot hammers (although created with A:M) on EnemyTowers (although created with A:M). They are all more or less just testobjects, but I think you will see the potential in this example. It has been created in about 3 days with learning to script in Unity.

 

For this, I used another workflow, which is even a little easier and less expensive than the other one.

> A:M with DirectX-Export > Ultimate Unwrap with FBX-Export > Unity.

 

It worked very well and is very straight forward...

I will create a video-tutorial on the workflow and very likely offer my working- and project-data to you, so you should be ready to go for yourself.

 

See you

*Fuchur*

 

PS: Game is till now only available to windows-users... (*.exe)

 

PPSS: Please extract the files to your harddisk in one folder.

Now includes the data-folder as well.

hitboy_01.zip

Share this post


Link to post
Share on other sites
Hi guys...

 

I just created a small Test-Game using Unity and A:M.

 

when I run the exe I get

 

There should be 'hitboy_01_Data'

folder next to the executable

 

 

something is missing from the zip?

Share this post


Link to post
Share on other sites

Hi Robert,

 

thanks for letting me know... I uploaded the file again with the data-folder.

Unity is very new to me (started dealing with it just yesterday) so I was not sure what I had to pack into the zip.

 

Please extract the files to your harddrive in one folder.

 

See you

*Fuchur*

Share this post


Link to post
Share on other sites

hmmm... I unzipped the zip and there is a data folder now but I still get the same error. :blink:

Share this post


Link to post
Share on other sites
hmmm... I unzipped the zip and there is a data folder now but I still get the same error. :blink:

 

I had to rename the folder from "hitball_01_Data" to "hitboy_01_Data". Looks promising.

Share this post


Link to post
Share on other sites
I had to rename the folder from "hitball_01_Data" to "hitboy_01_Data". Looks promising.

OK that worked. That is indeed promising Fuchur.

Share this post


Link to post
Share on other sites

Excellent work, Fuchur! That looks like a much better pipeline. :)

Did you have to bake your Actions before exporting the .X file?

Share this post


Link to post
Share on other sites

ah, the old rename-the-folder trick!

 

Yes, that looks promising. Does this engine have any options for lighting such as shadows?

Share this post


Link to post
Share on other sites

It looks like the essential elements are there! I suppose for most A:M users the scripting part of it would be the biggest unknown to conquer.

Share this post


Link to post
Share on other sites

Great tutorial! I actually just spent some time this evening watching several of your tutorials and found all of them informative! Thanks for making them!

Share this post


Link to post
Share on other sites
Excellent work, Fuchur! That looks like a much better pipeline. :)

Did you have to bake your Actions before exporting the .X file?

 

As far as I understand it, you dont need to do that. The directx-exporter automatically exports the actions baked and does it when exporting without the help of the user.

 

The free version of Unity doesnt support realtime shadows (so there is nothing that holds you back from faking some using models), if I am not wrong. Just the Pro version supports realtime shadows so. But lightening is already used. I just used a Sunlight to get the game going, but you can use all the basic light-types that are available in A:M too - just without shadows.

 

@largento: No problem ;) That is what they are there for :)

 

See you

*Fuchur*

Share this post


Link to post
Share on other sites

Great! I have ordered Ultimate Unwrap Pro. :)

Thanks again for your investigations.

 

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

Edit:

My registration code arrived so now I am playing around with Ultimate Unwrap and have imported some exports from A:M with 100% success! This is brilliant! However on trying to export a 1 second animation from A:M16 I encounter this problem:

post-183-1309775407_thumb.jpg

I've never seen that message before. Yes, I did export the model first.

Any ideas? :)

Share this post


Link to post
Share on other sites

Sorted!

 

I rebooted A:M, loaded my model, and associated Actions, and then exported again. It worked this time and the model and animation came through into Unity without any problems. Hooray!

 

Well done, Fuchur! This is a great pipeline into Unity! :)

Share this post


Link to post
Share on other sites
I suppose for most A:M users the scripting part of it would be the biggest unknown to conquer.

 

Anyone have any insight on this aspect of Unity?

Share this post


Link to post
Share on other sites

Unity comes with some scripts to get you up and running immediately. There is also a large community and an online shop where you can purchase, and sell, assets. The scriopting language, java I think, doesn't look like it would be too difficult to pick up.

Share this post


Link to post
Share on other sites
Unity comes with some scripts to get you up and running immediately. There is also a large community and an online shop where you can purchase, and sell, assets. The scriopting language, java I think, doesn't look like it would be too difficult to pick up.

 

Actually it is JavaScript-based (Java is something totally different)... but you can code in different languages like JavaScript (a few difference are there, but they are small), C# and Pyton and possible some more.

 

I will upload my tutorial this evening and you will get some infos on good tutorials for learning Unity and Beginnertutorials for Scripting in Unity too.

 

See you

*Fuchur*

Share this post


Link to post
Share on other sites
Great! I have ordered Ultimate Unwrap Pro. :)

Thanks again for your investigations.

 

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

Edit:

My registration code arrived so now I am playing around with Ultimate Unwrap and have imported some exports from A:M with 100% success! This is brilliant! However on trying to export a 1 second animation from A:M16 I encounter this problem:

XporterError01.jpg

I've never seen that message before. Yes, I did export the model first.

Any ideas? :)

 

Seams like A:M has not yet associated the action correctly to the model.

-> You are asked before you create an action in A:M to which object it should belong. Maybe somewhere there is the problem, so in general there should be no problems with that...

 

See you

*Fuchur*

Share this post


Link to post
Share on other sites

Hi guys,

 

as promised, here is the video-tutorial on the even easier pipeline from A:M to Unity using Ultimate Unwrap 3d (about 50-60 Dollars).

 

I provided the project-data of my A:M project, the video-tutorial, links to the programms and a link to the tutorial I used to learn enough from Unity3d and scripting to produce the game you can see at the first post of this thread.

 

A:M2Unity3d - Using Unwrap3d to export to FBX

 

Have fun with it and let us know about your creations!

 

See you

*Fuchur*

Share this post


Link to post
Share on other sites

Hi Gerald,

 

In coming back from my summervacation to Denmarck ( a very nice country indeed with very nice people and so near to my place!!!) I am finding your very, very interesting experiments.

 

I will try out your game tomorrow at my workcomputer.

 

All this is very promising.

I read an article in 3D world mag about the future of 3D in about 10 years and they stated, that moviemaking by then would be most probably realtimebased, so that moviemakers could do their projects in realtime, meaning that the gameengines will be the pacemakers for this development.

AM could be probably good for that also, so its a pity that Hash doesn`t have enough resources to spread into that field, but maybe

just make the AM formats export directly into unity would help also?

 

There once was some contact about this to some guys from unity, if I remember correctly....

 

(>("although" created with A:M)

Don`t take me wrong, I would like to be corrected, too, in order to learn the better....;>) )

 

 

see you

 

Jost

Share this post


Link to post
Share on other sites
Hi Gerald,

 

In coming back from my summervacation to Denmarck ( a very nice country indeed with very nice people and so near to my place!!!) I am finding your very, very interesting experiments.

 

I will try out your game tomorrow at my workcomputer.

 

All this is very promising.

I read an article in 3D world mag about the future of 3D in about 10 years and they stated, that moviemaking by then would be most probably realtimebased, so that moviemakers could do their projects in realtime, meaning that the gameengines will be the pacemakers for this development.

AM could be probably good for that also, so its a pity that Hash doesn`t have enough resources to spread into that field, but maybe

just make the AM formats export directly into unity would help also?

 

There once was some contact about this to some guys from unity, if I remember correctly....

 

(>(although created with A:M)

Don`t take me wrong, I would like to be corrected, too, in order to learn the better....;>) )

 

 

see you

 

Jost

 

I think about the realtime-stuff you are totally right, so I don't think that a game-engine is the most easy way to create movies with it. A little too hard to create different motions which are not predefined with it... Steffen is currently working on OpenCL-integration (graphiccard based calculations, which can speed up some operations mainly connected to rendering) which is a very promising technology. It can speed up calculations in certain areas with a single graphiccard compared to a multi-core-computer (4x for example) for about 1000%. That would be a huge performanceboost and would make it easier to use even very advanced techniques like AO or Radiosity in a much faster way.

 

And dont forget: We already gained much performance with the release of v16.

 

Gameengines are very well suited for games and 3d-applications. Movies need a little more of preperation and while rendering and previewing your output will very likely become realtime, the creation-part will not be like that. It is one of the best things about 3d-animations: You can always go back again, move the hand a little closer to the body because it looks a little better etc. That is the stuff that game-engines can not do too easily. Playing predefined actions is their strength. Not altering them.

 

See you

*Fuchur*

Share this post


Link to post
Share on other sites

You are completly right, its just that much of the developmentpower will come from the gameengines and their specific needs and the rest of the 3D-software will profit from that boost.

Share this post


Link to post
Share on other sites
You are completly right, its just that much of the developmentpower will come from the gameengines and their specific needs and the rest of the 3D-software will profit from that boost.

 

Yes, I think you are right... it is just one of the biggest industries in the 3d area and like that will very likely output more innovations than other stuff..

 

See you

*Fuchur*

 

PS: Just to let you know: In another thread I posted another small Unity3d-example showing of some infos about my new audiointerface Roland VS-100. Hope you enjoy it!

LINK

Share this post


Link to post
Share on other sites

>If the obj importer could identify a single vertex on an edge and create a hook and interpret a 5 point n-gon and create a 5 point patch I think this would solve most of the issues.

 

 

This was the main reason, why Hash retracted from cg talk, because he was fed about about these endless discussions and lack of understanding, why A:M doesn`t fit into the polygon world workflow.

 

I don`t know of the status of today.

Maybe we could ask Yoda and Fuchur, if some featurerequests in that direction would make sense.

 

It seems to me, if a bridge could be build (and the new mdd is promising), there could be a pipeline for building gameassets in that form: model highpoly models in one of these specialised sculpting apps>retopology that to lowpoly> bake and transfer all the highpolymaps to the lwopolymodel> import that into A:M > ANIMATE ALL GAMEMOVEMENTS EASILY IN A:M >and export as FBX to the gameengine.

 

As I said, its possibly out of the range to achieve this, but why not ask?

Share this post


Link to post
Share on other sites

×