I am trying to align my characters in a crowd via ICE, but I am having trouble getting it working properly. What I want is for them to sit facing inwards, perpendicular to the emitter surface and y-axis up.
I can align them to the emitters surface normal, but cannot figure out how to also give them a y upvector and face inwards.
- or, I can get them to point inwards (sort of) by aligning them to a vector (Align Particle to Vector) subtracting their emitter position from the closest point on an object to look, at plus an extra Align Particle to Vector node to make their y-axis point up. This almost works, but I get some weird flipping - notice characters close to the camera in this movie:
http://dl.dropbox.com/u/763668/ICE/ICE_Direction_Constraint_01.mov
The direction constraint method is less ideal than aligning relative to the normal of the emitter object, so I would prefer to find a method that is based on the normal alignment. The documentation is not very helpful on this topic, and I have watched some of Stephen Blairs and Andy Nocholas ICE Basics tutorials but didn't quite find what I needed.
So I wonder if anyone could point me to a tutorial that covers orientation and directional and up-vector constraints in ICE?
I am kind of stuck here so any insight or pointers will be much appreciated.
Best Regards
Morten Bartholdy
VFX Supervisor/3D Lead
www.gimmickvfx.com
Hey Morten,
I did something similar or exactly of what Bradley said to align procedural city buildings with their closest streets
I’ve linked a viewport and Icetree snips. I hope it will help you.
http://dl.dropbox.com/u/10537591/PostAboutOrientation/Icetree.JPG
http://dl.dropbox.com/u/10537591/PostAboutOrientation/viewport.JPG
Cheers
Dominik Kirouac // SHED
artiste 3D
1410, RUE STANLEY, 11E ÉTAGE MONTRÉAL (QUÉBEC) H3A 1P8
T 514 849-1555 F 514 849-5025 WWW.SHEDMTL.COM
Thanks Piotrek, but I am afraid that explanation is beyond my grasp. I might as well be trying to read a cook book in Pashtun, the only difference being I understand the individual words, some sentences, but still the meaning is completely lost. The documentation on ICE is similar in my view, which is why ICE, IMHO, is difficult to work with for non technical artists :(
I would soo much like to have the documentation include practical examples of simple stuff like what I am trying to do here.
Morten
Thanks Dominik. So it looks like you find the tangents for the closest locations and use that as upvector for the particles, right!? I don't get the Add, If, First Valid, Add section, but I guess that was specific to your scenario. I will try and see if I can put this together, and see what I get.
BTW great job on the latest IGA - beautiful work on everything! Say hi to Sylvain for me :)
Morten
Hi Brad - thanks for your patience!
I am adding points from vertices on the emitter, then Set Instance Geometry , so I guess I need to orient particles. I am using Direction to Rotation. I get closest location on the object to look at, then subtract emission point positions from that so I get a vector going from one position to the other (I guess) which is visualized in the stills I attached - see the one attached here.
The thing is I would rather orient the particles relative to the emitter normal, as it is more accurate and can be controlled more precisely. Since the emitter normal for this emitter will be pointing inwards but also upwards, I believe I need a direction constraint along the normal inwards combined with an upvector. I have tried doing this by aligning the particle to the surface, which gets me halfway - the characters point facing inwards from the emitter along the surface normal, but their local z-axis (the instance objects axis) is rotated wrong along the surface, so their y-axis are pointing in all sorts of directions. So next I try adding an upvector using Align Particle to Vector setting local and to vectors to Y=1. This makes the charaters point y-axis upwards, but also partly overrides the previous normal alignment, so they no longer face inwards. At this point I get stuck :/
I was hoping that along with the ability to put instances on particles there would be some more high level tools/nodes to orient these instances than vector math. Sigh.
Morten
Agree on that one Piotrek - although I am not quite sure if you mean it or you are jokin ;)
MB
When I try to align my particles to the emitter normal, I run in to context problems I cant figure out. I get the Point Normal from the emitter geometry, then plug it in to either port of Direction to Orientation, next when I want to plug that in to Set Particle Orientation, I get a context mismatch between geometry data output and expected pointcloud input. Stuck and don't know why. The same applies if I try to plug the point normal into an Align Particle to Vector node.
Trying to orient myself and a few particles - MB