I’ve made a simple moving platform in Unreal Engine today. This is used in platform games all the time, be it as a triggered mechanism or an automatically moving always-looping/moving thing. Remember all those gaps you need to cross over a deep ravine, while stone platforms are moving left and right, and you’ll have to jump over them and make sure you don’t die? Yeah, those are the ones. I’ll show you how to make one of these in Blueprint.
With a new Actor Blueprint, I’ll add any type of object that will serve as my moving platform. A squashed cube will do, or anything more fancy if you wish. I found the platform above in the Synty Sci-Fi City Assets. It needs to be movable rather than static, otherwise Unreal Engine will throw an error message as it’s trying to animate it.
In the Event Editor, I’ll hook into Event BeginPlay for an always-moving platform. It’ll be different for a platform that is triggered as a result of a player’s action. Any trigger will do to kick off the yellow Timeline Node. I’ve called mine Elevator, and here’s how it’s hooked up:
The Height parameter drives the Z Location of our platform (referenced as Target). The real magic is happening inside the Timeline Node though, so let’s have a look at that:
Here we have a vector track I’ve named Height. It’ll be accessible as a pin on the node, as seen in the previous screenshot. There are five keyframes on this track (creatable by right-clicking), interpolating the output value between 0 and 800, and leaving a plateau at the top and bottom so the platform waits for the player to step on/off.
The sequence will auto-play and loop indefinitely. Adjust as necessary. Here’s what it looks like in the game:
When something happens in our game, we may need to play a sound file. Think of anything from firing a bullet, playing footsteps during a walk, or a sound that is fired as a result of us sliding something open. To play those sorts of files we can use a method called Play Sound At Location. Let me show you how it works.
We need several things to make it happen:
a sound file, imported into our project (in WAV format)
the world location of where we’d like to play our sound
a trigger (any event will do)
Here’s what this looks like in Blueprint:
In this example I’m playing a sound file called Door_Movement. It is triggered by a Do Once node, but any trigger will do. Do Once is nice because it avoids your file being played 60 times a second which is… annoying.
The Play Sound at Location node needs to know where to play the sound, and in my case I’m playing it where my Trigger Volume is located (which is likely where my player is located to hear the sound, having just stepped into said Trigger Volume). To get this location, I need a reference to the object, and a GetWorldLocation node. That’s it!
There are some exciting items on the Play Sound node, like the pitch and volume controls. I’ve used an interesting effect in a Game Maker project once, where the “dying” sound an enemy makes is randomly pitched a tad higher or lower than the basic sound, adding a little variation into a single sound file.
I bought the Synty Farm Asset pack recently. The demo level looks great, except for the fact that the windmills dotted around the farm are not rotating. This looks a little bit out of place with the rest of the animated scene. Being the newbie that I am, I was wondering how I could make the mills turn, and thankfully I’ve found a solution. Let me share it with you here.
The first thing we need is an AddActorLocalRotation node. Type “rotation” in the search field and you’ll see a huge variety of nodes popping up. Some others will work, however in my experiments, the ones suggested by other sources did not rotate my object 360 degrees (let alone indefinitely). AddActorLocalRotation seems to do the trick though.
Next, drag off the Delta Rotation parameter and add a Make Rotator node. This will let us choose around which axis the object needs to be rotated. Thankfully we’re getting XYZ values in addition to the more “proper” values which sadly mean nothing to me. From the object in my viewport I can tell that I need the Y (Pitch) value. The simplest way to make this thing spin is to hack in a value here manually.
A more elegant way would be to promote our desired input to a float variable. The advantage is that we can now set the value from outside the Event Graph, and without having to re-compile the Blueprint if we want to make a change to the rotational speed.
Click Simulate to see the effect in the viewport, or play the level with your Blueprint actor in the scene.
I’ve just found out how to change values for Morph Targets on objects in Unreal Engine via code. This will come in handy when any attribute needs to be updated either as a result of user input, or via automation. Here’s the basic workflow:
know the exact name of the Morph Target
add a Set Morph Target node in Blueprints
populate it with the name of the morph
give it a value (between 0 and 1, equivalent to 0% to 100%)
Here’s a small example that continuously changes my Genesis 8 character from Basic Female into Olympia. While not particularly useful in itself, it illustrates how a parameter change can trigger a morph.
When you start a new Blueprint Class in Unreal Engine, there’s this weird white ball that shows up in the centre of the viewport. I believe it represents the Default Root object. Trouble is, there’s no obvious way to get rid of it, even when you add a mesh object to your Blueprint. For a troubled and easily confused beginner like myself, I don’t even know what question to type into Google to get an approximate answer.
In this article I’ll show you the simple solution to the problem. Here’s the ball I’m referring to:
Even with a Static Mesh in my scene, that ball persist. I can’t even select it.
In this episode I’ll show you the complex process of setting up animated particles in Blender. I’m doing this for an Eevee render, but the principle will work in Cycles just as well. They can be used to give atmosphere and depth to your renders, or to create other exciting effects like bokeh. There’s a lot going on in this video, so I thought I’d provide some written instructions in this article too. Here’s what’s coming up:
For this whole project I’ve used Blender 2.83.1. You can see an example of the effect in action on my Sad Robot animation. My wonderful Patreon Supporters have access to the scene file I’m building for dissection, study, amendment and commercial use.
Remember how I was so thrilled about that new Blue Yeti microphone in my previous post, and how this thing sold out so quickly? Well it arrived… and I’m less than pleased with the service I’ve received from online giant Amazon.
What they’ve sent me as the correct item, but it was not a new item. It showed heavy signs of usage. Let me show you some pictures below, anon about that hilarious chat I had with their customer services agent.
Grab a coffee and read a funny story of how Amazon may have lost their edge in Customer Satisfaction.
I always forget how to rotate HDRIs in Blender. It’s really not that difficult, but somehow this information doesn’t seem to save in my brain. I’ve given up trying understand why, so I thought I’d write it down for a future visit. At least I know where to look now 🙂
In the Shading Tab, switch over to World. Add your HDRI image as you usually would (with an Environment Texture).
To make this thing rotate, we need to make ourselves a Texture Coordinate (under Input) and plug that into a Mapping Node (under Vector). Connect the Generated output into the Vector input, then plug the Vector output into the Environment Texture so that we can control the various aspects of our HDRI now.
We’re after the Z rotation, which will make or HDRI rotate horizontally. Here’s the complete node setup (click to enlarge):
Getting characters and scenes from DAZ Studio into Blender is one of the toughest things to get right. It’s an endlessly time consuming, confusion and generally un-fun process. Several scripts exist to make this happen, yet many of them fail to make it a one-click solution. Jacques aka mCasual has been working for years on something called TeleBlender. Steve aka Backdoor 3D recently did a live stream on the process, and I finally had a chance to try it out myself.
In this article I’ll show you the workflow that I found worked best for me. You may know a better way, and perhaps it’s not the intended way of working, but it thought it might come in handy (since usage instructions on the download page of TeleBlender are literally non-existent).
I’m using the following versions, which will probably no longer exist by the time you read this article: