## Maya Training

Introduction to Hard Surface Modeling

## Maya Training

Interiors and Furniture Vol 1 & 2 - Modeling & Cloth

## Maya Training

Shading, Lighting and Rendering the Bedroom in MR

## Maya Training

Robot volume one - Modeling with animation in mind

## Maya Training

Spach-Alspaugh House the complete courseware

## Maya Training

Burt The Cartoon Dinosaur Vol 01 - Modeling

## New Maya Training

Batman by Jason Edwards
You are here > Home > SimplyMaya Community Forums

# Welcome to Simply Maya

 Simply Maya User Community - Maya Tutorials EXPRESSIONS FOR ALL! (knowledge tidbits)
 Register FAQ Members List Calendar Mark Forums Read

19-07-2003, 07:52 AM   #16
ragecgi
Super Moderator

Join Date: Sep 2002
Location: Minnesota, USA
Posts: 3,709
Thanks: 0
Thanked 13 Times in 12 Posts

Thanks again mind-raper!

..and to post another variant for randomly-created particle attributes per a request in the MATRIX BULLET TRAIL thread
on how to get emitted particle instances (or even just particles)
to emit at random scale values:

 Originally posted by Rage: Try this in a creation expression: NOTE: you MUST add a radiusPP attribute to your particleShape, and apply this expression to that for this to work as you intend The BOLD one is the one to use first, as it is what you asked for. The rest are variants to try for fun particleShape1.radiusPP = rand(.5,1) OR particleShape1.radiusPP = sin(time) OR particleShape1.radiusPP = sin(age)
__________________
Israel "Izzy" Long
Motion and Title Design for Broadcast-Film-DS
izzylong.com

 25-08-2003, 08:29 AM #17 mind_raper Registered User   Join Date: Nov 2002 Location: Pakistan Posts: 57 Thanks: 0 Thanked 3 Times in 3 Posts Controlling speed for instanced Object when you have instanced an object to particle specially a moving geometry its sometime very difficult to handle cause sometime movement of particles is higher than your instanced object or the other way your object speed is higher then particles(e.g you have created a crown moving through the scene and when you have instanced it to particle they are moving (sliding). there are other manual ways to fix it but i will show you how to do it with expressions, And For this we use a matching script with it you can query how much fast is....particle/object is moving and then according to it you can plug that value into your instanced object/Particles. A real good way while you are using instanced Geometry, is to use Custom Attributes and then write the expression on the custom attribute and then plug that custom attribute into your instanced geometry. for a situation where let say you have (crowd) walking animation you instanced it with particles first you instance like you do normally with basic cautions thats you take before instancing any geometry create custom attibute from Particle Attribute goto ADD DYNAMIC ATTRIBUTE and add a attribute with you desired setting customAge float and Per Particle Array you will see a new attribute in per particle array attributes named customAge we'll write a custom expression as follow:- float \$Speed = mag(particle2Shape.velocity); particleShape1.customAge = particleShape1.age * \$Speed /10 (this number can differ as per your need you have to keep playing untill your object is no longer sliding !) ; mag is for Magnitude ! see documentation for it ! if you are not getting a very good try low down da lifespan of the particle through the scene hope it helps enjoy instancing :bannana: __________________ Learn the Rules|Then| Burn the Rules Book Last edited by mind_raper : 25-08-2003 at 08:34 AM.
 25-08-2003, 02:28 PM #18 ragecgi Super Moderator     Join Date: Sep 2002 Location: Minnesota, USA Posts: 3,709 Thanks: 0 Thanked 13 Times in 12 Posts Rock on m8! That's a keeper! __________________ Israel "Izzy" Long Motion and Title Design for Broadcast-Film-DS izzylong.com
 25-08-2003, 10:24 PM #19 Alan Moderator     Join Date: Oct 2002 Location: London, UK Posts: 2,800 Thanks: 0 Thanked 5 Times in 5 Posts this one selects a random element from an array proc int selectRandArrayVal(string \$arr[]) { int \$randomInt = floor(rand(size(\$arr)))+1; return \$randomInt ; } Cool thread btw Alan __________________ Technical Director - Framestore Currently working on: Your Highness IMDB
 09-09-2003, 09:54 AM #20 PixelPost Registered User   Join Date: Jun 2003 Posts: 13 Thanks: 0 Thanked 0 Times in 0 Posts Hehe, I think mind_raper is raping all the gnomon video expressions
 09-09-2003, 10:19 AM #21 mind_raper Registered User   Join Date: Nov 2002 Location: Pakistan Posts: 57 Thanks: 0 Thanked 3 Times in 3 Posts Hummmm lolz yeah.......... Cause not everyOne has the material so i think.....its helpfull ...! but offcourse not all of them.....the are from different authors they are also mentioned ! __________________ Learn the Rules|Then| Burn the Rules Book Last edited by mind_raper : 09-09-2003 at 10:22 AM.
 09-09-2003, 10:35 AM #22 PixelPost Registered User   Join Date: Jun 2003 Posts: 13 Thanks: 0 Thanked 0 Times in 0 Posts its all cool
 09-09-2003, 04:45 PM #23 ragecgi Super Moderator     Join Date: Sep 2002 Location: Minnesota, USA Posts: 3,709 Thanks: 0 Thanked 13 Times in 12 Posts Either way, an expression is an expression, so keep em coming guys! __________________ Israel "Izzy" Long Motion and Title Design for Broadcast-Film-DS izzylong.com
 11-09-2003, 07:26 PM #24 kbrown Moderator     Join Date: Sep 2002 Location: London, UK Posts: 3,198 Thanks: 0 Thanked 8 Times in 8 Posts Ok here's one which I just figured out. Driving a shader attribute with distance from camera Let's dig in to this with an example: 1. Create a lambert shader 2. Create a ramp texture (delete the place2dTexture node if it is created) 3. Connect the ramp's output to the lambert's color channel 4. Create a sampler info node 5. Create an expression with following code: Code: ```// NOTE: I'm using default object names here vector \$vPw = << samplerInfo1.pointWorldX, samplerInfo1.pointWorldY, samplerInfo1.pointWorldZ >>; vector \$vCamPos = << persp.translateX, persp.translateY, persp.translateZ >>; float \$fDistance = mag(\$vPw - \$vCamPos); ramp1.vCoord = \$fDistance / 50; // The divider (50) is acting like a max distance value. You may need to adjust it depending on your scene size.``` To test this, create a nurbs plane. Scale it in X and Z by 20. Apply the new lambert shader to it and render from different angles. You should see that the plane is red at near distance, green in the middle and blue in far distance. If you get repeats and banding then you need to adjust the divider in the expression. __________________ Kari - My Website - My IMDB Do a lot, Fail a lot and Learn a lot! Last edited by kbrown : 11-09-2003 at 07:33 PM.
 11-09-2003, 09:14 PM #25 ragecgi Super Moderator     Join Date: Sep 2002 Location: Minnesota, USA Posts: 3,709 Thanks: 0 Thanked 13 Times in 12 Posts WOW! Kinda like the Yuya Depth shader, only better! Good one Kman! __________________ Israel "Izzy" Long Motion and Title Design for Broadcast-Film-DS izzylong.com
 13-09-2003, 09:58 PM #26 kbrown Moderator     Join Date: Sep 2002 Location: London, UK Posts: 3,198 Thanks: 0 Thanked 8 Times in 8 Posts I just figured out that controlling things based on the distance from camera is really usefull. For example HW particles (mainly points and streaks) are sized in pixels. So no matter how far they are, they will be (HW) rendered the same size -> not exactly realistic looking. If you add a runtime expression which scales the opacityPP based on the distance from the current camera it will look a lot better. Example: Code: ```vector \$vPPos = lpos; // last position of the particle vector \$vCPos = << persp.tx, persp.ty, persp.tz >>; // current camera position float \$fDistance = mag(\$vPPos - \$vCPos) / 20; // particle's distance from camera (scaled to be in range of 0 - 1) opacityPP = 1.2 - \$fDistance; // the opacity will be at least 0.2 but degrades when the distance increases from the cam``` Again you need to play with the divider (20) to scale the opacity reduction to fit the size of your scene. The "1.2" on the last line determines the overall opacity level of all particles (you want to keep this greater than 1.0)... __________________ Kari - My Website - My IMDB Do a lot, Fail a lot and Learn a lot! Last edited by kbrown : 13-09-2003 at 10:06 PM.
 14-09-2003, 05:10 AM #27 ragecgi Super Moderator     Join Date: Sep 2002 Location: Minnesota, USA Posts: 3,709 Thanks: 0 Thanked 13 Times in 12 Posts And with this expression, who says a lot of rain spoils a shot? Good one again Kman! __________________ Israel "Izzy" Long Motion and Title Design for Broadcast-Film-DS izzylong.com
 14-09-2003, 01:56 PM #28 mind_raper Registered User   Join Date: Nov 2002 Location: Pakistan Posts: 57 Thanks: 0 Thanked 3 Times in 3 Posts yeah that helps in densed(populated) particles scene where it need lots of camera adjustment will cut down lots of time ! __________________ Learn the Rules|Then| Burn the Rules Book
 06-01-2004, 04:45 AM #29 tathu Registered User   Join Date: Jan 2004 Posts: 6 Thanks: 0 Thanked 0 Times in 0 Posts I don't care from where they come here Hi. Cool thread ! I'm new here and I'd learned alot from these expressions. I don't care from where they come here, all of them are good for me. Thank mind_raper and everyone. Why the thread had stoped ? Sorry about my poor English.
 06-01-2004, 03:56 PM #30 ragecgi Super Moderator     Join Date: Sep 2002 Location: Minnesota, USA Posts: 3,709 Thanks: 0 Thanked 13 Times in 12 Posts Hasn't really stopped, just slowed down a bit because folks are a little busy. It is a "sticky" thread so that way it is always at the top for reference Feel free to post any questions, and we will see if we can help __________________ Israel "Izzy" Long Motion and Title Design for Broadcast-Film-DS izzylong.com

 Similar Threads Thread Thread Starter Forum Replies Last Post exporting / importing expressions djb123 Technical Issues 2 10-04-2012 11:52 PM

A little bit about who we are