Jump to content
Sign in to follow this  
deecue

Time Remapping

Recommended Posts

i have an animated character and i would like to remap the speed of his motion to give him a little bit more varied and exaggerated movement. so the two options i see at hand are to manually squash/stretch/move keys in the dopesheet or use a spare channel along with chops to have a curve adjust the speed of my animated channels..

since my experience with doing this in the past is limited, i am wondering what people's thoughts are on the two methods.. have any of you drudged through this before and do you have a preference (chops or by hand)? which has more control in your opinion? what's good as far as ease of use/intuitiveness and how quickly changes can be remade? also, if you prefer the chop/curve method, do you prefer doing it based on rate or index? i'm used to the index style from different NLE's time-remapping functions for video footage and such.. but i'm wondering if the rate method is a better one...? just any thoughts or comments any of you would think to be appropriate would really be great..

now on to more concrete questions:

1. The help browser mentions of chops demo's in $HD/CHOPS.. i have no CHOPS dir in my demo folder... is this stuff old and not there anymore? is it new and possibly supposed to be in H8? either way, that timing1.hip sparked my interest from the help browser and i can't seem to find it anywhere.

2. Besides using the warp chop, i considered bringing in my position data of the character's channels, run it through a slope chop to get it's velocity, use a math chop as a multiplier between the velocity and my fetched "speed" channel, and finally use the area chop to get back to positional data to export back to the character. first, is there any point in doing that method? second, is that exactly what the warp chop is doing anyways? and third, if you take the slope (derivative) of a channel and then immediately take the area (integral) of it, shouldn't you have the original curve you started with? high school math seems to remind me that's what should be happening, but it's not that way in chops. if i run a channel through a slope chop and then area chop (both set to first order), i get a different result than the original curve.. why is this?

any help, as always, is appreciated.

thanks everyone,

dave

Share this post


Link to post
Share on other sites

if all this is only because of the experiment, then do it in both ways.

If it is for nice quality production, then better stay away from motion mixing. In most cases the mixed stuff will not meet what your leads required by you and this will screw you up.

If it is for game character animation, then better stick with the mixing - fast and easy way to blend between different motions - it is little bit dirty, but fast working approatch.

:)

Share this post


Link to post
Share on other sites

hey peship,

thanks for the response.. unfortunately i don't really fall under any of those categories.. ;)

one, i don't have the time right now to experiment like i would like to.. (good note for the future tho).. two, while i want to maintain a level of quality, i'm just running solo on this one.. no leads above me or shot team to integrate with.. and three i'm actually not doing any motion mixing from a library collection of moves and such.. it's all straight forward animation.. i'm just thinking about when it's all done, should i try to tweak a massful of keys or try and implement a time curve to adjust the speed back and forth.. as twod over at the sesi forums mentioned, some manual work will probably need to be done either way to maintain naturality (is that a word?) in the animation.. i just thought it'd be a good idea to stop by here and see if anyone had experience with this in the past and could drop by a few hints or pointers plus any fallbacks/issues they came across through the process..

thanks again. :)

Share this post


Link to post
Share on other sites

I've used the time warp chop in index mode (way to fiddly to hit markers in the rate change mode) It worked like a charm, very simple. Basically used it to take mocap and mix between ultra slow-mo and normal speed so I could move the camera in to focus on certain musle actions. Works well in that situation. In rate mode it's way to easy to end up running the animation backwards, and if you know you need a certain bit of action at a certain frame the index mode is easier to tweak.

Share this post


Link to post
Share on other sites

hey simon.. thanks for the input.. yea i'm still trying to grasp which method i like better (index vs rate).. i've found each method to have it's own quirks in regards to my controlling them.. so we'll see which one feels more natural in the end.. either way i'm definitely going to be atleast doing some time warping just because i like the idea of doing it and it seems to be pretty responsive to making changes and such..

Share this post


Link to post
Share on other sites

alright, just rehashing this a bit..

say i have a scene with craploads of animated channels from all different areas, objects, and levels.. in the end i just want to warp the whole dang "animation".. is there a way to possibly just warp my whole timeline so that i don't have to go and hunt down and fetch every little thing that might have a channel on it just to find out that i missed that invisible spare channel over there and one param of this one sop over here, etc etc..

thanks all,

dave

Share this post


Link to post
Share on other sites

hmm.. could be very useful but i can't seem to get wildcards working..

i.e. to see all the channels located in objects that start with 'right',

chls /obj/right*

returns nothing.. however,

chls /obj/right_arm_goal

does. heck, i'd just like to say

chls /obj/*

but of course that doesn't seem to work either.. are the wild cards meant to be a wild card for the channel names and not the node itself?

actually.. hey hey.. i just went in to chops thinking ok, even if i get this chls information, how do i go about quickly getting it in to chops.. so i went to chops and just figured, why not use wildcards in a fetch? so i did that and presto, not a problem.. it killed my processor for a little while trying to gather it all up.. but once i set it to only view non-constant, it wasn't that bad.. plus, i just ended up saving out the channels to file and reading them back in.. merged the obj and sop channels since i fetched them seperately, then time warped the whole thing and exported back... the only thing to watch out for is to make sure the fetch is retrieving full path channel names so that when the file is read back in and exported, they all go back to the same place..

would still like to know about that chls wild card for future reference though..

thanks,

dave

Share this post


Link to post
Share on other sites

something i noticed that sesi may want to take a note of is that if i'm saving a channel(s) to file, i don't get an overwrite warning dialog when saving a file to the same name.. not a big deal, but if someone wasn't watching what they were doing... :o

Share this post


Link to post
Share on other sites
...

would still like to know about that chls wild card for future reference though..

19464[/snapback]

Hmm... I tried

chls -a /obj/*

And it seemed to list everything... Is there anything special that happens when opening the scene?

George.

Share this post


Link to post
Share on other sites

yea, listing all channels (-a) seems to work fine with the wild card.. but if you only wanted to view created channels, then

chls /obj/*

returns nothing even though i know for a fact that animated channels exist.. (i just tested this on a default startup with a single created channel on the model object)...

viewing all channels doesn't really help out when hunting down which channels contain keys..

Share this post


Link to post
Share on other sites

:)-->

QUOTE(edward @ Jul 14 2005, 04:34 AM on that completely unrelated thread :))
Hmm .... chls /obj/*/* seems to do it though ... I suspect that if you have subnets then this pattern will get more complicated.

19492[/snapback]

interesting... and chls /obj/*/*/* returns sop level channels.. seems a bit extended, no? unless the channels reside "within" the node itself, which would make that correct.. although, it's not how the fetch in chops works as well as not really corresponding with the way chls -a /obj/* does it either..

as a side note, i'd also like to see chls have a view only non-constant option because it pulls channels from all over that don't actually change in state over time (inside light's on a default startup for example..)

i don't even want to know what would be going on if subnets were considered..

Share this post


Link to post
Share on other sites

Yeah, I tried chls /obj/*/* as well, but it gave me all the channels in my SOPs instead...

That is something that can be confusing sometimes. The channels of a node live at the same path location as its child nodes. Say you have a SOP called file1 in /obj/model, then /obj/model/tx (a channel) and /obj/model/file1 (the sop) live at the same level. Now I think I can confuse things further by noting that the path that refers to a channel (/obj/model/tx) is a parallel hiearchy that is tied to the node hierarchy which gives you /obj/model/file1. I better stop now :blink:.

George.

Share this post


Link to post
Share on other sites

ummm.. yeaaaa... :D

actually i do get what you're saying, but if channels are in fact at the same level as a child node, then why didn't you get obj channels for chls /obj/*/* (i.e. /obj/model/tx)? and more so why am I getting obj for it and you are getting sop for it? and to further complicate things.. why does chls /obj/*/* give me obj channels while chls -a /obj/*/* gives me sop channels as well as obj ones?

:tumbleweed:

Share this post


Link to post
Share on other sites
actually i do get what you're saying, but if channels are in fact at the same level as a child node, then why didn't you get obj channels for chls /obj/*/* (i.e. /obj/model/tx)? and more so why am I getting obj for it and you are getting sop for it? and to further complicate things.. why does chls /obj/*/* give me obj channels while chls -a /obj/*/* gives me sop channels as well as obj ones?

19543[/snapback]

Oh, no, I do get the obj channels as well as the SOP ones when I do chls /obj/*/* -- which makes sense, my comment was that you probably didn't want the SOP ones to show up. As to the distinction between -a and not, my guess would be that there are not "live" channels on the SOP nodes and that's why they don't show up without the -a?

George.

EDIT: I must have made an error here, chls /obj/*/* does not list SOPs.

Share this post


Link to post
Share on other sites

ok.. this is what i have and what i'm getting...

a standard houdini default startup (123.cmd) with a sphere inside the model obj. There is a created channel on obj/model/tx and on obj/model/sphere1/radx.

chls /obj/*/* returns tx on the model object (and copframe on the cam)

chls /obj/*/*/* returns

Share this post


Link to post
Share on other sites

ok.. this is what i have and what i'm getting...

I have a standard houdini default startup (123.cmd) with a sphere inside the model obj. There is a created channel on obj/model/tx and on obj/model/sphere1/radx.

chls /obj/*/* returns tx on the model object (and copframe on the cam)

chls /obj/*/*/* returns radx on the sphere sop (and a bunch of params from inside the lights)

chls -a /obj/* returns all my channels on my objects.

chls -a /obj/*/* returns all my channels on my sops as well as model/tx and cam1/copframe.

so based on this, i have two questions:

1. Why is it when you use the all -a option, it's based on 1 parent level up then from a normal chls without it..

2. Why are you getting both obj and sop created channels with chls /obj/*/* and i'm getting obj level only.

crazyness is all i have to say.. :)

Share this post


Link to post
Share on other sites

Okay, I think this is starting to make some sense. I get the same results as you now. I don't know what I did before to get the SOPs to show up without the -a option, it must have been an error on my part.

When you use the -a flag, then what is matched by the wildcards are nodes, without it, then the wildcards match channels. So when you say -a you're saying list all the channels on a given node. So the weirdest case is the chls -a /obj/*/* which lists all the sops and /obj/model/tx.

All the nodes that match this (for the -a option) are the sops, so all their channels are listed. Now the only channels that match the wildcards are /obj/model/tx and /obj/cam1/copframe. So those are only ones that are displayed at the obj level.

Does that make sense?

George.

Share this post


Link to post
Share on other sites

yup.. thanks george.. that was definitely an odd one for me but it's all clear now.. :)

now, i'd be set if the whole thing had a view only non-constant option :rolleyes: but this info is good to know for future reference.. thanks again..

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×