Can you / has anyone layered multiple captures?

   4052   16   1
User Avatar
Member
249 posts
Joined:
Offline
I have been trying this for a while and have not been able to layer multiple captures.

I would have one bone chain capture and deform geometry , then after the deform want to do another set of captures and deforms.

Is this allowed because it simply isn't working.

I am deleting all weights after the first capture/deform and have gone through every option but it seems to makes no difference.

Has anyone done this before?


-andrew
blog [abvfx.wordpress.com]tumblr [andrewbrowne.tumblr.com]twitter [twitter.com]
User Avatar
Member
7025 posts
Joined: July 2005
Online
What's failing exactly? Do you mean you want to have multiple captures, followed by multiple deforms, or do you want to do Capture->Deform->CaptureMore->DeformMore etc?
User Avatar
Member
249 posts
Joined:
Offline
Yea i can't seems to get capture > paint > deform and then another set of capture > paint > deform

These are with two separate bone chains.

I've made sure that all weights are deleted after the first deform but it seem to take. I've tried specifying the hierarchy and then bones…. all sorts. The first capture works but the second one doesn't.
blog [abvfx.wordpress.com]tumblr [andrewbrowne.tumblr.com]twitter [twitter.com]
User Avatar
Member
7025 posts
Joined: July 2005
Online
Hmm, are the 2nd captures “following” the first deform? Because if you Deform then try to Capture, the Capture may be capturing empty space? Just wondering aloud.
User Avatar
Member
249 posts
Joined:
Offline
Was wondering about that too, so i didn't deform the first set of bones . Just trying to get the second set to work.

This whole experiment is just a small part of a bigger idea but cant get it off the ground.
blog [abvfx.wordpress.com]tumblr [andrewbrowne.tumblr.com]twitter [twitter.com]
User Avatar
Member
7025 posts
Joined: July 2005
Online
Maybe post a .hip file?
User Avatar
Member
7025 posts
Joined: July 2005
Online
Hmm, it works for me…

Attachments:
DoubleCapture.hipnc (134.4 KB)

User Avatar
Member
249 posts
Joined:
Offline
I have no idea what i was doing wrong. I thought maybe because you were using a capture proximity instead of a regular capture sop there was something different.

So i made it with just a regular capture. Works. :shock:

The reason i am asking this is i want to have a sticky object influences by one deform, and that sticky object be the root for another bone.

I've set it up here with no success. I thought maybe the sticky had to be fetched but nope.

Attachments:
doublecapture_weird.hipnc (220.5 KB)

blog [abvfx.wordpress.com]tumblr [andrewbrowne.tumblr.com]twitter [twitter.com]
User Avatar
Member
8555 posts
Joined: July 2007
Online
phrenzy84

The reason i am asking this is i want to have a sticky object influences by one deform, and that sticky object be the root for another bone

that kind of setup will definitely work
I was using it in the past for controllers which were sticking on deforming geometry as a secondary layer of control on top of shape animation

you will need to update capture pose to sticky location so that there is no double deformation or missed capture
so simply reference it in bone's Capture Bone Translate&Rotate parameters using origin() expression
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
249 posts
Joined:
Offline
tamte
that kind of setup will definitely work
I was using it in the past for controllers which were sticking on deforming geometry as a secondary layer of control on top of shape animation

Yep that is exactly what i am looking for.

Thanks for the tip. I will post a example if/when i get it working.

edit/ though i am slightly puzzled, if i will be painting the capture then why do need to make sure the region is in the right place if in the end it will all be custom. Anyways, i will try it out.
blog [abvfx.wordpress.com]tumblr [andrewbrowne.tumblr.com]twitter [twitter.com]
User Avatar
Member
249 posts
Joined:
Offline
So here is what i have so far.

I cant seem to paint the weights softer? I get the feeling i am doing something wrong.

Attachments:
Sticky.hipnc (242.7 KB)

blog [abvfx.wordpress.com]tumblr [andrewbrowne.tumblr.com]twitter [twitter.com]
User Avatar
Member
8555 posts
Joined: July 2007
Online
you can include static bone or (another compensated bone) additionally to all your sticker bones
then assign all the points to that bone
and then paint influence of your stickers (so the smoothing will work because it can now blend between bone weights)

or even better
capture with that one bone, set weight to 1
make another capture with all the stickers
uncheck Destroy Existing Weights on that capture
play with Blend Factor so they will nicely blend in based on their capture region so they update their capture weights when you correct your sticker locations
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
8555 posts
Joined: July 2007
Online
phrenzy84
tamte
…edit/ though i am slightly puzzled, if i will be painting the capture then why do need to make sure the region is in the right place if in the end it will all be custom. Anyways, i will try it out.

if you will paint the weights anyways and not use capture regions to capture on the fly then deformation will work even when not making sure capture regions are in corect place

however
referencing world location has another reason
it compensates for bone movement that is caused by deforming surface, the bone is stick onto
therefore avoiding double deformation you would have even if your weights would be painted
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
8555 posts
Joined: July 2007
Online
here is the working example of sticky bone acting as a second(or whichever) deformation layer with pose compensation for underlying deformation

as I noticed that origin() seems to be using XYZ rot order to compute rotations and capture pose seems to be using ZYX (even if bone rot order is set to XYZ) I used Object CHOP to compute correct Capture Pose

Attachments:
ts_sticky_bone.hipnc (162.8 KB)

Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
7722 posts
Joined: July 2005
Online
tamte
as I noticed that origin() seems to be using XYZ rot order to compute rotations and capture pose seems to be using ZYX (even if bone rot order is set to XYZ) I used Object CHOP to compute correct Capture Pose

origin() and friends use a fixed SRT, XYZ transform order due to legacy. I think this was rectified with the equivalent Python functions which allow specifying the transform order. However, I'm not sure the speed of doing this compared to an Object CHOP.
User Avatar
Member
8555 posts
Joined: July 2007
Online
thanks edward
yes, Python and

hou.node(“../sticky1”).worldTransform().extractRotates(“srt”, “zyx”)
hou.node(“../sticky1”).worldTransform().extractRotates(“srt”, “zyx”)
hou.node(“../sticky1”).worldTransform().extractRotates(“srt”, “zyx”)

gives correct values as well
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
249 posts
Joined:
Offline
This is excellent Tomas, thank you.
blog [abvfx.wordpress.com]tumblr [andrewbrowne.tumblr.com]twitter [twitter.com]
  • Quick Links