Inside Sabertooth
Learn how Sabertooth uses 3ds Max to create 3D interactive projects, including HBO Go’s Game of Thrones interactive experience
  • 1/3
  RSS 2.0 ATOM  

emit on disapear
Rate this thread
 
28886
 
Permlink of this thread  
avatar
  • Location: Buenos Aires
  • Total Posts: 7
  • Joined: 15 August 2008 09:24 AM

Hi
I´m working on a little project when I have some characters of a word , and when thats disappear (visibility off) start to emit particles.

The trouble is to sense the individual visibility property on any character of a word (or group)

Anybody have any ideas to do that?

really thanks.



Replies: 0
avatar

You can do it with transparency I guess, but can’t find a way to get group visibility or hidden polygons into the get data node.

Maybe if you drive the visibility through another object or parameter you can get the info into ICE…



Replies: 0
avatar
  • joncrow
  • Posted: 16 April 2009 08:47 AM

yeah.. groups don’t have animatable vis render vis or selectability atributes. What you can do though is group all the objects, then add an override to the group (Get > Property > Override)

then add parameters to the override by clicking the add parameter button in the override ppg.

choose the

view visibility and
render visibility attributes to override

click outside the override ppg.

you should now have the view and render vis attributes show up as keyable properties in your group override.

drag and drop the keyable override into your graph.

That should allow you to use it with Get Data....

Adam



Replies: 0
avatar

I tried that, but it doesn’t work here (7.01)… It says “Invalid pointer” in the status bar.



Replies: 0
avatar
  • CiaranM
  • Posted: 16 April 2009 10:02 AM

Bringing in Override values to ICE crashes here...Use custom parameters to drive that override instead.



Attachment Attachment
Replies: 0
avatar

Yea, the solution whit CPP work fine. And thanks at all for reply so fast.

but, that I try to do is emit when every character of a “group” of a word is disappear.

In example: if my group word is “ L O V E “
I need to do start emitting on “L” is off on frame 10; late, the “O” is off on f12; “V” in f14; “E” in f16.
Every character has be animated visibility by hand.

That´s the trouble,
but of course , I don´t have idea of the solution.

thanks.



Replies: 0
avatar
  • helge
  • Posted: 18 April 2009 07:01 AM

Ok, so I have come up with a pretty flexible solution,
there’s only one step which requires manual setup, but it could easily be automated with a small script…

So here’s the idea:

- You create text as a solid mesh and explode it so that you have separated meshes for each character
- You set the center of the meshes to the bounding box of each character
- You pull all char-meshes in a group
- Then you create a particle cloud and AddPoint from the .kine.local.pos of the chars group. (so that you have one particle for each char)
- You set the shape of the particles to be driven by the char group and set the group index to the particle ID (now we have the same word again, but each char is a particle)
- You drive the scaling procedurally to be set to 0 at some point (in my scene it is determined by the nulls position)

Here’s the manual setup part:
When we emit the smoke particles, we need to know on which character they are emitted. As we are emitting from a group in 7.5 we can’t determine on which element of the group the particle was emitted (too bad). That means we have to have an attribute on each character which we can later use to differentiate the chars. I call this attribute “CharIndex”. The trick is that with this index we can find out the particle corresponding with the character from the mesh. I hope this makes sense.... so we have to set one ice tree for each character mesh which simply sets that character index. This could be done with a script which does it for each member of a group for example.

Now as we have the particles disappearing (scaling to 0) procedurally, we need to emit the smoke. What I do is I count the frames the particle is already scaled down, so in the first frame when the particle disappears this number is 1, before it is 0, and well after it is higher than 1. The attribute is called “Emit” right now.

So then I emit on the char group 5.000.000 particles for each frame, then lookup the particle corresponding to the emit location (based on the CharIndex attribute), and then check if its “Emit” counter is 1. If it isn’t we delete the smoke particle again.

This results in particles only being emitted exactly on the char exactly when it disappears.

Here’s a scene which demonstrates the effect, and also a quicktime.
For the shading I use small discs which are oriented based on the polygonnormal, so we get the same basic shading, and then I scale them down to have them fade out.



Replies: 0
avatar
  • helge
  • Posted: 18 April 2009 07:07 AM

oops forgot the links

http://217.160.138.15/helge/ice/disappearing_letters.scn

http://217.160.138.15/helge/ice/disappearing_letters.mov

Hope this helps.



Replies: 0
avatar

yea! that´s really help!

Great solution Helge, very thanks

thanks.



Replies: 0