Hi guys,
i'm working on a little learning project to make a tentacle rig: i have this cylinder that "rolls" when i move it in x by way of a controlling null, now my plan was to use "cluster with center" to have something for the nulls on the tentacle to stick to and thereby roll the tentacle up. Works fine when i control the cylinder by hand but when it has it's little "rolling rig" on it and i try to get the global position of the cluster center null it gives me a big error:
Apparently it's causing a loop somewhere but i really don't understand what to do about: is it just a no go or can i fix this some way?
Cycle Breaking Point on Null Position?
-
Kerro Perro
- Posts: 306
- Joined: 20 Mar 2011, 00:01
- Location: Leiden, the Netherlands
Cycle Breaking Point on Null Position?
You do not have the required permissions to view the files attached to this post.
-
EricTRocks
- Moderator
- Posts: 754
- Joined: 25 Nov 2009, 00:41
Re: Cycle Breaking Point on Null Position?
Can you post a screen shot of your scene hierarchy?
-
dwigfor
- Posts: 395
- Joined: 17 Nov 2009, 16:46
Re: Cycle Breaking Point on Null Position?
Could you create a null, parent to cylinder, and use that global kine?
-
Kerro Perro
- Posts: 306
- Joined: 20 Mar 2011, 00:01
- Location: Leiden, the Netherlands
Re: Cycle Breaking Point on Null Position?
I can - but the exact same error occursdwigfor wrote:Could you create a null, parent to cylinder, and use that global kine?
I just on a whim tried to see what happened if i put the null's "get globalkine" in its own ICE tree - and that seems to work!
Makes me wonder what good practice is: a lot of small ICE trees in a scene or one big one? I would obviously prefer one big one as that would make it much easier to keep track off..
@Eric: Thanks for taking a look at it, as said i can work around but i'm still curious why it can't be done in one ICE tree:
I'll just add the scene as well if anyone wants to try it out ;)
(ICE tree is under "tentacleRoot")
You do not have the required permissions to view the files attached to this post.
-
dwigfor
- Posts: 395
- Joined: 17 Nov 2009, 16:46
Re: Cycle Breaking Point on Null Position?
Try setting your 4x4 matrix as custom attribute (self.cylinderSRT) and getting that and setting it on cylinder (or probably better on cylinder null parent). Same with other setdata. Also, maybe do this instead on unsimulated ice tree, and set on objects as simulated ice tree.
-
Kerro Perro
- Posts: 306
- Joined: 20 Mar 2011, 00:01
- Location: Leiden, the Netherlands
Re: Cycle Breaking Point on Null Position?
dwigfor wrote:Try setting your 4x4 matrix as custom attribute (self.cylinderSRT) and getting that and setting it on cylinder (or probably better on cylinder null parent). Same with other setdata. Also, maybe do this instead on unsimulated ice tree, and set on objects as simulated ice tree.
I didn't quite understand what you meant (total noob in ICE here) so i started googling and came across this page:
viewtopic.php?f=41&t=1707
I'm in weekend mode right now (though still not totally able to stay away from my desk ;) ) but i shall watch your videos ASAP - they seem mildly relevant ;)
-
dwigfor
- Posts: 395
- Joined: 17 Nov 2009, 16:46
Re: Cycle Breaking Point on Null Position?
Hopefully you find them helpful. They've really helped me a lot with ICE; I think the biggest thing that people have a problem with ICE isn't programming, but in fact Math. I don't remember any of this stuff from high school; not even sure we covered matrices.
How is this useful? Essentially it is how parenting is calculated. Everything in ICE is set as Global Coordinates. But before ICE, I would parent the nulls on the rig and set local coordinates (with ICE you can't). That may be the cause of your error.
The biggest thing to remember is Child * Parent = Global. The order is very important. As I mentioned in another thread, a good example is:
1) Walk Forward 2 steps, Turn Right
2) Turn Right, Walk Forward 2 Steps.
In both cases you are walking forward 2 steps and turning to the right, but you end up in different locations depending on what you do first.
For your cylinder problem, I think you could calculate the offset position of your point from the object center (it's local position), and then Multiply Vector By Matrix that by the cylinders kine.global.
I seem to remember having a problem setting Cluster With Center's kine.global though... Let me know if you encounter that problem..
-Dave
How is this useful? Essentially it is how parenting is calculated. Everything in ICE is set as Global Coordinates. But before ICE, I would parent the nulls on the rig and set local coordinates (with ICE you can't). That may be the cause of your error.
The biggest thing to remember is Child * Parent = Global. The order is very important. As I mentioned in another thread, a good example is:
1) Walk Forward 2 steps, Turn Right
2) Turn Right, Walk Forward 2 Steps.
In both cases you are walking forward 2 steps and turning to the right, but you end up in different locations depending on what you do first.
For your cylinder problem, I think you could calculate the offset position of your point from the object center (it's local position), and then Multiply Vector By Matrix that by the cylinders kine.global.
I seem to remember having a problem setting Cluster With Center's kine.global though... Let me know if you encounter that problem..
-Dave