Maya based physics simulation imported to Unity for FX event

General / 01 May 2019


So I came across an issue I knew the answer to, but had not experimented with until now.

I had a gameplay event that would be too time consuming and awkward to animate, but still needed to play out the same way each time so that the player can jump up on the rocks to proceed forward.

Solution:
I did some research into maya (because I have more experience in maya vs houdini) and found the Bullet physics plugin. After turning that on and messing with static and dynamic rigidbodies I was about to bake out this result into an animation which thankfully transferred into unity without the need for a skinned mesh render or bones which are a performance drag in Unity.

 Something that i'm sure is just from ignorance in Maya, is that when using the MASH physics system instead of Bullet, to run the sim, baking out the sim to an animation would not carry over with the FBX into Unity. This is why I used Bullet exclusively for this sim so i'm unsure if it's best but it got the best results so it was best for me haha. 


Lastly you can see the player gets dragged along with the animation, this is because each of the rocks are still individual mesh objects so I was able to stick a basic sphere collider onto each one which allows player to stand on them to get to the higher platform. I also threw a simple dust particle system that I quickly made onto a few of the rocks and set the emission based on the distance traveled instead of emitting over time.


My next test will be baking a sim in Houdini.

Cut Mesh Shader

General / 29 April 2019

At my work I saw that we have events where a character walks into objects which blocks the camera. Our level designers were just modeling out blockouts with only one side modeled to see inside these areas. I had previously seen many tutorials on how to do cut shaders so you can cut into one mesh with a plane or object.

Many of these tutorials involves multiple passes on the shader (one for standard lighting outside and one for unlit inside). I wanted to keep the first pass of this shader simple so I found some info that allowed me to do just that by utilizing the VFACE float that is built into the Struct input of  Unity's shader code. This gives a 1 for faces looking towards the camera and -1 for ones looking away (kind of like a built in dot product for facing polygons). If you halve the info it gives you, you can use it for a linear-interpolation where 1 is your standard albedo, emission and 0 is your emission / albedo color.


The next step in this shader is to experiment with a past experiment of making a realtime render texture and then using that to power the emission areas of a particle system so I can "burn" into an object.


Post Processing Fog Progress

General / 23 April 2019

So I stumbled upon some tutorials talking about using the already generated depth texture from the camera render to use for post processing fog. 


My next stab at it will be to mask out certain areas.


Shader has panning/ rotating noise mask textures as well and fade / depth control. it runs off script that takes material and applies to camera.


Messing with Vertex Displacement

General / 22 April 2019

I have had some experience with visual node shader creation for this fx but I took a stab at coding it with HLSL instead.

The shader has 

-Albdeo

-normal

-roughness

-intensity greyscale mask for sine wave intensity

-float sliders for amplitude, phase, speed

-intensity slider to multiply against mask



Visualizer PopcornFX Practice

General / 08 April 2018

Followed PopcornFX's visualizer tutorial for music frequency particle sync.

My next step is to bind it to an animated mesh

Saw blade particle cut test

General / 24 March 2018


In this self project test, created a playmaker script that gets point of collision for the blade and then moves the particle to the contact point and sets the emitter to true.

I set up a wait variable that I call a "wait machine" that allows me to recheck collision every 1/10th of a second so that I can update the collision point in real time but not so much that it checks every frame and draws down performance.

My next test is setting up collision tags so that the saw can tell the difference between metal, wood, rock, etc and product the correct particle system.

Also working on texturing the saw blade after I get the script working with the tag system described above.