Dev Blog

Getting Started with Frog Generator in Houdini

May 9, 2019

Frog Generator Houdini Project

Helpful Guides

Youtube – Piranhaconda – Houdini SOPs Muscle and Wrinkles Tutorial

By: AuthorityFX

Vimeo – Working with Noise

By: SideFX Houdini

Vimeo – Houdini 16 Masterclass | Custom Shading

By: SideFX Houdini

I am looking at creating a frog generating tool with Houdini as my final project for a procedural modeling class, so I just gathered a few tutorials that I thought might be helpful. The skin of the frogs is going to be a key feature that I don’t have much experience with, so I want to look into noise and shaders and how those go together to apply there.

The first video just seems like a generally helpful video for creatures, especially those without fur since the wrinkles should be much more noticeable. Frogs will also have some very visibly wrinkly locations dealing with their legs and face especially I think.

Learning the Node Graphs of Human Fall Flat Work Shop

May 8, 2019

Human Fall Flat Workshop – Node Graphs

Learning the Basics

General Notes

– Can modify button actions real time and they will adjust (press, hold, toggle)
– For Connections:
&nbsp&nbsp&nbsp&nbsp- Syntax
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp- [GameObjectName : ScriptName]
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp- InputType : NameOfInput
&nbsp&nbsp&nbsp&nbsp- InputType is either Input or Output
&nbsp&nbsp&nbsp&nbsp- Clumped GameObjectName and ScriptName means that script is attached as a component to that gameObject
– NG = NodeGraph
– Node outputs of “value”
&nbsp&nbsp&nbsp&nbsp- generally means it’s measuring some amount of something (usually normalized 0 – 1)
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp- i.e. SignalAngularVelocity has an output of “value”, which is a normalized measure of the amount of angular velocity the object currently has (currentVelocity / targetVelocity)

Nodes

– SignalUnityEvent
&nbsp&nbsp&nbsp&nbsp- Call for something to happen, generally in another gameObject
&nbsp&nbsp&nbsp&nbsp- Usually found at the end of Node Graphs
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp- because they take other actions in as inputs to determine when to do an event
– SignalMathCompare
&nbsp&nbsp&nbsp&nbsp- Has 2 inputs: in1, in2
&nbsp&nbsp&nbsp&nbsp- Output is 1 if both inputs are equal (the same); Output 0 otherwise
&nbsp&nbsp&nbsp&nbsp- also has an invertedOutput which is just the opposite out Output
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp- 1 when Output is 0
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp- 0 when Output is 1

Node Graph

– The Node Graph script itself creates entire Node Graph “shell”
&nbsp&nbsp&nbsp&nbsp- This creates two nodes within itself:
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp- Input Node: Only holds number of elements in the Inputs array Size
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp- Output Node: Only holds number of elements in the Outputs array Size
&nbsp&nbsp&nbsp&nbsp- At the higher level, it has both the inputs and outputs on its single node
– Other scripts can creates nodes within the Node Graph, but they will generally create a single node
&nbsp&nbsp&nbsp&nbsp- This is different from the Node Graph script, which creates two nodes
&nbsp&nbsp&nbsp&nbsp- These nodes hold their inputs and outputs in the same node
&nbsp&nbsp&nbsp&nbsp- Examples:
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp- Button
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp- Net Signal
– “Up” in the Node Graph will move to the Node Graph of the parent gameObject of the current Node Graph’s gameObject
– A Node’s output generally goes to:
&nbsp&nbsp&nbsp&nbsp- another node script within the same gameObject
&nbsp&nbsp&nbsp&nbsp- node script within a gameObject that is a child of the current gameObject
– Changing Node Graph connections may not update in real time
&nbsp&nbsp&nbsp&nbsp- It visually appears to be updating, but does not seem to actually take in change
&nbsp&nbsp&nbsp&nbsp- Need to stop playing, edit node connections, then start play again

Building a Node Graph

– Start with an empty gameObject that just has a NodeGraph script
&nbsp&nbsp&nbsp&nbsp- NodeGraph can have 0 inputs and outputs
– Create children gameObjects that will hold main NodeGraphs for this overall object
&nbsp&nbsp&nbsp&nbsp- The NodeGraphs for these objects cannot have 0 inputs AND 0 outputs
&nbsp&nbsp&nbsp&nbsp- They must contaion AT LEAST 1 input or output
&nbsp&nbsp&nbsp&nbsp- Adding an input or output to them will make the node appear in the overall NodeGraph in the parent object
&nbsp&nbsp&nbsp&nbsp- The internal NodeGraph (the NodeGraph of this specific child gameObject) will have separate input and output nodes
&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp- It will remove the corresponding node if you specify 0 inputs or 0 outputs

Dynamic Batching/GPU Instancing in Unity

May 7, 2019

Dynamic Batching/GPU Instancing

Following Tutorial

Youtube – [Unity] GPU Instancing Tutorial

By: Blendcraft Creations

In Unity, the benefits of GPU instancing may not be imediately noticeable by the FPS alone in the editor. This first tutorial shows that the FPS is more properly represented in an actual build of the project. Even though this is an older Unity version, that is still good to note to test all the way through to see if you are getting the expected results.

Following this tutorial appeared to work as intended, but it did have a weird issue where I couldn’t create lower numbers of instances of objects. Upon inspecting the script, I determined that any number below 1000 most likely would not be rendered out based on the for loop creating the batches at start. The following code snippet is where the issue was occurring:

private void Start()
{
int batchIndexNum = 0;
List currBatch = new List();

for (int i = 0; i < instances; i++)
{
AddObj(currBatch, i);
batchIndexNum++;
if(batchIndexNum >= 1000)
{
batches.Add(currBatch);
currBatch = BuildNewBatch();
batchIndexNum = 0;
}
}
}

I amended this with a quick fix using a small snippet after the entire for loop as follows:

if(batchIndexNum != 0)
{
batches.Add(currBatch);
batchIndexNum = 0;
}

This allowed me to now render numbers of instances less than 1000, and theoretically allowed me to render instances of any amount now, where initially it would only render multiples of 1000.

I would need to do further analysis to really understand the processing benefits of this, but it is a nice start to at least see that it is working and creating many instances of an object for me. I was safely able to create a few thousand instances of simple objects and run the game in the editor for what it’s worth. I also added a very basic 3D player controller that mostly moved the camera around to get a better idea of how everything was running with all of these objects created.

Look Into – Coding
  • Graphics.DrawMeshInstanced()
  • Operator: =>

Learning Scriptable Objects in Unity

May 6, 2019

Scriptable Objects in Unity

Basic Tutorials

Youtube – Unity3D – Using ScriptableObject for Data architecture / sharing

By: Unity3d College

Youtube – Introduction to Scriptable Objects – Unity 2018 Tutorial

By: Chris’ Tutorials

Youtube – How To Improve Your Game With Scriptable Objects – Unity

By: Dapper Dino – Coding Tutorials

I’m just saving some decent looking tutorials from starting with scriptable objects in Unity. These are something I still haven’t really gotten to in Unity, and I especially want to get a handle on them since they are apparently a useful tool in passing information between scenes using the new scene management approaches in Unity.

More Houdini Modeling Practice Tutorials

May 5, 2019

Houdini Modeling Tutorials

Spider Webs and Sine/Cosine Fun

Youtube – Procedural Spider Web – Houdini Tutorial

By: FX HIVE EVOLUTION

Youtube – [Houdini Tutorial] 0031 Spider Web (Slow version)

By: Junichiro Horikawa

Side FX – FUN WITH VEX | SINE & COSINE

By: ILLUSIONISTICS

These are some more Houdini tutorials that are more focused on modeling. Again, this is just to help me get some ideas for my final Houdini procedural modeling project. These seemed fun and pretty simple so they’re nice examaples to just get a little more practice without setting up for a huge project.

Houdini Modeling Tutorials – Extra Practice

May 3, 2019

Houdini Modeling Tutorials

Basic Modeling for Practice

Youtube – Beginner Houdini Modeling Tutorial | Tire Model

By: CGI Nerd

Youtube – Low Poly Hard Surface Drone Character Houdini Modeling Tutorial

By: CGI Nerd

These two tutorials just cover the full process needed to make two separate models with some variability. These just look like good places to get some practice modeling in Houdini in general, exercising the basics like using a lot of nodes I already know in a new way while learning how to use a few new ones all together. I just want to get a look at a few more ways to approach overall models before deciding on a final project idea for my Houdini procedural modeling class.

Exporting Animation Videos from Houdini

May 2, 2019

Exporting Videos from Houdini

Make Houdini Animations into Videos

Vimeo – My Flower Blooming Animation
Vimeo – Water flowers blossoming in Houdini. Tutorial + project (HIP,comp,ae)

By: Mike Stoliarov

I attempted to get into this large tutorial/project showin in the Water Flowers tutorial. The video is more of a time lapse than a tutorial really, so it’s not the best resource to learn from. However, the video links to a downloadable version of the actual Houdini project itself, so I could use this to learn from.

After getting the project to finally run at all, I was able to follow along with the very first steps in the overall process. They imported some flower assets (petals, centers, stems, etc.), but I just made the petals and central object in Houdini itself. I was able to replicate the interesting point noise that is the foundation of the water effect, and translated it into a way to move color across my flower. After that, I just used similar techniques for using the Bend node to get that “blooming” feel.

Getting a Video File of the Animation

This gave me more issues than I thought it would. Rendering an animation to view in MPlay was straight forward enough, but getting anything out of this was a bit tricky. Initially, after letting all of the frames render out, I was trying to use “Export” and export any video type. There are options for 64 bit Windows, 32 bit, and Quicktime movie, but none of them were doing anything for me. Selected any would say “File saved”, with the path, the name, everything, but nothing actually appeared.

After some searching around, I found that I needed to save out the image sequence first. This can also be done right there in MPlay. After that, you then open the image sequence in MPlay and only THEN can you actually export a video file out. It was the proper export commands I was using earlier, but I just needed to feed in the image sequence first.

This created .avi video files. I was looking to create an .mp4 file as well, but could not find a way to do that in Houdini. I then looked into ways to convert .avi files, but to no avail. I tried an online converter but it kept failing. Then I tried VLC, which has a convert option, but it just kept putting out 1 kb video files with nothing in them.

Pokemon in Unity – Tutorials

April 28, 2019

Making Pokemon in Unity Tutorials

Youtube – Lets Make… Pokemon in Unity! – Episode 1 – Basic Setup World/Character

By: BrainStorm Games

Youtube – Unity Lets Clone a Game [ Pokemon ] – Part 1

By: JesseEtzler

Going off of my recent trend, I’ve just been looking to grab tutorials to make games I loved (or still love) playing as a way to learn more about coding different systems in Unity with C#. I believe the Pokemon games will help get me into some scripts that are very repeatable on a large scale (such as a script that creates a pokemon and its stats), which is something I haven’t gotten into a lot.

Being an RPG game with random encounters, it may also help me work in a system that very consistently moves between two major scene types with the overworld scenes and the battle scenes. These scenes will also give the player very significantly different actions while still carrying information between the two types of scenes.

Ori and the Blind Forest: Building in Unity

April 27, 2019

Mimicing Ori in Unity

Bash Action

Youtube – Ori and the Blind Forest – Game Design Reel

By: James Benson

Youtube – Making Ori Y Bash [Unity C#] (Ori and the Blind Forest) #1

By: Wabble – Unity Tutorials

As a big Ori and the Blind Forest fan, I just wanted to see if I could find some tutorials to put together some of the movement or actions given to the player in Ori. The first video is a cool sample of a lot of the different game mechanics seen in Ori, as both their simple concept version as well as their in game version. This is actually extra helpful as the concept version really simplifies it down to what is really happening and makes it easier to process and disect to replicate.