Wednesday, July 30, 2014

Blueprint and Cascade Fireworks WIP

A while back, when UE4 was still Rocket, I did what I always do when i get a new game engine: Make some fireworks! It's a great test of the performance of the engine and the particle systems and the overall workflow.

Unreal has always had a great particle system with Cascade, and in UE4, it's largely unchanged. There are, however some big additions, namely GPU accelerated sprite particles. That means tens of thousands of individual particles can be rendered with a single draw call and little overall performance cost. Perfect for fireworks!

So, I went to work and created a system that looked pretty darn good, completely in Cascade (With some help from the material editor, of course!)

I also wanted to test the physics accuracy, so I researched how high fireworks traveled, how fast they launched, etc and input all that into particle system. Sure enough, UE4's Cascade can simulate real-world physics pretty accurately! Launching my projectile at 7162.8 cm/sec with a constant acceleration in -Z of 981 cm/sec/sec sent my projectile almost exactly to the right height of 24384.0cm !

For reference, here's the info-graphics I pulled my expected velocities and heights from (I'm basing my fireworks off an 8" shell):

Fast forward to a few weeks ago when I came across the project files for this while cleaning up some external hard drives. I fired it up in UE4 4.3 and took a gander. It still looked great, but I had just seen some fireworks a few weeks before on the Forth of July and I knew mine weren't quite right. So, I went searching for reference. While the ones I created previously had some of the basics, the details were really off.

Specifically, the way the shell looked as it tumbled upwards was just not right at all. Mine flew straight and true with a bright-white tail of solid sparks. Real fireworks launch a flaming ball of explosives into the sky and the tail you see is the fuse that burns to ignite the bursting charge that makes all the pretty flaming colors happen. This causes it to corkscrew and tumble through the air, releasing yellow sparks as it flies.

This presented a problem inside Cascade. As far as I could figure, there was no real way of rotating the emitter around to create the corkscrewing effect actual fireworks exhibit.

Enter one of my favorite things about UE4: Blueprints + Particles! When there's a limitation of Cascade, Blueprints are there to help me extend the system in some very awesome ways. In this case, adding that rotational element to allow the shell to tumble through the air.

To make a long story short, I redid the particle system to be a rotating projectile actor, added a bunch of functionality and looked at some standard fireworks types and gave the whole thing some variety! There are now two shell types, four blast types and it's really simple to extend and modify!

I'm releasing it out to he wild for anybody to use, modify or whatever. If you'd like to give me credit in whatever you make, that would be wonderful, but I mostly hope everybody can learn from it!

Thursday, July 24, 2014

TS_Tools first release: UE4 Mass FBX Exporter and More!

Introducing UE4 FBX Exporter : TS_UE4FBXExporter (sexy name, I know)!

What's it let you do?

  • Export each selected mesh to an individual FBX file
    • Move each mesh to 0,0,0 for export (Then put it back where it belongs when it's done like my kids NEVER DO!)
    • Name Each FBX according to the MAX scene name
  • Allows you to use a grid object to set an arbitrary origin (For really big scenes)
    • Just make a Grid helper and name it UE4_Grid and the script will detect it
  • Copy the location, position and scale or selected objects to the clipboard using Unreal-friendly syntax allowing you to paste thousands of objects objects into your UE4 maps with a couple of clicks!

It's pretty straightforward, but Here's a bit of a walkthrough to help you out!

Using UE4 FBX Exporter

Part 1: Installing the script

  1. Open MAX and go to the menu bar MAXScript>Run Script...
  2. Find where to downloaded and unpacked the script and select
    This will seemingly do nothing, but rest assured it's actually copied the scripts to your usermacros folder. You will need to install the script using Customize UI.
  3. Go to the menu bar: Customize>Customize User Interface...
  4. I like to make a menu, but you can also add the script to your quads, create a shortcut or add it to a toolbar. To add it to a menu:
    1. In the Customize User Interface dialog, select the Menus tab
    2. On the right-hand side, click New... and Type in a name for the Menu (I did TS_Tools)
    3. in the lower-left Menus list, find your newly created menu and drag it into the window on the right. You should see it appear in your menu bar immediately.
    4. Int he category drop down, look for TS_Tools
    5. Drag and drop the Export Objects to FBX for UE4 item into the newly created menu in the right list. You should see the new option appear in the menubar and should be able to launch the script by selecting it.
    6. Curse Autodesk for making this such a pain in the ass.

Part 2 : Using TS_UE4FBXExporter to export FBX files:

  1. Launch the script
  2. The script defaults to moving each object to 0,0,0 before exporting. This will be reflected in the list.
  3. Select the objects/meshes you want to export
  4. Verify the names, etc in the list
    1. The script creates a single FBX for each mesh and names it the scene name
  5. You can open the export directory easily by hitting the Open Export Path in Explorer button
    1. The script creates a /export directory in the directory where the .MAX file is located
  6. Click Export Selected Objects button. Each selected mesh will be exported.
  7. If you've turned on Show FBX Export Dialog, you will be prompted once before the export, allowing you to set the options for that batch process
  8. Now, simply import the exported FBX files into UE4 however you like!

Part 3 : Using TS_UE4FBXExporter to copy the location of objects and paste them into UE4:

This one's a little strange, but I'll try and explain what's happening: The script takes the position, rotation, scale and scene name of each selected object and does some trickery to create a string that it copies into the clipboard. You can then paste the string into UE4 and it will place a cube mesh into the scene for each object. You can then easily replace the cube with whatever mesh .

  1. Launch the script
  2. Select Copy Selected Object Transforms and Names to Clipboard
  3. Select the objects to be copied
  4. Press Export Selected Objects button
    1. This can take a little time to complete, so don't panic
  5. Once MAX returns, you should have a string copied to your clipboard that UE4 will understand
    1. You can see what it looks like by opening a text editor and pasting the results 
  6. Open your UE4 scene
  7. Go to Edit>Paste
  8. You will get an array of cube objects in your scene that will have the same position, rotation, scale and names as they did in MAX
  9. Simply find the Static Mesh you want in the Content Browser and replace the mesh in the Details tab for the selected actors!


2014.07.24 - First Release!


Monday, July 14, 2014

Personal Jet - Interactive Visualization Demo

Me and some friends were blessed with the Unreal Engine 4 Beta a while back and we spent a few weeks making this:

We posted it once before under the Company 4T banner but Honda didn't like that so, I'm back posting it for my own personal gain :D

Our little team built the model over about four weeks. Everything is entirely dynamic, no baked lighting, etc. There's of course some trickyness and fakery, but for the most part, it's really just standard CGI lighting techniques!

I was responsible for the lighting, time of day system as well as the materials, cinematics/matinee and the blueprints (Pawn, Player Controller, HUD and interactive elements), as well as my usual tech art duties :D

I hope you like it. We're almost done getting everything all polished and squashing a few bugs and I hope to release the project soon!


Saturday, July 12, 2014

Drone Zone Development Update 2.1 - Strike Drone video!

Hey all. I wanted to link to the new Development Blog update over at

I've finished getting Tony's new Drone into the game and gave it a spin. I've also been working on the powerup system and some fancy new effects to go with those powerups such as the shield powerup shown in the video below.



Friday, July 11, 2014


I had an idea for an electric attack using blueprints to cast traces into the scene to 'feel' for objects and send bolts of electricity at them.

The blueprint is fairly simple: Randomly (but quickly), a trace is sent out in a random direction. If it hits, it sets the end-point of the ribbon particle system and spawns the sparks, if not the endpoint is somewhere less than half the distance and no sparks!

Here's the result:

Drone Zone Development Update 2!

Head over to the ol' Drone Zone blog to check out the latest and greatest!

Featured this time is the new Strike Drone by Mr. Tony Russo! It's GREAT!

Thursday, July 3, 2014

Awesome UE4 Tricks #1: Take screenshots directly in the editor using F9 or High-Resolution shots

Not quite sure what else to write about this.

When using the editor, simply hit F9 when you want to take a nice screenshot. It will capture the view from the active viewport, sans the HUD and put it into [yourProjectName]/Saved/Screenshots/
UE4 will also give you a little pop-up in the lower right hand corner with a clickable path straight to the shot! (Ironically, I couldn't get a screenshot of this happening!)

Need a  higher resolution? Take a High-res Shot!

In each viewport, there's a little triangle in the upper-left hand corner. Click there and go down to High resolution screenshot:

A dialog will pop up that will let you set the resolution multiplier as well as selecting a region of the viewport to capture.

Again, the shot will be put into your project folder, ready to be put online.

The only drawbacks are that the screenshot is in .bmp so you'll need to convert it to something more web-friendsly (May I suggest SageThumbs!) if you're going to share it. Also, as of right now, you can't take shots of other windows like blueprint graphs, etc. only the 3D viewports.

Here's a video of all this in-aciton!

Wednesday, July 2, 2014


No seriously, we're getting married in a small ceremony in three weeks. PBR Materials Shannon has a nice ring to it doesn't it?

Physically Based Materials are an absolute revelation in content creation for games. Not only for the visual quality they allow, but for the workflow and reliability they enable.

The below examples are the same six materials in wildly differing lighting conditions. Absolutely NOTHING has been modified in the material to make it look good in each environment. This isn't entirely because of the material model: Unreal Engine 4 uses some fancy tricks to impart reflections and lighting information to surfaces that help bring the qualities of the materials to life. It's this synergy that allows for the much improved quality, and the incredibly simplified workflow.

Below, you can see the shader network for the metal materials. As you can see, there's absolutely no advanced technical shader construction going on. Just some straight-forward scalar and vector settings and textures. No cube maps, no complex Fresnel falloffs, no HDR highlight breakouts.

This has massive implications for production. No longer do artists need to learn complex and tecnical shader tricks to get the look they want. Artists just need to think in a slightly new way.

The way i've described it to our artists on Drone Zone is to think of the surface as the following three parameters:

  • Color
  • Metal
  • Roughness

With those three parameters, they can describe almost any surface they need. We're pretty much ignoring the specular input and only using the Ambient Occlusion input for our dynamically lit models with explicitly bakes Normal maps (Pretty much just the Drones)
Here's the latest an greatest from Mr Tony Russo showing a great combination between paint, scratches and metal:

And, here's the material. The only "trickery" here is the emissive map!

Here's the best part. The Tech Artist, Me, didn't have to do ANYTHING (other than education)! Tony nailed it and it turned out great! It's DONE. WOOOOO!

It's almost easy :o