FBX animation doesn't work


https://forum.reallusion.com/Topic153003.aspx
Print Topic | Close Window

By Colonel_Klink - 11 Years Ago
Hi All. This animation bit is giving me a headache, and I don't usually throw the towel in on things easily.

The problem:
A simple model created in 3dsmax 2013 has two animating parts (see download) http://robertwatt.com/downloads/test%20car%20ani%203a.FBX

But when set up in Iclone when opening one door at a time things are fine. But open door one then door two door one closes. The same goes if opening door two first then door one, door two closes.

It appears I'm missing something in the initial setup of the model in max, but for the life of me I cannot see what it is.

If some one could enlighten me of my errors I'd be most appreciative, otherwise it looks like most of my props will remain as simple static bystanders in the Iclone universe.

Thanks
Bob
By prabhatM - 11 Years Ago
Colonel_Klink (4/12/2013)
Hi All. This animation bit is giving me a headache, and I don't usually throw the towel in on things easily.

The problem:
A simple model created in 3dsmax 2013 has two animating parts (see download) http://robertwatt.com/downloads/test%20car%20ani%203a.FBX

But when set up in Iclone when opening one door at a time things are fine. But open door one then door two door one closes. The same goes if opening door two first then door one, door two closes.

It appears I'm missing something in the initial setup of the model in max, but for the life of me I cannot see what it is.

If some one could enlighten me of my errors I'd be most appreciative, otherwise it looks like most of my props will remain as simple static bystanders in the Iclone universe.

Thanks
Bob

Try Getting 3 independent FBX :
1) Left Door open
2) Right Door Open
3) Both Doors Open

You will have 3 morphs in your Morph List. Then call them independently. I am no expert. But thinking of a possibility.
By animagic - 11 Years Ago
I tried to replicate your problem. I imported the object into iClone and created 4 motions: door 1 open, door 1 close, door 2 open, and door 2 close.

And indeed, when I apply "open door 1", door 1 opens, but when I apply "open door 2", door 1 closes. Why?

It then dawned on my that when recording the animation for opening one door, the other door is closed. So the clip you are saving applies to the state of both doors. Since door 1 was closed when I recorded the motion for opening door 2, playing back that motion will cause door 1 to close.

I wouldn't immediately know how to solve this problem. What you need is some kind of hierarchy that allows motions to applied to individual parts without affecting other parts.

By Colonel_Klink - 11 Years Ago

Try Getting 3 independent FBX :
1) Left Door open
2) Right Door Open
3) Both Doors Open

You will have 3 morphs in your Morph List. Then call them independently. I am no expert. But thinking of a possibility.


Yes that would definitely work. Thanks.
I'm beginning to think that Iclone doesn't support what I'm trying to accomplish unless the doors are independent of each other as sub props. I might have to do that or as you suggest have multiple animations within each command.
Thanks
Bob
By Colonel_Klink - 11 Years Ago
Hi animagic
Thanks for confiming that I'm not going nuts Smile
That is what I concluded was happening too. The funny thing is when I export the same model to Unity I can have both doors open at the same time. The thing is in Unity the commands call each door independently, whereas in Iclone, as you say, the animations are essentially on the same animation timeline, whereas in Unity they are called from code not a timeline. When (if) we ever get lua scripting to control props this would overcome this limitation.
Cheers
Bob
By prabhatM - 11 Years Ago
Colonel_Klink (4/12/2013)
Hi animagic
Thanks for confiming that I'm not going nuts Smile
That is what I concluded was happening too. The funny thing is when I export the same model to Unity I can have both doors open at the same time. The thing is in Unity the commands call each door independently, whereas in Iclone, as you say, the animations are essentially on the same animation timeline, whereas in Unity they are called from code not a timeline. When (if) we ever get lua scripting to control props this would overcome this limitation.
Cheers
Bob


Your example has SubProps. But I am afraid it still may not work.

Interestingly, the solution is quite simple. You need RL's small attention.

A single timeline would work. But we need to tell the target where to stop. that means we need to define the Start and End Point of a clip. We do it often in interactive 3D when we export the 3dx MAX animations, we take a single timeline, but define the CLIPS independently by defining the Start and end points, then call the clips by Name. Something Like "On Click on Right Door" call the clip "OPEN RIGHT DOOR". Some people use a simple TXT or INI file to store these clipStart and clipEnd values.

"OPEN RIGHT DOOR", 1,250
"OPEN LEFT DOOR", 251,500
"OPEN BOTH DOORS", 501,1000

In 3dx, RL must allow the user to break a single animation into "virtual segments" and create independent Morph / animations / Clips, then allow the user to call them by name through right click in ICLONE.

May be ICLONE AML / Lua has this interactive support. Somebody got to do the exploration. But it would be nicer if RL allows all "Morphs with Slider" and "Animation Virtual Clips" through Right Click inside ICLONE.

Here perhaps you can do with 4 independent FBX, one extra for all doors closed.
By Colonel_Klink - 11 Years Ago
Yes I think you are right, there needs to be a method of starting and ending an animation clip because setting 3 perform commands 1. move up, 2 rotate left, 3. rotate right on a simple block in in Iclone has the same problems. e.g." move up" the block moves up. Rotate and the block resets to the place it was before moving up.
This means that there is a problem with the prop perform command as it stands.
I've exported a lua dramascript for the block object as below.
I'm just wondering if there is scripting code to get the perform commands to hold the previous position and to start next animation.
Cheers
Bob


code:
iObject = {
Clips = {
AnimationClip = {
[ 1 ] = {
ID = "rotate right";
TargetType = "Object";
ClipType = "Animation";
ClipLocation = "$";
Priority = {
[ 1 ] = {
ID = "01";
Node = "$";
Value = 200.000000;
};
};
TargetNode = "$";
};
[ 2 ] = {
ClipLocation = "$";
ClipType = "Animation";
ID = "rotate left";
Priority = {
[ 1 ] = {
ID = "01";
Node = "$";
Value = 200.000000;
};
};
TargetType = "Object";
TargetNode = "$";
};
[ 3 ] = {
ID = "move up";
TargetType = "Object";
TargetNode = "$";
ClipType = "Animation";
ClipLocation = "$";
Priority = {
[ 1 ] = {
ID = "01";
Node = "$";
Value = 200.000000;
};
};
};
};
};
Commands = {
Perform = {
PerformCommand = {
[ 1 ] = {
Persist = false;
ClipSeq = {
[ 1 ] = {
ID = "rotate right";
RefClipID = "rotate right";
Delay = 0.000000;
Loop = 1.000000;
};
};
ID = "rotate right";
HotkeyID = "None";
RightMenu = true;
DisplayName = "rotate right";
};
[ 2 ] = {
Persist = false;
ClipSeq = {
[ 1 ] = {
ID = "rotate left";
RefClipID = "rotate left";
Delay = 0.000000;
Loop = 1.000000;
};
};
ID = "rotate left";
DisplayName = "rotate left";
RightMenu = true;
HotkeyID = "None";
};
[ 3 ] = {
ID = "move up";
DisplayName = "move up";
Persist = false;
RightMenu = true;
HotkeyID = "None";
ClipSeq = {
[ 1 ] = {
ID = "move up";
RefClipID = "move up";
Delay = 0.000000;
Loop = 1.000000;
};
};
};
};
};
};
};
By prabhatM - 11 Years Ago
Colonel_Klink (4/13/2013)
Yes I think you are right, there needs to be a method of starting and ending an animation clip because setting 3 perform commands 1. move up, 2 rotate left, 3. rotate right on a simple block in in Iclone has the same problems. e.g." move up" the block moves up. Rotate and the block resets to the place it was before moving up.
This means that there is a problem with the prop perform command as it stands.
I've exported a lua dramascript for the block object as below.
I'm just wondering if there is scripting code to get the perform commands to hold the previous position and to start next animation.
Cheers
Bob





I guess you have to define a new parameter - "currentLocation"/ currentRotation.
Then clipLocation takes the value of your currentLocation.
After your first command, currentLocation = 40 ; So your clipLocation will be 40.

Basically $ should hold your new clipLocation. And it should work. This is just my 1st look suggestion.
By prabhatM - 11 Years Ago
sw00000p (4/13/2013)
It's not Rocket Science! iClone is simply NOT"Layering" the animation properly!

* Hoops 'n Barrels:
Break the animation in the 'animation' section of the timeline!
S P R E A D the open and close animations... FAR apart!

this is why I NEVER animate in iclone!


FAR APART ! Sorry I did not understand this part. Could you please elaborate it ?

I think if ICLONE simply stores values like below, it would work :

"OPEN RIGHT DOOR", 1,250
"OPEN LEFT DOOR", 251,500
"OPEN BOTH DOORS", 501,1000
By prabhatM - 11 Years Ago
sw00000p (4/13/2013)
Use the perform command to open on of the doors!

In the Timeline... Animation Section... Note the Animation Clip!

Ever so slightly... move the Slider to the 'End of the door opening!
NOW, Break It / Split the Clip!

Re-Collect it and add it to the library.

iClone Layering.... Azbackwards! Pinch


Yes, this should work.
By Colonel_Klink - 11 Years Ago
I don't quite understand this: "NOW, Break It / Split the Clip" does this mean collect the new animation segment?
Bob
By Colonel_Klink - 11 Years Ago
Hi swooop
Forgive my ignorance but having only been with Iclone for little over a month I'm still delving into the innards of the program. I do appreciate your help.
Bob
By Colonel_Klink - 11 Years Ago
Ok tried that on the animated block but when the block is moved up then rotated the block drops and then rotates. Crazy
By wendyluvscatz - 11 Years Ago
Hi Sw00000P,
I did this using driver get in for the jeep iMotion to use on another car.
and reversed the clip for driver get out.
I see in 3DX5 the jeep has target helpers attached to open doors boot etc.
I know this can be done manually on other props using the helper iProps and mechanic tools but wondered why even though it shows as having "bones" the jeep cannot be converted to a non-human avatar like many other fbx imports can ans so have a 'Persona" that could be applied to other cars with target helpers and motions of the same name?
Scripting is beyond my little brain but something simple like embedding motions to a prop is not that hard however getting avatar interaction embedded another story.
By Colonel_Klink - 11 Years Ago
Hi Swooop
Yes I do understand the concept of 3d and local orientation. It appears that Iclone hasn't got this implemented. I think a workaround is to have each door or window etc as a subprop and they have their own independent perform commands. I was trying to avoid this and just have a single prop with embedded commands.

CK,
Sir, I've done my best to help you!
My solution:
Bring in each object separately!
Each Object has it's OWN...embedded animation.
00 - 10: Open LF_Door
20 - 30: Close LF_Door
40 - 50, etc!
Link objects together within iClone! The perform command are combined for use!

I see how this works.
Another question however: Should the merge command make all the perform commands link to the parent object?

And no you are certainly not wasting your breath, Iclone is a new application for me your help is appreciated
Bob
By Colonel_Klink - 11 Years Ago
sw00000p (4/13/2013)
Colonel_Klink (4/13/2013)
Hi Swooop
Yes I do understand the concept of 3d and local orientation. It appears that Iclone hasn't got this implemented.


BINGO!

Tip:
Slow ya Roll until RL UNBLOCKS Lua Scripting!
Can't explain anything advanced... without scripting!
...otherwise, I'd just walk Ms. Wendy right through the Stinkin JEEP! Tongue



Tis all good sw00000p. I was using Antics before Iclone and was able animate stuff ok... even though the tools were limited.
Thanks for your help
Bob
By Colonel_Klink - 11 Years Ago
sw00000p (4/13/2013)
Hey Bob,

As soon as RL remove the LUA Scripting "Encryption"...
You're Going To Be in...
HOG HEAVEN! Smile



Smile
Looking forward to that, sw00000p. I enjoy a challenge, but sometimes my old brain just freezes up. I've been determined to get this working.
Bob
By Colonel_Klink - 11 Years Ago
sw00000p (4/13/2013)
Hey Bob,

When you get a chance, take a peek at the "iCar" setup!
Rap you head around this"Technique"...
It works!Smile

if you can create this setup.... You're problem is solved! Wink
___________________________________________________________

Dang LUA Script! Crazy

Open!Pinch Open!Pinch Open!Crying




hi sw00000p,
Shall do. Another idea I had was to create the model using a bone structure and then have it has a non human character. There will be work arounds I'm sure, but first I'll look at the icar.
cheers
Bob

By Colonel_Klink - 11 Years Ago
sw00000p (4/13/2013)
Please look at the iCar! It's right up your alley!
* You're a 'Scriptor'

As soon as you get a hang for it's "Schema"
You Got it made!

Note:
You CAN use "NotePad" and edit the file!

I simple don't have the patience!


Hmm. I don't have icar. I presume it is part of the icar bodyshop Sad
Does anybody know how to create or edit ianims, as I see some props use external ianims to move, perform etc.
Cheers
Bob
By Colonel_Klink - 11 Years Ago
Hi sw0000p
Couldn't find the icar, unless it is the one in the mechanics toolkit. But anywho, playing around with the aml editor (site says it's for Iclone 3, but I've been experimenting with the move commands, I know it isn't opening and closing doors. However it is interesting that the editor works, although with somewhat limited fuctionalilty, because unless we can create our own ianims and imotions we're pretty much stuffed. Having said that, however I have seen a few youtube videos of vehicles with working stuff.
Cheers
Bob
By Colonel_Klink - 11 Years Ago

YES! Now you're starting tounderstanding! Smile
That Technique is what "You Need To Learn!"

Yes, the 'Ol AML Editor still works, to a certain degree, but it's "SCHEMA!" still applies with g5.
Problem: AML Editor does NOT export correctly!

Perhaps I was mistaken, assuming you have programming experience! Ermm


I do have programming experience, sw0000p. For about 8 years I scripted models for VBS2. It was using a version of c++ script. Then more recently moved to javascript and C# within Unity. Also i have programmed in Visual basic, Blitz Basic, Dark Basic and a little bit of C#.
I have Iclone 4 so I'll do as you suggest try my hand at animating in there.
Aml looks straightforward, however user created external imotions and ianims looks like it's a nono as far as Iclone is concerned.
Bob
By Rampa - 11 Years Ago
The AML program didn't export properly in iClone 4 either, but the fix is really easy. And Yes, it works just as well in 5. You just need to clean it up in a text editor. It puts in lots of "$$" signs in the path names. Very easy fix.Smile
By Colonel_Klink - 11 Years Ago
Hi rampa
Thanks for that i will check it out.
Cheers
Bob