align motion.....


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

By Darren01 - 13 Years Ago
I've never had much luck in mixing pre-set animation/motions with keyframe motions I have created myself. Usually I will start my own keyframe animation and then attempt to add a 'turn around', 'move to' or a walk animation somewhere along the animation. Problem seems to be whenever I have moved the character from the original x,y,z coordinates using transform, and then apply a pre-set animation, the character shoots back to the original x,y,z coordinates. Now this doesn't always happen in every situation, but I can't for the life of me figure out why it does it, when it does - which is more often than not.

Now I have read the 'align motion' chapter in the user manual several times. I have ticked the 'align motion' box (which supposed to stop this from happening!!) when applying the pre-set animation and the character still jumps back to the original coordinates. I have scanned the transform line and made sure there are no hidden, unwanted keyframes that could cause it. I have even removed the auto idle setting in an effort to overcome it, but no success. Usually I end up tediously keyframing the character back to the original position with several keyframes inserted into the transform track on the timeline in an effort to keep the character in the same position. Not only is it tedious, but it's not always a complete success either.

This seems to be an ongoing problem, and one of the reasons I'm hesitant to use the animation templates. Seems very clumsy and unpredicatable, maybe something RL needs to address in iC5

Has anyone else come across this same problem ?
By thebiz.movies - 13 Years Ago
Yes, Im in the same boat. Mixing two premade animations often involves good juju and plenty of black magic incantations. Align motion rarely seems to do the trick.
By The Mythical Dragon - 13 Years Ago
I've had the same issue. The frustrating part is that it's unpredictable. Sometimes the animation works just fine, other times it does not. Between this and the whole program crashing about 15 percent of the time I click on a color option in the modify panel I get very irritated. More than anything, I am hoping iClone 5 is more stable.





By mark - 13 Years Ago
I always thought it was just part of the joy in using iClone........NOTw00t
By Darren01 - 13 Years Ago
well I'm glad it's not just me! Usually it's me doing something wrong
maybe I should add this to the iC5 wish list
By Cricky - 13 Years Ago
If you want your motions to always line up, the motion build should always be at Ground zero...this means if you have to edit, collect and save it as a new motion, then that is what you have to do...make sure it starts where it ends....in other words it loops.

Those that start or end off center never line up when appended to existing motions or when motions are appended to them because they have an off-axis starting and ending point...therefore no loop.

A prime example is the Terms of endearment motion provided as a freebie in a past newsletter. I trimmed it and looped it so it starts at x=0, y=0 and z=0...when appended or used as a starting pose, the alignment will always work if the appended motion is also starting at Ground ZERO and ending at Ground Zero.

Free Sample Here - Download Link expires Sep 2011 Coddling Loop

There are loads of motions that don't line up just because of this obviously little known fact from those that create the motions in the 1st place...they should always end where they begin..even if that means adding the motion a second time and then using the reverse option.

If you place a character in the scene..not dragging them in, they always start at ground zero...if all the motions you plan to use are assembled there, they will always work...even if you have to collect them all in sequence and then break it down afterward...transforms to characters should never be made until ALL THE MOTIONS line up...this you can do in an empty project. The character can then been placed in any project use the collected motions and then be transformed/moved in place...break up and split then motions then.

Never fails !!!

By mark - 13 Years Ago
Good answer CrickySmile Thanks!
mp
By Darren01 - 13 Years Ago
Cricky, wouldn't the pre-set animation sequences/templates provided by iClone eg turnaround, move forward etc all be created with a zero x,y,z ?
By stuckon3d - 13 Years Ago
Darren01 (4/28/2011)
Cricky, wouldn't the pre-set animation sequences/templates provided by iClone eg turnaround, move forward etc all be created with a zero x,y,z ?


Hi Darren01,
while the info cricky gave you will help with some motion libraries, i think your problem is different, can you give me an example of what two motions you are using that are are snapping back to origin? Are they from a persona pulldown menus? if so, the problem is coming from an AML motion State parameter. The persona needs to be open, changed and resaved, for your problem to be fixed. I cant recall from the top of my head which one was the parameter, but if you give me the name of the two motions that are having problems, I can do a search on a text editor and then post the result of what to change here.

Cheers,

Stuckon3d
By Bigboss - 13 Years Ago
Can I jump in?

There are a few reasons why such behaviors, I believe cricky has provided the most likely explanation for your problem and I think I know where Stuckon3D is heading but I would like to share with you a few other points...

1) First off, for a character to continue where he left at when applying a motion segment, you need to have the ''SNAP'' feature working. The SNAP feature is automatically activated when you drag&drop motions on a given character but IT IS NOT NECESSARILY activated in the AML file generated for the persona thus right clicking on the character to invoke the motion may generate the wrong behavior. 

2) I have seen many Motion segments generated by third party with the root bone left at the origin. When this happens, your character actually continues where he left of when applying a new motion segments but his root bone being left at the origin by an erroneous motion causes him to simply continue from the origin, i.e. return to the origin.

3) If you used 3DXchange to import/create a nonhuman character, then you will never be able to resume your nonhuman character from where you left him because 3DXchange adds a residual root bone to non-human character which always remains at the origin. I have reported this BUG to Reallusion.

I would not be surprised that one of the above is the cause your problem, mostly 2) above if you have previously added motion that was converted to iClone from unknown sources.

NOTE: The parameter in the AML file is called ''Sample Transform'' and it needs to be set to ''SNAP''

Hope this helps! 

By stuckon3d - 13 Years Ago
Bigboss (4/28/2011)
Can I jump in?

There are a few reasons why such behaviors, I believe cricky has provided themost likely explanation for your problem and I think I know where Stuckon3D is heading but I would like to share with you a few other points...

1) First off, for a character to continue where he left at when applying a motion segment, you need to have the ''SNAP'' feature working. The SNAP feature is automatically activated when you drag&drop motions on a given character but IT IS NOT NECESSARILY activated in the AML file generated for the persona thus right clicking on the character to invoke the motion may generate the wrong behavior.

2)I have seen many Motion segments generated by third party with the root bone left at the origin. When this happens, your character actuallycontinues where he left of when applying a new motion segments but his root bone beingleft at the origin by an erroneous motion causes him to simply continue from the origin, i.e. return to the origin.

3) If you used 3DXchangeto import/create a nonhuman character, then you will never be able to resume your nonhuman character from where you left him because 3DXchange adds a residual root bone to non-human character which always remains at the origin. I have reported this BUG to Reallusion.

Iwould not be surprisedthat one of the above is the cause your problem, mostly 2) above if youhave previously added motion that was convertedto iClone from unknown sources.

NOTE: The parameter in the AML file is called ''Sample Transform'' and it needs to be set to ''SNAP''

Hope this helps!


"NOTE: The parameter in the AML file is called ''Sample Transform'' and it needs to be set to ''SNAP'' "

That was it , thanks BB. And he did say that he was using reallusion's default motions, plus I've seen this happen before when you try to go from a MOVE to a PERFORM or a PERFORM to a PERFORM move from some of the old personas. Some of the them have the "Sample Transform" set to "NONE" instead of "SNAP" Thanks again for the assist . Smile

Also Check out this link and scroll down.

By Darren01 - 13 Years Ago
thanks for all the replies guys, sorry I've been a while in replying. Have been away with work a fair bit lately, not much time for the fun stuff.

I shall have a look at that AML command, Stuckon3d, Bigboss
Just to clarify, the problem occurs whether I use one of the pre-set content manager animations eg turn left or the actors move commands eg move forward.

my current project where I'm having trouble is my actor is standing in front of the wheel on a sailboat steering it into shore. I've made a few minor movements of arms etc along way using the motion editor. When the boat hits shore, I've manually animated (using motion editor) the actor to jump up onto the deck - no problems at this stage. However as soon as I use the 'turn left' animation from the content manager, the actor jumps straight back to the original location at the steering wheel and then performs the animation. Likewise if I choose 'move forward' from the actor menu, he once again returns to the original position and moves forward from that point and moves forward through the hull of the boat.,,,,Crazy
By Darren01 - 13 Years Ago
update:

I just had a look at the AML file for the persona and can't find the SAMPLE TRANSFORM ?
It's the neutral persona, I've attached a link to the file below
By Bigboss - 13 Years Ago
Hi Darren,...

I added the SNAP attribute..

Load this file as an AML Persona in Dylan, then right Click, choose Move Forward from pulldown menu... Then Click with your mouse in front of Dylan, he willmove forward. Then repeat the same steps and he will continue from where he was at.

Hope this helps.

By Darren01 - 13 Years Ago
thanks bigboss, I'll give that a go
can I also apply that persona to the G3 clonecloth casual male ? (that's the character I'm using)
By Bigboss - 13 Years Ago
Yes, you can use this AML on any standard iClone Character.

Cheers!

By Darren01 - 13 Years Ago
thanks Bigboss, unfortunately it's still doing the same thing....Crazy
what probably further complicates the problem is the character is on the deck of a boat prop. So not only does the character jump back to the original x,y,z it then sinks through the boat onto the terrain. And because the boat moves, I can't 'add to terrain'.
I've even tried adding a path, which the character will follow right up until I add the walk animation from the content manager, then it jumps back to it's original position before disappearing under the boat somewhere....

I'm thinking the only solution is to finish the scene with the character still in the original position, save the project then clear all animation and save it as a new project and then join the 2 scenes together with my video editor. I intended breaking the movie up into seperate scenes anyway to keep the rendering time down, just means I'll have to cut the scene prematurely.

thanks to all for your assistance, I really hope RL does some work on the abnormalities/clumsiness of it's animation process, these sort of brick walls are what slows or even stops me from finishing projects. Things just don't work as they are explained in the user manual. According to the user manual, all this should have been avoidable by simply ticking the 'align motion' box. But of course it doesn't work
By colour - 13 Years Ago
What you're describing, Darren, happens to me all the time, 'cos i'm not fully conversant with the Program yet.

That being said, my amateurish workaround is to:

1) Have timeline set at 18,000 frames, to give sufficient leeway.

2) Once the Character is correctly positioned, Drag the Preview Screen Timeline Left-hand slider to that position. Then all Transforms, Commands etc prior to that, won't show.

3) Trial & Error; by clicking on all Keyframes before & after the set position, Deleting those that have the Character in the wrong position.

EG; Of the above, I've  several Characters riding horses, using  Right-Click Menu "Gallop" to selected point. But I wanted Characters to already appear seated on saddle, without the Rider Mount Right-Click Operate Menu. Moving the L/H Slider cuts that-out.  

By jcasko - 13 Years Ago
Thanks for the details.  It seems like the "best" solution would be for Reallusion to provide an option someplace where all the roots for a custom "collected clip" would be set to a default which would automatically align with the roots of any existing  motion without the need to build up every motion at the origin with the translations zeroized.   Maybe just making all the roots visible and allowing them to be manually aligned (or snapped) would help. 

The "Align Actor Motion" and "Reset Motion Root" check boxes in the Motion Panel seem to have a mind of their own.  I've run into big problems when building complex motions and then going to an earlier section of the project to add something like a walk along a path.  The existing positions of the character later in time get moved all over the place.

Thanks again for the hints.

By jcasko - 13 Years Ago
What tools are available for AML Script Editing?  The only reference I found on the Wiki is for an editor that works with iClone 3.

Thanks,

John

By Cricky - 13 Years Ago
sw00000p (12/27/2011)
jcasko (12/26/2011)
What tools are available for AML Script Editing? The only reference I found on the Wiki is for an editor that works with iClone 3.

Thanks,

John


Reallusion does NOT provide Help for iClone 5 AML!

In fact, they made it even harder to use. You use to be able to "Export" the persona and edit it!
Now, the exported Persona is "Encrypted"

You are now forced to go manually find the File in the iClone template folder, Persona!
Isn't iClone Fun!w00t



Actually you can edit the personas to a degree using a standard windows text editor. Change the extension of the File from LUA to TXT and open it after exporting it. Once finished, just rename the edited file back to a *.lua extension and you have a new persona.

You can also set up your system file option to open LUA Files with your favorite text editor automatically, but I will not go through basic system parameters for file associations because of so many systems operating out there.

You are correct in saying that there is no Help provided by RL currently, but hopefully this helps someone should they decide to delve into editing existing persona.

Below is the persona for Chuck - Exported as *.lua NOT *.iScript

****************************************************

iObject = {
Commands = {
Idle = {
IdleCommand = {
[ 1 ] = {
ID = "Idle 01";
DisplayName = "Idle 01";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Idle 01";
Delay = 0;
Loop = 1;
};
};
};
[ 2 ] = {
ID = "Idle 02";
DisplayName = "Idle 02";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Idle 02";
Delay = 0;
Loop = 1;
};
};
};
};
};
Perform = {
PerformCommand = {
[ 1 ] = {
ID = "Agree";
HotkeyID = "Perform1";
DisplayName = "Agree";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Agree";
Delay = 0;
Loop = 1;
};
};
};
[ 2 ] = {
ID = "Disagree";
HotkeyID = "Perform2";
DisplayName = "Disagree";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Disagree";
Delay = 0;
Loop = 1;
};
};
};
[ 3 ] = {
ID = "Have no Idea";
HotkeyID = "Perform3";
DisplayName = "Have no Idea";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Have no Idea";
Delay = 0;
Loop = 1;
};
};
};
[ 4 ] = {
ID = "Laugh";
HotkeyID = "Perform4";
DisplayName = "Laugh";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Laugh";
Delay = 0;
Loop = 1;
};
};
};
[ 5 ] = {
ID = "Say Hello";
HotkeyID = "Perform5";
DisplayName = "Say Hello";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Say Hello";
Delay = 0;
Loop = 1;
};
};
};
[ 6 ] = {
ID = "Surprised";
HotkeyID = "Perform6";
DisplayName = "Surprised";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Surprised";
Delay = 0;
Loop = 1;
};
};
};
[ 7 ] = {
ID = "Talking01";
HotkeyID = "Perform7";
DisplayName = "Talking01";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Talking01";
Delay = 0;
Loop = 1;
};
};
};
[ 8 ] = {
ID = "Talking02";
HotkeyID = "Perform8";
DisplayName = "Talking02";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Talking02";
Delay = 0;
Loop = 1;
};
};
};
[ 9 ] = {
ID = "Thinking";
HotkeyID = "Perform9";
DisplayName = "Thinking";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Thinking";
Delay = 0;
Loop = 1;
};
};
};
[ 10 ] = {
ID = "Idle 01";
HotkeyID = "Perform10";
DisplayName = "Idle 01";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Idle 01";
Delay = 0;
Loop = 1;
};
};
};
[ 11 ] = {
ID = "Idle 02";
HotkeyID = "Perform11";
DisplayName = "Idle 02";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Idle 02";
Delay = 0;
Loop = 1;
};
};
};
};
};
Move = {
MoveCommand = {
[ 1 ] = {
ID = "Walk";
ModeID = 1;
Type = "ForwardLRTurn";
Direction = "Forward";
MaxSpeed = 105;
Accelerate = 50;
Decelerate = 40;
RotSpeed = 50;
InitRotSpeed = 50;
ProbeDistance = 60;
PriorityMode = "Animation";
DisplayName = "Walk_Forward";
RightMenu = true;
ClipSeq = {
[ 1 ] = {
ID = "NewClipSeq";
RefClipID = "Walk_start";
State = "Accelerate";
Delay = 0;
Loop = 1;
};
[ 2 ] = {
ID = "NewClipSeq(0)";
RefClipID = "Walk";
State = "Striaght";
Delay = 0;
Loop = 0;
};
[ 3 ] = {
ID = "NewClipSeq(1)";
RefClipID = "Walk_end";
State = "Decelerate";
Delay = 0;
Loop = 1;
};
};
};
};
};
};
Clips = {
AnimationClip = {
[ 1 ] = {
ID = "Idle 01";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Idle\\Idle_01.iMotion";
};
[ 2 ] = {
ID = "Idle 02";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Idle\\Idle_02.iMotion";
};
[ 3 ] = {
ID = "Agree";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Perform\\Agree.iMotion";
};
[ 4 ] = {
ID = "Disagree";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Perform\\Disagree.iMotion";
};
[ 5 ] = {
ID = "Have no Idea";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Perform\\Have no Idea.iMotion";
};
[ 6 ] = {
ID = "Laugh";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Perform\\Laugh.iMotion";
};
[ 7 ] = {
ID = "Say Hello";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Perform\\Say Hello.iMotion";
};
[ 8 ] = {
ID = "Surprised";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Perform\\Surprised.iMotion";
};
[ 9 ] = {
ID = "Talking01";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Perform\\Talking01.iMotion";
};
[ 10 ] = {
ID = "Talking02";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Perform\\Talking02.iMotion";
};
[ 11 ] = {
ID = "Thinking";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Perform\\Thinking.iMotion";
};
[ 12 ] = {
ID = "Walk_start";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Move\\Walk_start.iMotion";
Priority = {
[ 1 ] = {
ID = "";
Node = "$";
Value = 1400;
};
[ 2 ] = {
ID = "";
Node = "$.RL_Spine01";
Value = 400;
};
};
};
[ 13 ] = {
ID = "Walk";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Move\\Walk.iMotion";
Priority = {
[ 1 ] = {
ID = "";
Node = "$";
Value = 1400;
};
[ 2 ] = {
ID = "";
Node = "$.RL_Spine01";
Value = 400;
};
};
};
[ 14 ] = {
ID = "Walk_end";
TargetType = "Character";
TargetNode = "$";
ClipType = "Motion";
ClipLocation = "$\\iClone Template\\Motion\\01_G5 Motion_Chuck\\Move\\Walk_end.iMotion";
Priority = {
[ 1 ] = {
ID = "";
Node = "$";
Value = 1400;
};
[ 2 ] = {
ID = "";
Node = "$.RL_Spine01";
Value = 400;
};
};
};
};
};
};
By jcasko - 13 Years Ago
Thank you swooooop and Cricky,

I'm starting to have luck with the work-arounds.  I have human, nonhuman and prop objects doing complex animations in a detailed 3D world in a surprisingly short period of time.  That's the good side of iClone.

I'm using XML Notepad 2007 for the AML.  It's frustrating as an end user to note that the lua files have effectively the same form as AML.  Considering the short file size and very limited syntax of the Persona, why anyone would waste time adding lua and/or packed iScipt formats hurts my head.  Why don't they do something useful like the ability to output a CTS file as part of a collected clip or add a simple option in the motion editor to lock feet to keep them from sliding. If I get motivated, I may write a quick parser to change LUA to AML just so the cycle for developing animations isn't so clunky and painful.  But when the next IC5 change comes out - who knows what will or won't work after that.

RL seems to be going for the record on having the most number of file and format types for any single product.

Thanks again for the help,

John