Vitruvian bones and IK?
Moderators: Víctor Paredes, Belgarath, slowtiger
Vitruvian bones and IK?
How do people cope with Vitruvian bones and IK?
I have IK working as desired with a simple arm rig, but when I introduce the 2nd lower vitruvian limb bone it kills IK on the upper limb. This is normal / expected for normal bone structures, but I was hoping Vitruvian Bones would permit IK with multiple lower limbs due to the fact that only one limb bone is active at any time.
At the moment the solution might involve a bunch of reparenting. But keen to see if I missed a trick ...
I have IK working as desired with a simple arm rig, but when I introduce the 2nd lower vitruvian limb bone it kills IK on the upper limb. This is normal / expected for normal bone structures, but I was hoping Vitruvian Bones would permit IK with multiple lower limbs due to the fact that only one limb bone is active at any time.
At the moment the solution might involve a bunch of reparenting. But keen to see if I missed a trick ...
Last edited by SimplSam on Sat Jul 09, 2022 12:57 am, edited 3 times in total.
Moho 14.3 » Win 11 Pro 64GB » NVIDIA GTX 1080ti 11GB
Moho 14.3 » Mac mini 2012 8GB » macOS 10.15 Catalina
Tube: SimplSam
Sam
Moho 14.3 » Mac mini 2012 8GB » macOS 10.15 Catalina
Tube: SimplSam
Sam
Re: Virtruvian bones and FK?
Hmm...can you share an example?
FWIW, FK with Vitruvian Bones works here. With the Manipulate Bones tool selected, I just hold Alt and use FK on any bone inside the V-Bones group as normal. Then Alt-C or -D to change V-Bones groups, and press Alt to use FK in this group. So far I haven't had a problem with that.
FWIW, FK with Vitruvian Bones works here. With the Manipulate Bones tool selected, I just hold Alt and use FK on any bone inside the V-Bones group as normal. Then Alt-C or -D to change V-Bones groups, and press Alt to use FK in this group. So far I haven't had a problem with that.
NEW! Visit our Little Green Dog Channel on YouTube!
D.R. Greenlaw
Artist/Partner - Little Green Dog
Little Green Dog Channel | Greenlaw's Demo Reel Channel
D.R. Greenlaw
Artist/Partner - Little Green Dog
Little Green Dog Channel | Greenlaw's Demo Reel Channel
Re: Virtruvian bones and FK?
Or did you mean IK? IK should work too but if you have another bone branching out from a bone, IK will terminate there.
So if you have parented another bone to the upper arm bone besides the lower arm bone, that could disable IK for the upper arm bone. To work around this, select the other bone and enable Ignored by Inverse Kinematics (in Constraints) for that bone. This should allow IK to be active on the upper arm bone. (In my rigs, I need to do this for a hidden the elbow bone.)
Hope this helps.
So if you have parented another bone to the upper arm bone besides the lower arm bone, that could disable IK for the upper arm bone. To work around this, select the other bone and enable Ignored by Inverse Kinematics (in Constraints) for that bone. This should allow IK to be active on the upper arm bone. (In my rigs, I need to do this for a hidden the elbow bone.)
Hope this helps.
NEW! Visit our Little Green Dog Channel on YouTube!
D.R. Greenlaw
Artist/Partner - Little Green Dog
Little Green Dog Channel | Greenlaw's Demo Reel Channel
D.R. Greenlaw
Artist/Partner - Little Green Dog
Little Green Dog Channel | Greenlaw's Demo Reel Channel
Re: Vitruvian bones and IK?
Ha. I have updated the subject to "IK" !!!
And the issue is where we have multiple Vitruvian limbs on the same upper bone.
So... "Ignored by Inverse Kinematics" works as you have indicated, but it is not keyframable/animatable. Therefore - I can only ever have one of the Vitruvian child limbs controlling the IK.
I have disabled Vitruvian below to show both bones, but "Arm lo 1", and "Arm lo 2" are in a Vitruvian group and each needs to be IK controlling "Arm up" - when they are active (respectively).

And the issue is where we have multiple Vitruvian limbs on the same upper bone.
So... "Ignored by Inverse Kinematics" works as you have indicated, but it is not keyframable/animatable. Therefore - I can only ever have one of the Vitruvian child limbs controlling the IK.
I have disabled Vitruvian below to show both bones, but "Arm lo 1", and "Arm lo 2" are in a Vitruvian group and each needs to be IK controlling "Arm up" - when they are active (respectively).

Moho 14.3 » Win 11 Pro 64GB » NVIDIA GTX 1080ti 11GB
Moho 14.3 » Mac mini 2012 8GB » macOS 10.15 Catalina
Tube: SimplSam
Sam
Moho 14.3 » Mac mini 2012 8GB » macOS 10.15 Catalina
Tube: SimplSam
Sam
- synthsin75
- Posts: 10280
- Joined: Mon Jan 14, 2008 11:20 pm
- Location: Oklahoma
- Contact:
Re: Vitruvian bones and IK?
Quick edit to the IsEnabled function will automatically allow IK for only the active Vitruvian groups:
Code: Select all
function LM_BoneGroups:IsEnabled(moho)
local skel = moho:Skeleton()
--syn\/
--automatically enable IK for active Vitruvian group
for i=0, skel:CountBones()-1 do
if (skel:Bone(i):IsGroupVisible()) then
skel:Bone(i).fIgnoredByIK = false
else
skel:Bone(i).fIgnoredByIK = true
end
end
--syn/\
if (skel == nil) then
if (self:ShouldUseParentSkeleton(moho)) then
skel = moho:ParentSkeleton()
end
if (skel == nil) then
return false
end
end
if (skel:CountBones() < 1) then
return false
end
return true
end
- Wes
Donations: https://www.paypal.com/paypalme/synthsin75 (Thx, everyone.)
https://www.youtube.com/user/synthsin75
Scripting reference: https://mohoscripting.com/
Donations: https://www.paypal.com/paypalme/synthsin75 (Thx, everyone.)
https://www.youtube.com/user/synthsin75
Scripting reference: https://mohoscripting.com/
Re: Vitruvian bones and IK?
I didn't notice this VB limitation. Greenlaw's explanation makes a lot of sense. And that fix from Wes was the fastest of the west. Even if this is the expected behaviour for a hidden bone, it is inconvenient with V bones. I hope they implement that improvement on the next version. I'm still hyped about VB's potential even if I have only used them once so far.
Re: Vitruvian bones and IK?
Wow! That was quick indeed.
Working like a charm!
Thanks all
Working like a charm!
Thanks all
Moho 14.3 » Win 11 Pro 64GB » NVIDIA GTX 1080ti 11GB
Moho 14.3 » Mac mini 2012 8GB » macOS 10.15 Catalina
Tube: SimplSam
Sam
Moho 14.3 » Mac mini 2012 8GB » macOS 10.15 Catalina
Tube: SimplSam
Sam
Re: Vitruvian bones and IK?
Hmm...I guess I hadn't noticed because I normally use FK when animating arms. But of course I do need IK for arms when I pin the hands to something (hips, table, etc.,) so this is good to know. Thanks for creating a patch Wes, and so quickly too! I'll give it a try tonight.
NEW! Visit our Little Green Dog Channel on YouTube!
D.R. Greenlaw
Artist/Partner - Little Green Dog
Little Green Dog Channel | Greenlaw's Demo Reel Channel
D.R. Greenlaw
Artist/Partner - Little Green Dog
Little Green Dog Channel | Greenlaw's Demo Reel Channel
- lucasfranca
- Posts: 180
- Joined: Sat Oct 07, 2017 11:47 pm
Re: Vitruvian bones and IK?
Wow, really good! Does this work for common bone structure too?synthsin75 wrote: ↑Sat Jul 09, 2022 12:19 am Quick edit to the IsEnabled function will automatically allow IK for only the active Vitruvian groups:Code: Select all
function LM_BoneGroups:IsEnabled(moho) local skel = moho:Skeleton() --syn\/ --automatically enable IK for active Vitruvian group for i=0, skel:CountBones()-1 do if (skel:Bone(i):IsGroupVisible()) then skel:Bone(i).fIgnoredByIK = false else skel:Bone(i).fIgnoredByIK = true end end --syn/\ if (skel == nil) then if (self:ShouldUseParentSkeleton(moho)) then skel = moho:ParentSkeleton() end if (skel == nil) then return false end end if (skel:CountBones() < 1) then return false end return true end
An old guy [since 1983] who was raised in front of the TV.
Passionate about animation, after getting old, he decides to make it his hobby.
I share tutorials, reviews, tips and tricks from this vast world of animation on my channel.
https://youtube.com/animai2D
Passionate about animation, after getting old, he decides to make it his hobby.
I share tutorials, reviews, tips and tricks from this vast world of animation on my channel.
https://youtube.com/animai2D
- synthsin75
- Posts: 10280
- Joined: Mon Jan 14, 2008 11:20 pm
- Location: Oklahoma
- Contact:
Re: Vitruvian bones and IK?
With another quick edit, yes, it can work with any selected bone too:lucasfranca wrote: ↑Sat Jul 09, 2022 11:56 am Wow, really good! Does this work for common bone structure too?
Code: Select all
function LM_BoneGroups:IsEnabled(moho)
local skel = moho:Skeleton()
--syn\/
--automatically enable IK for any selected bone
local sel = skel:SelectedBoneID()
for i=0, skel:CountBones()-1 do
if (skel:Bone(i).fSelected or skel:IsBoneChild(i, sel)) then
skel:Bone(i).fIgnoredByIK = false
else
skel:Bone(i).fIgnoredByIK = true
end
end
--syn/\
if (skel == nil) then
if (self:ShouldUseParentSkeleton(moho)) then
skel = moho:ParentSkeleton()
end
if (skel == nil) then
return false
end
end
if (skel:CountBones() < 1) then
return false
end
return true
end
- Wes
Donations: https://www.paypal.com/paypalme/synthsin75 (Thx, everyone.)
https://www.youtube.com/user/synthsin75
Scripting reference: https://mohoscripting.com/
Donations: https://www.paypal.com/paypalme/synthsin75 (Thx, everyone.)
https://www.youtube.com/user/synthsin75
Scripting reference: https://mohoscripting.com/
- lucasfranca
- Posts: 180
- Joined: Sat Oct 07, 2017 11:47 pm
Re: Vitruvian bones and IK?
Forgive me for my ignorance, but where do I put this code? Would it be in .LUA file? If yes, which one? Or is it a Layer type script?synthsin75 wrote: ↑Sat Jul 09, 2022 8:15 pmWith another quick edit, yes, it can work with any selected bone too:lucasfranca wrote: ↑Sat Jul 09, 2022 11:56 am Wow, really good! Does this work for common bone structure too?Code: Select all
function LM_BoneGroups:IsEnabled(moho) local skel = moho:Skeleton() --syn\/ --automatically enable IK for any selected bone local sel = skel:SelectedBoneID() for i=0, skel:CountBones()-1 do if (skel:Bone(i).fSelected or skel:IsBoneChild(i, sel)) then skel:Bone(i).fIgnoredByIK = false else skel:Bone(i).fIgnoredByIK = true end end --syn/\ if (skel == nil) then if (self:ShouldUseParentSkeleton(moho)) then skel = moho:ParentSkeleton() end if (skel == nil) then return false end end if (skel:CountBones() < 1) then return false end return true end
An old guy [since 1983] who was raised in front of the TV.
Passionate about animation, after getting old, he decides to make it his hobby.
I share tutorials, reviews, tips and tricks from this vast world of animation on my channel.
https://youtube.com/animai2D
Passionate about animation, after getting old, he decides to make it his hobby.
I share tutorials, reviews, tips and tricks from this vast world of animation on my channel.
https://youtube.com/animai2D
- synthsin75
- Posts: 10280
- Joined: Mon Jan 14, 2008 11:20 pm
- Location: Oklahoma
- Contact:
Re: Vitruvian bones and IK?
This replaces the IsEnabled function of the Vitruvian bone tool...which is called lm_bone_groups.lua.
I would suggest copying it, and its pngs, to your custom content folder and editing it there. Don't edit the stock scripts in the installation folder.
I would suggest copying it, and its pngs, to your custom content folder and editing it there. Don't edit the stock scripts in the installation folder.
- Wes
Donations: https://www.paypal.com/paypalme/synthsin75 (Thx, everyone.)
https://www.youtube.com/user/synthsin75
Scripting reference: https://mohoscripting.com/
Donations: https://www.paypal.com/paypalme/synthsin75 (Thx, everyone.)
https://www.youtube.com/user/synthsin75
Scripting reference: https://mohoscripting.com/