Jump to content


Photo
- - - - -

It Can't Be Done Mini-Series! Bone Snapping


  • Please log in to reply
19 replies to this topic

#1 robcat2075

robcat2075

    occasional smarty-pants

  • Hash Fellow
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 23866 posts
  • Robert Holmén
  • *Moderator*
  • Dallas, Texas
  • other
  • Windows
  • Programmer:NO

Posted 26 March 2015 - 12:05 AM

ICBDMiniSeries.jpg

 

 

 

So you want to snap bones to CPs? This is how it can be done...

 

Episode 1 is on YouTube. A little bit of set-up is done

 

Episode 2 is on YouTube. Pose export magic.

 

Ta-Dahhh!


Robert Holmén
------

Got an A:M question? Come to Live Answer Time.   Saturdays, Noon CDT (1700 GMT)

Watch the 2017 "Summer Memories" Image Contest Awards

 

My tutorials All my most beloved tutorials in one convenient location. Except for the ones I've forgotten about.
 
this is only a ... my gallery of A:M tests

87,848 pushed!: the #1 heavy push on Youtube

Big thanks to... Roger (again!), Shelton (it's huge!), NancyGormezano, Roger, cribbidaj, thefreshestever, Tom, Dalemation, Simon Edmondson, thejobe, Rob_T (2 more x), agep (again!), itsjustme, jason1025(+1), dblhelix (+1),markw, Roger (3x!), mouseman (x 2!), Xtaz, agep, Gerry, thefreshestever, dblhelix (twice!), jason1025, Luuk Steitner, PDM, Rob_T and Dhar!


#2 Dpendleton77

Dpendleton77

    A:M Padawan

  • *A:M User*
  • PipPipPipPipPipPipPip
  • 782 posts
  • Douglas Pendleton
  • Washington,DC
  • v18
  • Windows

Posted 26 March 2015 - 03:48 AM

I can't wait to check this out.


I am here to learn so teach me.

#3 detbear

detbear

    Chronic Visualist

  • Craftsman/Mentor
  • PipPipPipPipPipPipPip
  • 889 posts
  • - - - -

Posted 26 March 2015 - 06:22 AM

Thanks RC,

 

I look forward to seeing how you solved this. I have looked for a solution on several occassions as you know :)



#4 detbear

detbear

    Chronic Visualist

  • Craftsman/Mentor
  • PipPipPipPipPipPipPip
  • 889 posts
  • - - - -

Posted 26 March 2015 - 06:32 AM

That's how I set up a similar rig in one of my previous posts. But as I pointed out, the setup time

to create the cp groups makes this method too time consuming for High Mesh Models.

 

Can it be done: YES

 

IS it way too time consuming on a high mesh model: YES.

 

BUT WITH THAT SAID.....This group constraint method is a good tool and method for a low cp count situation..



#5 nemyax

nemyax

    a regular nemyax

  • *A:M User*
  • PipPipPipPipPip
  • 379 posts
  • Haifa/Luton
  • - - - -

Posted 26 March 2015 - 06:47 AM

Yes, unless you need to implement Episode 2, this whole setup is a bit of a Heath Robinson.

For strictly Episode-1 stuff you'd be better off taking screenshots of CPs' info boxes and punching the position values into bone properties.



#6 robcat2075

robcat2075

    occasional smarty-pants

  • Hash Fellow
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 23866 posts
  • Robert Holmén
  • *Moderator*
  • Dallas, Texas
  • other
  • Windows
  • Programmer:NO

Posted 26 March 2015 - 07:06 AM

I still hold that a macro in a text editor could do the bone creation and placement for you.


Robert Holmén
------

Got an A:M question? Come to Live Answer Time.   Saturdays, Noon CDT (1700 GMT)

Watch the 2017 "Summer Memories" Image Contest Awards

 

My tutorials All my most beloved tutorials in one convenient location. Except for the ones I've forgotten about.
 
this is only a ... my gallery of A:M tests

87,848 pushed!: the #1 heavy push on Youtube

Big thanks to... Roger (again!), Shelton (it's huge!), NancyGormezano, Roger, cribbidaj, thefreshestever, Tom, Dalemation, Simon Edmondson, thejobe, Rob_T (2 more x), agep (again!), itsjustme, jason1025(+1), dblhelix (+1),markw, Roger (3x!), mouseman (x 2!), Xtaz, agep, Gerry, thefreshestever, dblhelix (twice!), jason1025, Luuk Steitner, PDM, Rob_T and Dhar!


#7 detbear

detbear

    Chronic Visualist

  • Craftsman/Mentor
  • PipPipPipPipPipPipPip
  • 889 posts
  • - - - -

Posted 26 March 2015 - 08:40 AM

HEY RC!!,

 

Don't take my post the wrong way.... What you've done there is great and I appreciate your efforts.

 

The group constraint itself is used very little by most A:Mers. It has valuable uses. And your example here is

certainly worthy of the effort.

 

There's no telling what kind of cool setup for a rig could be created by using your method there. I think with some thought and

planning what you have a base for there could open the door for AUTOMATIC rig morphs and the like.

 

I like your example. It is very good.



#8 robcat2075

robcat2075

    occasional smarty-pants

  • Hash Fellow
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 23866 posts
  • Robert Holmén
  • *Moderator*
  • Dallas, Texas
  • other
  • Windows
  • Programmer:NO

Posted 26 March 2015 - 08:54 AM

No, I'm just saying that if the repetitive nature of the concept is the problem, that much could be automated with text editing.

 

That said... I'm not sure what a Heath Robinson is. :unsure:


Robert Holmén
------

Got an A:M question? Come to Live Answer Time.   Saturdays, Noon CDT (1700 GMT)

Watch the 2017 "Summer Memories" Image Contest Awards

 

My tutorials All my most beloved tutorials in one convenient location. Except for the ones I've forgotten about.
 
this is only a ... my gallery of A:M tests

87,848 pushed!: the #1 heavy push on Youtube

Big thanks to... Roger (again!), Shelton (it's huge!), NancyGormezano, Roger, cribbidaj, thefreshestever, Tom, Dalemation, Simon Edmondson, thejobe, Rob_T (2 more x), agep (again!), itsjustme, jason1025(+1), dblhelix (+1),markw, Roger (3x!), mouseman (x 2!), Xtaz, agep, Gerry, thefreshestever, dblhelix (twice!), jason1025, Luuk Steitner, PDM, Rob_T and Dhar!


#9 itsjustme

itsjustme

    David Simmons......me.

  • Hash Fellow
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 5464 posts
  • David Simmons
  • current
  • Windows

Posted 26 March 2015 - 09:48 AM

No, I'm just saying that if the repetitive nature of the concept is the problem, that much could be automated with text editing.

 

That said... I'm not sure what a Heath Robinson is. :unsure:

 

Maybe the Heath Robinson here: https://en.wikipedia..._Heath_Robinson

 

What I think is being misunderstood is that the setup would be a pre-made construct and wouldn't have to be made from scratch every time.  There would be some hurdles, but a character installation rig could be made using this method.



#10 detbear

detbear

    Chronic Visualist

  • Craftsman/Mentor
  • PipPipPipPipPipPipPip
  • 889 posts
  • - - - -

Posted 26 March 2015 - 03:28 PM

Yes....I'm not good at all with explaining things via text:

 

BUT yes....I was attempting to make note of the rigging potentials.

 

ALSO......Robert is correct. A macro to place bones on every cp of a heavy model would be ideal.

 

There are models out there with morphs on them that could be automatically matched in a pose and

then the pose could be connected to the joint movement.  That way a heavy meshed, imported model would

not need to be re-weighted. Therefore the textures from the external could also remain intact.



#11 robcat2075

robcat2075

    occasional smarty-pants

  • Hash Fellow
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 23866 posts
  • Robert Holmén
  • *Moderator*
  • Dallas, Texas
  • other
  • Windows
  • Programmer:NO

Posted 26 March 2015 - 05:04 PM


 

There are models out there with morphs on them that could be automatically matched in a pose and

then the pose could be connected to the joint movement.  That way a heavy meshed, imported model would

not need to be re-weighted. Therefore the textures from the external could also remain intact.

 

 

I don't see bone snap helping that. If you have 1000 points you have to match between poses, doing it with 1000 bones won't be any faster than snap-to-point which we already have. 

 

Why is snap-to-point not enough for that?


Robert Holmén
------

Got an A:M question? Come to Live Answer Time.   Saturdays, Noon CDT (1700 GMT)

Watch the 2017 "Summer Memories" Image Contest Awards

 

My tutorials All my most beloved tutorials in one convenient location. Except for the ones I've forgotten about.
 
this is only a ... my gallery of A:M tests

87,848 pushed!: the #1 heavy push on Youtube

Big thanks to... Roger (again!), Shelton (it's huge!), NancyGormezano, Roger, cribbidaj, thefreshestever, Tom, Dalemation, Simon Edmondson, thejobe, Rob_T (2 more x), agep (again!), itsjustme, jason1025(+1), dblhelix (+1),markw, Roger (3x!), mouseman (x 2!), Xtaz, agep, Gerry, thefreshestever, dblhelix (twice!), jason1025, Luuk Steitner, PDM, Rob_T and Dhar!


#12 Rodney

Rodney

    A:M Bot 14309

  • Admin
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6916 posts
  • Rodney Baker
  • *Admin*
  • Illinois (not Japan)
  • subscriber
  • Windows

Posted 27 March 2015 - 04:56 AM

I'm trying to imagine what success might look like so bear with me here.
Of course there is solving the process of matching Bones to CPs but there is also the matter of what that would accomplish that couldn't be accomplished in some better way.
But... moving on...
 
I note the following:
 
It appears the minimum required for a CP to be assigned to a Group is the following entry in the Model:
(Scroll down in window to see all code) 

A:M Model File
<GROUP>
Name=CP1
<CPS>
1
</CPS>
Pivot=-13.3138 0 0
</GROUP>
<GROUP>
Name=CP2
<CPS>
2
</CPS>
Pivot=14.8886 -0.0715798 0
</GROUP>

 

And for the Group Constraint it gets a bit more complicated but we need it's corresponding Bone (already existing in a/the Model) to have the following (in an Action):

(Scroll down in window to see all code) 

A:M Action File
<OBJECTSHORTCUT>
MatchName=Bones
<OBJECTSHORTCUT>
MatchName=Bone1
<ATTCONSTRAINT>
GroupTarget=..|..|Groups|CP1
<QUATERNIONROTATEDRIVER>
MatchName=Rotate
<CHANNELDRIVER>
MatchName=X
<SPLINE>
1 0 -2.71051e-018
</SPLINE>
</CHANNELDRIVER>
<CHANNELDRIVER>
MatchName=Y
<SPLINE>
1 0 5.55112e-015
</SPLINE>
</CHANNELDRIVER>
<CHANNELDRIVER>
MatchName=Z
<SPLINE>
1 0 0
</SPLINE>
</CHANNELDRIVER>
<CHANNELDRIVER>
MatchName=W
<SPLINE>
1 0 100
</SPLINE>
</CHANNELDRIVER>
</QUATERNIONROTATEDRIVER>
<TRANSLATECHANNELDRIVER>
MatchName=Translate.X
<SPLINE>
1 0 0
</SPLINE>
</TRANSLATECHANNELDRIVER>
<TRANSLATECHANNELDRIVER>
MatchName=Translate.Y
<SPLINE>
1 0 0
</SPLINE>
</TRANSLATECHANNELDRIVER>
<TRANSLATECHANNELDRIVER>
MatchName=Translate.Z
<SPLINE>
1 0 -0.000134537
</SPLINE>
</TRANSLATECHANNELDRIVER>
</ATTCONSTRAINT>
</OBJECTSHORTCUT>
</OBJECTSHORTCUT>

 

The Action may not require all these various channels (we'd have to test) but that is what is created in the natural order of activating the Group constraint. The critical part of the assignment being:

 

<ATTCONSTRAINT>       /// The beginning of the constraint container

GroupTarget=..|..|Groups|CP1    /// GroupTarget= followed by the location and name of the Group to connect to which we can assume could be same name for easy identification

...  /// Additional Orientation information as required**

</ATTCONSTRAINT>      /// The end of the constraint container

 

 

** While I'm sure this ommission (and direct manipulation of the file) is not recommended my tests indicate the orientation data can be omitted and A:M will resolve the constraint automatically.

 

Somewhat related...

This process of creating Bones and attaching (or placing) them at CPs is not unlike the creation of Skydome/Light Rigs where an array of Lights (basically the same as Bones in A:M) is created.  The primary addition is that of 'parenting' the Bones/Lights to specific CPs (in this case using the Group Constraint.

 

Note that in the above I haven't moved on to look at the orientation and length of the Bone that would place the Bone at a specific location.  In Robert's video he shows how to get the ends of the Bones at the next CPs (By using the base of the next Bone in the chain) but I would imagine that where the Bone points could be any number of different locations.  Alternately, the bases of every Bone might be desired to be all be at the same location while their tips/ends might be where individual CPs are located.

 

And another observation...

In some cases a workflow helper to match Bone locations to CPS might be as simple as this:

 

1.  Establish your Model/mesh at a scale where the grid (of the Model space) most accurately places the majority of Control Points at or on a grid intersection

2.  Establish your Bones at the same or similar scale

3.  Select all CPs, Right Click and Snap to Grid

4.  Select a Bone, Right Clock and Snap to Grid (Note that we cannot multiple select Bones so another approach may be necessary)

     When creating Bones the Snap Manipulator to Grid icon could be toggled on to ensure all Bone origins are already at an intersection of the grid.

 

Or something like that...

 

I'd be curious to see a mockup of what success might look like for even a simple case.

I can thing of one:  connecting all of the CPs of a mouth to a ring of Bones to better facilitate dialogue/articulation


"Animation is 90 percent hard work.  The other half is entirely mental!"
See my effort to think about the art of animation at: My Blog
Want to learn A:M? Start TaoA:M

#13 detbear

detbear

    Chronic Visualist

  • Craftsman/Mentor
  • PipPipPipPipPipPipPip
  • 889 posts
  • - - - -

Posted 27 March 2015 - 06:03 AM

Robert is correct.

 

The cp "snap to" works really well. I for one am very greatful that they chose to add that.

 

For a case where someone would like to have each cp controlled by a bone, a macro would cut

down on the setup time.



#14 Rodney

Rodney

    A:M Bot 14309

  • Admin
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6916 posts
  • Rodney Baker
  • *Admin*
  • Illinois (not Japan)
  • subscriber
  • Windows

Posted 27 March 2015 - 07:11 AM

a macro would cut down on the setup time.

 

As A:M doesn't have macros I assume you refer here to a text editor like Notepad ++?

 

 

And DOH!  I forgot a very important step in my setup of what I'll call the Grid Alignment Method (GAM) above:

 

1.  Establish your Model/mesh at a scale where the grid (of the Model space) most accurately places the majority of Control Points at or on a grid intersection

2.  Establish your Bones at the same or similar scale

3.  Select all CPs, Right Click and Snap to Grid

4.  Select a Bone, Right Clock and Snap to Grid (Note that we cannot multiple select Bones so another approach may be necessary)

     When creating Bones the Snap Manipulator to Grid icon could be toggled on to ensure all Bone origins are already at an intersection of the grid.

ADDED:  In either Model Mode or Bones Mode, Right Click and select Auto Assign Bones to connect Bones to CPs.


"Animation is 90 percent hard work.  The other half is entirely mental!"
See my effort to think about the art of animation at: My Blog
Want to learn A:M? Start TaoA:M

#15 robcat2075

robcat2075

    occasional smarty-pants

  • Hash Fellow
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 23866 posts
  • Robert Holmén
  • *Moderator*
  • Dallas, Texas
  • other
  • Windows
  • Programmer:NO

Posted 27 March 2015 - 07:44 AM

The problem noted in the video where the "Compensate Mode" state wasn't being observed by the Group Constraint will be resolved in v18L, according to Steffen.


Robert Holmén
------

Got an A:M question? Come to Live Answer Time.   Saturdays, Noon CDT (1700 GMT)

Watch the 2017 "Summer Memories" Image Contest Awards

 

My tutorials All my most beloved tutorials in one convenient location. Except for the ones I've forgotten about.
 
this is only a ... my gallery of A:M tests

87,848 pushed!: the #1 heavy push on Youtube

Big thanks to... Roger (again!), Shelton (it's huge!), NancyGormezano, Roger, cribbidaj, thefreshestever, Tom, Dalemation, Simon Edmondson, thejobe, Rob_T (2 more x), agep (again!), itsjustme, jason1025(+1), dblhelix (+1),markw, Roger (3x!), mouseman (x 2!), Xtaz, agep, Gerry, thefreshestever, dblhelix (twice!), jason1025, Luuk Steitner, PDM, Rob_T and Dhar!


#16 nemyax

nemyax

    a regular nemyax

  • *A:M User*
  • PipPipPipPipPip
  • 379 posts
  • Haifa/Luton
  • - - - -

Posted 27 March 2015 - 10:27 AM

And how about a bone snapping feature in 18something? =)



#17 robcat2075

robcat2075

    occasional smarty-pants

  • Hash Fellow
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 23866 posts
  • Robert Holmén
  • *Moderator*
  • Dallas, Texas
  • other
  • Windows
  • Programmer:NO

Posted 27 March 2015 - 11:56 AM

And how about a bone snapping feature in 18something? =)

 

You could ask for that. I think the idea needs to be brainstormed a bit as to how it works in the interface.


Robert Holmén
------

Got an A:M question? Come to Live Answer Time.   Saturdays, Noon CDT (1700 GMT)

Watch the 2017 "Summer Memories" Image Contest Awards

 

My tutorials All my most beloved tutorials in one convenient location. Except for the ones I've forgotten about.
 
this is only a ... my gallery of A:M tests

87,848 pushed!: the #1 heavy push on Youtube

Big thanks to... Roger (again!), Shelton (it's huge!), NancyGormezano, Roger, cribbidaj, thefreshestever, Tom, Dalemation, Simon Edmondson, thejobe, Rob_T (2 more x), agep (again!), itsjustme, jason1025(+1), dblhelix (+1),markw, Roger (3x!), mouseman (x 2!), Xtaz, agep, Gerry, thefreshestever, dblhelix (twice!), jason1025, Luuk Steitner, PDM, Rob_T and Dhar!


#18 Fuchur

Fuchur

    PatchWorker

  • Hash Fellow
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 4997 posts
  • Gerald Zum Gahr
  • Karlsruhe, Germany
  • current
  • Windows

Posted 27 March 2015 - 03:59 PM

You may like to have a look at the next versions... ;)

 

See you

*Fuchur*


"I know, that I don't know."
See my projects, tutorials, reviews and join the German Animation:Master-Community at
www.PatchWork3d.de

Name: Gerald Zum Gahr, alias Fuchur
What stands "Fuchur" for?

Do want to see my favorite A:M-images?
Best of A:M collected by Gerald Zum Gahr

Searching for a *.X-Exporter(DirectX) or a *.dts-Exporter(Torque) for A:M?
Exporter Page

And how can I export to *.FBX-files or other 3d- / game-engines?
FBX-Pipeline to Unity3d / DirectX-Pipeline to Quest3d

Need more converters? *.obj OBJ), *.lwo , *.act or *.dxf ?
Arthur Walaseks' Exporters

Searching for great and free plugins?
www.sgross.com by Steffen Gross

You are searching for tutorials? More video- and text-tutorials can be found here:
Tutorial section of PW3d

You want to make your own video tutorial?
Recommended Tools and Step By Step Instructions

"R M B" stands for "Right Mouse Button"!

#19 serg2

serg2

    Prolific

  • Craftsman/Mentor
  • PipPipPipPipPipPipPip
  • 682 posts
  • serg2
  • Russia Samara
  • Windows

Posted 28 March 2015 - 12:32 AM

This is a very interesting ability.
Perhaps there is a little grain to create a more user friendly features "PathDeform". 
(Like how PathDeform solved, such as Cinema4d and 3DSMax)

Hasher


#20 robcat2075

robcat2075

    occasional smarty-pants

  • Hash Fellow
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 23866 posts
  • Robert Holmén
  • *Moderator*
  • Dallas, Texas
  • other
  • Windows
  • Programmer:NO

Posted 29 March 2015 - 06:05 AM

You may like to have a look at the next versions... ;)

 

See you

*Fuchur*

Is it possible to make this more interactive, so a trip to a menu isn't needed for each bone?

 

What if holding down a control key while you moved the bone would make it snap to whatever bone the cursor is nearest?  Sort of like moving points in "snap to grid"; the CP follows the cursor and jumps to whatever grid point the cursor is nearest.

 

 

I also think people were wanting to be able to snap the end of the bone. If the dragging scenario were available you could use it for both the origin and endpoints.


Robert Holmén
------

Got an A:M question? Come to Live Answer Time.   Saturdays, Noon CDT (1700 GMT)

Watch the 2017 "Summer Memories" Image Contest Awards

 

My tutorials All my most beloved tutorials in one convenient location. Except for the ones I've forgotten about.
 
this is only a ... my gallery of A:M tests

87,848 pushed!: the #1 heavy push on Youtube

Big thanks to... Roger (again!), Shelton (it's huge!), NancyGormezano, Roger, cribbidaj, thefreshestever, Tom, Dalemation, Simon Edmondson, thejobe, Rob_T (2 more x), agep (again!), itsjustme, jason1025(+1), dblhelix (+1),markw, Roger (3x!), mouseman (x 2!), Xtaz, agep, Gerry, thefreshestever, dblhelix (twice!), jason1025, Luuk Steitner, PDM, Rob_T and Dhar!





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users