The end of last week saw a busy friday – in the morning Dylan Gauld delivered a lecture on basic particles, which wasn’t that useful for me as I’ve already been spending some time on them. However, a few useful points to note and remember include:
- His MSc blog can be found at dylangauld.blogspot.co.uk
- A good book for fire is the Todd Palamar one, Maya Studio Projects
- Playback speed for particles should be set to ‘play every frame, max real time’ 25 fps PAL
- Although particles don’t have transform nodes, you can access them by – component editor – particles tab – RMB over the particle – particle – select your particle – change the poisition in the window if you desire
- it’s a good idea to start your simulation before frame 1 if thjere are other things happening then – it takes time to get going!
- Maya can only handle around 400,000 or 500,000 particles at any time
- remember to cache the file
- the effects menu can be a useful starting point (although i’ve never used it myself thus far)
- Dylan’s email is d.gauld@dundee.ac.uk
TouchBase Interview
Following Dylan’s lecture. I drove down to Glasgow for my interview with David McCluskey, who runs the music department within TouchBase, which is an interactive learning centre for people with a range of disabilities, but mainly for people with hearing and sight impairments (referred to as service users). David was extremely generous with his information concerning the people that he works with and provided a large amount of useful information over ther hour or so I was with him. An musician himself, he was very interested in the research I was undertaking, as much of the work he focusses on deals with sound, light and vibration, in order for communication in some form to take place between the service user and himself, he utilises a number of different techniques depending on the individuals needs. I will go into David’s interview in more detail once I have had time to absorb his comments and how best to use the information he has provided to further my own research.
Early Video Shots
Following my interview on the friday, I managed to enlist the help of a friend to shoot some video in a couple of locations, primarily for the Cymascope website video, but also for my own end of term project. Another friend, who has ties to property, managed to allow us access to an unused office block, where we managed to set up our equipment and film as we liked. Earlier in the day we filmed some shots in his flat, so once I have some free time I will look through the shots and see what may be useful for use as backdrops or key scenes in my Cymatics film.
Going Live
Once again I updated the eagle to bring the wings forward slightly as they were too far back from the head. So version 3 is where we stand at the moment.
Aside from that, I have been continuing with the fire tutorials and have made my first attempt to apply that to John H’s paper-burn-bend test. Here is a link to the video below:
Leading up to this were the digital tutors lessons, which I have detailed below.
Lesson 9 – Continuing to Create Smoke
How to address the ‘big bulgy mushroom’ problem?!
- We’re going to use the turbulence of the volume axis to disturb the ‘mushroomy’ nature of the smoke – if the design of the window was different, you could have it collide with some other geometry, but our window isn’t like that…
- First of all disable the fluid so you can comfortably play around with the timeline
- Select the volume axis and set a key in the channel box for turbulence of approx. 0.3 at frame 1
- Then at frame 20 set the turbulence to 0 and set another key
- Re-enable the fluid and test the scene to see if it works ok – you may want to set the resolution to a lower level if you just want to test it…
Lesson 10 – Creating the Falling Flames with Maya Particles
- Go to the particles menu and create an emitter
- Rescale it so it matches the diagonal slanted piece of porch roof [image 1]
- In channel box – set away from centre and away from axis to 0
- Set along axis to 2 so it jumps upwards before falling down with the gravity
- Set rate to 2 (low number)
- Select the particles, go to the fields menu and select gravity
- In attr – change the particle render type to sphere, radius around 0.180
- Select the particles – CTRL shift the surfaces and make collide
- Select the geo connector tab of the surface and dial down the resilience to 0.1 and friction to 0.3 so that we don’t get bigger bounces
- Now create a 3D fluid container from the ground up centred below the diagonal porch roof [image 2]
- Base res of 60; size 8 x 15 x 8;
- Contents method: set temp and fuel to dynamic again; display – set the slices per voxel to 1; boundary draw to bounding box;
- Dynamic simulation – high detail solve to all grids; solver quality to 25; simulation rate scale to from 1.25/1.5 (depending on how you like it)
- Auto resize set up as before – max res to 350 – auto resize threshold 0 – auto resize margin to 6
- Contents details – density: buoyancy 0; dissipation to 2 (in order to end the buoyancy)
- Velocity – swirl to 5
- Turbulence – strength 0.25; frequency of 0.5
- Temperature (which is extremely important) – temp scale 2; buoyancy 5; dissipation 6; diffusion 0; turbulence 1
- Fuel – reaction speed 1; max temp 0; light released 1;
- Shading – transparency 0.3; glow intensity 0.1; edge drop off 0
- Color – black to grey gradient; color input set to temperature; input bias 0.5
- Incandescence – graph set to the same fire type as before [image 3]; input bias 0.9;
- Opacity – input set to temperature; opacity graph [image 4]; input bias 0.5
- Shading quality – render interpolator set to smooth
- Lighting – self shadow on; shadow opacity 1; ambient brightness 0.35; real lights off
- Now, go to the outliner, select the fluid, then the particles – fluid effects menu – add/edit contents – emit from object
- When you play, you won’t see anything – you need to enable the Use Distance in the attributes section of the fluid emitter – basic emitter attributes
- Turn on use distance – set max distance to 0.15; rate to 8000;
- Emission speed attr – speed method Add – inherit velocity to 1 – has to inherit the motion of the particles as they are dripping down
- In Fluid attr – turn on Motion Streak
- FluidShape tab – container properties – boundary x and z set to none – Y set to –Y
- Experiment with the color – input bias; incandescence input bias; opacity bias (0.5/6) settings – towards a more yellow [image 5]
- Up the base res to 80
- Run and render
- Could turn down the max distance attr to 0.1 (basic emitter attr – fluid emitter)
- Maybe change opacity input bias to 0.55; incandescence input bias 0.95
Select the fluid from the outliner – select the geometry – make collide – do for the diagonal beam and the porch it falls on including stairs etc… [image 6]
Lesson 11 – Blending the Fire and Smoke
No smoke without fire! The behaviour of smoke is influenced by fire – the way that it is thrown into the air is determined by the fire’s buoyancy and turbulence. The further it travels away from the fire it slows down and travels by its own nature. In the case of a closed house, it is contained and more material burns per second – the smoke gets denser, faster and hotter as the pressure inside the house increases. The temperature gets to flashover point when the fire takes over the smoke particles and changes the way the fire spreads. Now the fire spreads with the smoke flow. [image 7 and 8]
As the fireman sprays water on the fire, the smoke changes to white as the fire receives moisture. [image 9]
Lesson 12 – Creating Fire with Smoke
We will find out here how to blend fire and smoke from a single container.
- Create a new 3D container, place it around the window again, rename it window_fire_blend
- Size 15 x 30 x 20; boundary X, Y, Z as None, -Y, -Z; base res 100
- Temp and fuel set to dynamic grid in contents method
- Display – slices per voxel to 1; boundary draw to bounding box
- Dynamic simulation – damp 0.005 to control the vectors (also going to use high velocity swirl); high detail solve all grids; solver quality 25/30; simulation scale rate 1.25/1.5
- Auto resize checks as before; max resolution 800; auto resize thresh 0; auto resize margin 8;
- Density – buoyancy 8/10; dissipation 1;
- Velocity – swirl 10;
- Temperature – temp scale 2/2.5; buoyancy 200; dissipation 8; diffusion 0; turbulence 1;
- Fuel – reaction speed 1 (want the reaction to take place very quickly); max temp 0; light released 1 (can add up to the incandescence);
- Shading – very important! – transparency 0.3; glow intensity 0.09; edge dropoff 0;
- Color – black to grey gradient; color input density; input bias 0.294;
- The reaction will be pushed by the value of the temperature, the shading will be considered by the temperature
- Incandescence – Incandescence input set to temperature;
- Graph for the incandescence [image 10] as before; input bias 0.9;
- Opacity – opacity input set to density. So shading driven by the temperature but the opacity is driven by the density; opacity graph [image 11]; input bias 0.5
- Shading quality – render interpolator smooth
- Lighting – self shadow on; shadow opacity 1; ambient brightness 0.3; ambient colour white orange; real lights off; directional light 0.8 0.2 0.9;
- Select the fluid container, fluid effects menu, add/edit contents, emitter
- Scale the emitter around the bottom half of the window frame [image 12]
- Fluid attr – density/voxel/sec to 1;
- Run the simulation – need to bring the fire away from the window
- Select the container – fields menu – volume axis
- Choose cube shape and scale and rotate round window as before [image 13]
- Use channel box – magnitude 12; away from centre and axis 0; along axis 1; turbulence 0.05; turbulence freq x, y, z 0.5 0.5 0.5; direction speed 1; direction x, y, z 0 0.8 0.35; (You’ll see the fluid is going to travel between the 2 arrows)
- Tweak opacity and incandescence bias as usual
- So to recap – we control the incandescence of the fluid with the temperature. In the temp section you can see we have a high amount of dissipation, so as the temp goes upward it dissipates more. As a result of that, the incandescence graph is more noticeable where the fire is producing the whiteish colour, as it progresses upwards it settles into the black colour
- With the opacity input bias you can play around with how dense you want the smoke to be
Lesson 13 – Using Fluid Presets to Save Time
How to save time by creating a preset!
- Create a new 3D container – keep it away from the others
- Select window_fire_blend container
- Open the attr editor – presets – save fluidshape preset – e.g. window_fire_blendshape – save attribute preset
- Select the empty container – attributes – presets – more – window_fire_blendshape – replace
- Now you still have to create the emitter an volume axis and type in some values for things like magnitude, turbulence, or in the case of the 3D container change the temperature scale and buoyancy so there is a difference from the first one – maybe increase the dissipation from 10 to 12
- You can also locate the preset in – documents, maya, 2013 x64, presets, attrPresets, fluidShape
Lesson 14 – Creating the Final Composition
So, to recap on the different elements – we have the fire under the porch; the fire may have started with a couch behind the door; it then spreads towards the left hand window with the bulgy smoke belching out; we have the burning wooden beam; the falling flames as the fire takes hold; and of course the 2 windows with blended fire and smoke coming out – remember the white smoke occurs due to moisture in the air or water.
- [images 14 and 15]
- So the base layer is a still of the house with some CC to give an evening feel to it – normal
- Also an AO pass – mulitply
- Then 2 layers of lights with shadow etc – still targas, with screen below then linear above
- Then 2 layers of the first smoke with the upper layer cc to be less brownish – normal
- 3 side window fire layers with appropriate screen blending modes – normal then 2 screen modes
- 2 porch fire layers – screen
- Another porch fire above the 2 front window fire layers (these had normal and screen going upward) – the 3rd porch fire screen – good for colour and luminance etc, could also add cc
- 3 door fire layers, all screen
- 2 drop balls layers, screen
- And finally, a fog layer tga on the top!
Exploring Practice – Particles continued
I was looking at other options for creating movement around the geometry I am creating for the cymatic shapes – for example, I like the idea of having arced particle flows like the magnetic loops of plasma you seen being thrown out by the sun. I thought perhaps animated textures could be the way to go, but after a few tests it didn’t seem right. So I decided to look further into what particles could offer. First off I looked at using curves and how to get simple objects amimated along a path, then I looked at how particles could do the same. I ended up doing some short tutorials on curve flow effects and surface flows, which has given me some new ideas. The details of my tutorials are below:
Animating Objects Along a Path
- Create a cv curve
- Select object
- Shift select the path – animate – motion paths – attach to motion path
- Motion path tab – fix the direction (of the object if you need to)
- In the channel box animate direction based on the U value ( there are some twist controls etc., as well)
- Set your animation keys then loop it
Animating Particles Along a Path
There are 2 possible ways (or maybe more):
- Create your particles – shift select the path you’re using – attach to motion path as above
- Create a curve – go to the particles effects menu – create curve flow – you will have to break connections in the attribute editor to set new values and play with the size of the control circles etc.
- If you’re doing this for a number of curves, it may be an idea to create a button for the script
- Need to find out how to change the speed of particles on curve flow!
Points to note for particle goal rendering:
- More detail can be had by using points and higher numbers of particles
- The idea of movement can be achieved more by using streaks – maybe simpler spheres in combination with the more complex point type particles? Or, render the same thing out twice, once with points and once with streaks? It works pretty well, but you would need to mask out the central clumpy bits!
Reflection on Practice – Interview and Particle Work
This week the abstract was due for submission, alongside the consent forms for my interview, as mentioned above. The overall feeling I had from the interview with David was that in order to create something really useful for him and the work that he does in TouchBase, I would really need to create an interactive application that could be customisable for him or whomever uses it, so that each service user in the centre can benefit in some way from the idea that creation of a sound results in the appropriate visual representation of that sound. Some people may require a relatively simple type of geometry whereas someone else would really appreciate the complexity of the geometry that can be seen in the water based cymascope imaging. As each human being differs in taste and ability, it’s exactly the same for the service users there, regardless of their disability. I didn’t appreciate before the individual needs of each user and was thinking along the lines that whatever I created for my research may be useful to all. Having said that, the final film I aim to produce will entertain and educate to a certain extent, according to David and the test footage I’ve shown him, but for any real impact and development I would need to follow a slightly different path.
For example, I could create a database of geometric shapes based on individual frequencies – within that I could have different levels of complexity of each frequency that would be selected as a ‘level’. By using something like a games engine, I could see a way of implementing this kind of technology linked up to external musical triggers – whether it be a musical instrument itself or something like an ultrasonic sound beam which could be calibrated to suit the individual. Clearly, however, this will take some effort, time and resources that are greater than I have at this moment in time. A PhD perhaps?
Particle Questions – with suggested answers from Dylan Gauld:
- Dynamic effects: Curve Flow – How do you tighten up the particles to flow closer along a path if using ‘create curve flow’ effect? (The goal weight is already at 1) – reduce the size of the scalable circles – create an expression for the sale of the first selected one then assign that value to the others? (Dylan scene) But you still have to access the circles anyway?!
- I’m using particle goal weights from one emitter to geometry that’s made up of separate elements, but combined together. If I use a surface emitter it send the particles out in separate bursts from one section to another, so I have to use an omni emitter which doesn’t seem to work quite as well. How do you send the particles out at once if possible? – Use an omni!
- Particle render types – if I use streaks, the particles seem to clump together close to the emitter. The only way to prevent this is to use points which don’t quite provide the same idea of movement. Any way to stop the clumping together? – Could try using opacity ramps on the head of the streak – fake the alpha to get rid of the heads?
- Goal weights – is there any way that the particles can spread over the surface of the geometry more (like a surface emitter emits) as the particles seem to collect at the vertices? – Subdivide the geometry more than you have! You can afford to have a lot more polys in your scene, for rendering it shouldn’t be a problem.
Workflow for working with Surface Flows
- Create your NURBS object
- Add the surface flow effect (generally use the –u setting, but depends on orientation)
- Leave default values and create to begin
- If you need to delete the flow, go back to the menu and ‘delete surface flow’ to get rid of any shaders etc.
- ‘Create particle per flow’ – might be useful for creating separate particle sets for each object within the selection?
- Control resolution provides the number of segments – sub control resolution will provide the number of sub sections in between each of these
- Try these types of settings – create
- Can turn on display sub manipulators
- V locators determine the speed between section for the particles
- U Min and Max controls the size of the bottleneck of the particles
- Max age ratio – if you set it to 0.75, the particles will live for 0.25 of their life beyond the geometry. If you set it to 2, they will die halfway along the geometry
- NB – to create a ramp that could be useful for the river in Going Live – create ramp options – Input U to parent U, Input V to parent V
- Go to RGB PP – edit ramp – set interpolation to none, so the colours are sharp edged into one another
- Change the type to streak or multi streak…
This only seems to work partially – the particles are far away from the curve or don’t seem to follow a more complex type of shape. Seems to work best when you have open surfaces – create a relatively simple one first, add the surface flow first, then alter the nurbs surface and the locators will follow!
Workflow for working with Curve Flows
- Create the curve
- Copy it, don’t instance it
- Select the first curve and set up the lifespan, emission rate, locator positions etc.
- Do the same thing for each curve! (You may be able to script it – create a button?)
Maybe try the particles in Mash?