Problems with transforms

I am using MAX.

Got kind of a weird one off problem with my rigs. I have a setup that allows the animators to animate from the hips(COM), but there is a locater root(ROOT) that follows along at the base of the character. The COM is a child of the ROOT, needed for the export, so the follow along is handled through a circular dependency to the ROOT. This setup works great until the character turns around. This causes the COM’s y-axis to invert, inversing the manipulation in the view port but, that animation curves are fine. This annoys the hell out of me and then animators and is just not good in general.

I know that this is cause because the maxscript forcing the circular dependency is operating in parent space and the ROOT has no parent, so when it rotates around the gimbal does not follow. I can’t however figure out how to fix it. I thought maybe adding a parent to the root that rotates but this is not really working because it effect the position of the whole character then.

Any ideas?

if you use a list controller maybe you can stack an extra rotation controller in there to create wold_spacer_animated with script rotation .
or use a tcb? instead of eular, controller to help with the fliping.

I am guessing you all ready check that your rotate order is correct so that the transforms get evaluated correctly when you turn the character around.

doh, hit the post button twice… twitchy trigger finger.

[QUOTE=bclark;1271]if you use a list controller maybe you can stack an extra rotation controller in there to create wold_spacer_animated with script rotation.[/QUOTE]

Paul Neale suggested something along these lines, taking the transform matrix and moving it into the correct parent space, then reapplying it. I have to say though I really don’t understand that method. Maybe I am just thinking about it in the wrong way though.

See his responses here
http://forums.cgsociety.org/showthread.php?p=5379507

ah yeah. that is a good thread… paul and eek on there,

but… first off. don’t get to complicated to fast… first try and fix your gimbal issue

I used to just do this root com separating because our exporter did not support motion stripping as an option and I asked the programmers to add it in as an export to deal with motion stripping from root to com etc… by reading a custom attribute off of the root node. that way animation can do what ever they want on the root and it will export correctly.

its late, sorry that does not add any value or help really to your problem.

hard to tell with out sample files… you could do a http://www.jingproject.com/ capture of just your rig with its problem (no skin of course to keep out of trouble)

Here you go. In the attached file (MAX 9 sp2) there are the two point helpers. The keys are on the COM, the top one, and you can see that the movement is fine. If you try to manipulate the COM after frame 20, after it does the 180 turn, you can see how all the controls are messed up though. I guess we can start there.

I have started to look into some of the transformation math that was referenced in the other thread but and running into a different set of problems with that.

Thanks for the help.

Hey Chad,

The root gimbal will not rotate unless it’s parent rotates, and since it is parented to the world, you will run into this problem.

Regarding your question about the dependency loops with script controllers, I usually use a 3rd object, much like you would use an exposeTM helper, and place the script in that object’s scale controller. I then position constrain this 3rd object somewhere in the rig.

Just have to remember that the script will not update unless one of the script variables’ reference updates in the scene. So you would add a root variable to that script controller, and assign it to the root node; same with com. Now every time you attempt to move one of them, the script will be executed.

I’ll have a go with your scene and see if I can figure out anything. Good luck.

edit: oops, noticed I posted on the wrong forum. The script controller note is re: the cgtalk thread. Sorry about that.

bedevilbecomedbeerebeautballoon

数字技术:又称数码[b]录音[/b]技术,是通过计算机中的数字音频接口,将(话筒或其他)音频信号,导入到计算机,[b]电话录音卡报价[/b]录制成波形文件进行存储,再通过多轨录音软件按照需要进行编辑(包括复制、剪切、粘贴),组合成我们所需要的完整文件,最后再输出录制成CD或其他音频格式。 [b]录音[/b]这种技术,就像我们编辑Word文档那样简单,进行拼接、删减、整合,实现了无损编辑。 [b]电话录音卡价格[/b]在录制歌曲中的意义在于:可以从数次录制的同一首歌曲中选出较好的,重新组合成一个新的音频文件,用于制作出成品音频。 多轨录音:多轨录音就是通过多轨录音软件,[b]电话录音卡[/b]同时在多个音轨中录制不同的音频信号(最多可实现999轨同时录音),再通过后期编辑制作、缩混等程序,最终输出一个完整的音频。有时候,还可以在不同的时间在不同的音轨上分别录制,录制成的波形文件可以进行多项编辑。目前,本录音棚使用的是在欧美非常流行的cubase。