UE4 – Create and Play a Level Sequence

Software:
Unreal Engine 4.24

To create animations and trigger them to play on game start:

First create a Level Sequence containing the animation:

  1. Create a new Level Sequence actor:
    Annotation 2019-12-23 164745
  2. Name the new Level Sequence and drag it to into the level:
    Annotation 2019-12-23 165833.jpg
  3. Select the actor you want to animate in the level and double click the Level Sequence in the Content Browser to open it in the Sequencer window:
    Annotation 2019-12-23 170453.jpg
  4. In the Sequencer window, press the +Track button to add a sequence track, choose the upper most option Actor To Sequence, the option to Add the selected actor will automatically appear first on the menu that will open on the right:
    Annotation 2019-12-23 170622
  5. Add the selected actor as a sequence track, expand the track’s Transform channels to reveal the Transform property you would like to animate, and click the + button for that channel to create the first key-frame:
    Annotation 2019-12-23 171623
  6. Activate the Create when channels/properties change option button:
    Annotation 2019-12-23 171932
  7. Move the time slider to a desired time for the motion and move/change the actors transform to create a new key-frame:
    Annotation 2019-12-23 172115.jpg

The Level Sequence now contains animation for the Actor, but when we play the game, the animation doesn’t play.
For the animation to play in game, we must trigger it fro a Blueprint, in this case the Level Blueprint:

  1. From the Editor Blueprints menu, choose Open Level Blueprint:
    Annotation 2019-12-23 173450
  2. In the Level Blueprint, drag the Event BeginPlay execution graph and create CreateLevelSequencePlayer node that will follow it:
    Annotation 2019-12-23 173759
  3. Drag the CreateLevelSequencePlayer node’s Return Value output and create a Play node that will be executed after it and receive it’s output:
    Annotation 2019-12-23 173854
  4. The Level Blueprint now has instructions to play a Level Sequence,
    but it’s not yet specified which Level Sequence to play:
    Annotation 2019-12-23 173929
  5. In the Variables list on the left, press the +Variable button to create a new variable and name it:
    Annotation 2019-12-23 174757
  6. With the new variable selected, in it’s details on the right, press the Variable Type button, and locate Level Sequence – Object Reference type:
    Annotation 2019-12-23 174932.jpg
  7. The Level Blueprint now contains a variable named seq of type: Level Sequence – Object Reference:
    Annotation 2019-12-23 175200.jpg
  8. Drag the new variable to the Blueprint and choose Get when placing it:
    Annotation 2019-12-23 175536
  9. Connect the variable’s output to the Level Sequence input of the CreateLevelSequencePlayer node:
    Annotation 2019-12-23 175609
  10. With the variable selected, in the details panel on the right, select the Level Sequence object it will be referencing:
    Annotation 2019-12-23 175627
  11. Press Compile and save the Level Blueprint:
    Annotation 2019-12-23 175646

The Level Blueprint now has instructions to play the desired Level Sequence when the level begins playing so a the animation we created plays when we hit play game in the editor:
Annotation 2019-12-23 180500

animseq.gif

 

Related:
UE4 Camera Animation

Optimized Architectural Glazing for Blender & Cycles

Software:
Blender 2.8 | Cycles Renderer

CG-Lion Architectural Glazing Presets Pack 1.0 is an custom architectural glazing shader I developed for Cycles render engine, that provides easy setup of real world architectural glazing surfaces, and ships with 40 ready to use material presets.

The shader has architecture-friendly real world parameters like ‘frosted‘, ‘milky‘, ‘smoked‘ glass etc., has convenient built-in inputs for effects like selective sand blasting or selective graphic coating and is internally optimized for transparent shadow casting.

CG-Lion Architectural Glazing Presets Pack 1.0 is available for purchase on Blender Market.

 

Related:
Realistic Spotlights for Blender & Cycles
Customizable Photo-realistic Car-paint shader for Cycles
Procedural Wood Shader for Cycles

Blender 2.8 – Select bones in Weight Paint mode

Software:
Blender 2.8

To select bones while in Weight Paint mode in Blender 2.8:

  1. Select the Armature
  2. Shift select the skinned mesh
  3. Switch mode to Weight Paint
  4. Shift-Click bones to select them
    * Shift double click to select bones hidden under the mesh

wpaint.gif

3ds max – Model a terrain from an Autocad topographical plan file

Software:
3ds max 2019

To model a terrain form an DWG (Autocad) file containing a topographical plan:

  1. Import the DWG file to into the 3ds max scene, and move the plan to the center of the 3ds max scene if necessary.
  2. Select the VIZBlock object and extract its linked geometry:
    Annotation 2019-12-12 181552.jpg
  3. Right click the Linked Geometry object and select:
    Convert To: Editable Spline
    Annotation-2019-12-12-181552b.jpg
  4. Enter Spline editing mode, select all the splines that are not part of the topography, and delete, or detach them so only the terrain ‘height lines’ will remain.
    Annotation 2019-12-12 182223.jpg
    Annotation 2019-12-12 182255.jpg
  5. With the topographical plan editable spline selected,
    Choose Create > Compound Objects > Terrain
    Annotation 2019-12-12 182640.jpg
  6. A Terrain object is now created:
    Annotation 2019-12-12 182716.jpg

To retopologize the terrain mesh to more usable quad polygon mesh:

  1. Create a new Plane primitive above the terrain mesh, slightly smaller at the sides, that has the wanted polygon resolution:
    Annotation 2019-12-12 183519.jpg
  2. From the Top view (important), with the new plane selected, choose:
    Create > Compound Objects > Conform:
    Annotation 2019-12-12 183607.jpg
  3. Set the creation method to ‘Move“, click Pick Wrap-To Object and than click the terrain mesh.
    It will now take some time for the new conformed mesh to be calculated..
    When the new object is ready, right click the viewport to exit the object picking mode.
    Annotation 2019-12-12 184044.jpg
  4. The Conform object is no ready, and contains both the terrain mesh and the new conformed quad polygon mesh:
    Right click it and choose:Convert To: Editable PolyAnnotation 2019-12-12 184552.jpg
  5. In Element editing mode, select the terrain mesh part and delete it to remain only with the new quad polygon mesh:
    Annotation 2019-12-12 184621.jpg
  6. Fix non conformed mesh parts by either moving or deleting them:
    Annotation 2019-12-12 184655Annotation 2019-12-12 184719
  7. The new retopologized terrain is ready:
    Annotation 2019-12-12 184752.jpg

 

The example demonstrated here is a DWG file by Jose Vega, free to download from Bibliocad.com

Blender – Copy Bone Constraints

Software:
Blender 2.8

To copy bone constraints from one bone to other bones:

  1. In Blender Preferences > Add-ons:
    Find the Interface: Copy Attributes Menu add-on, and enable it.
    Annotation 2019-12-12 165824
  2. In Armature Pose Mode,
    Select one or more bones, and select last the bone that has the constraints you want to copy.
  3. Press Ctrl + C to open the Copy Attributes menu, and select Copy Bone Constraints.

copyconstraints


Related post:

Quickly setup bone constraints

UE4 – Python – Placing level actors bottom at Z 0.0

Software:
Unreal Engine 4.22

This simple Unreal Editor Python example sets the Z axis location of all actors with names beginning with ‘Sphere_’ in a way that their bottom (minimum Z bound) is at height 0.0.

Download the script

> learn how to run Python scripts in the UE4 Editor

import unreal
from unreal import Vector

lst_actors = unreal.EditorLevelLibrary.get_all_level_actors()
print('place actors at 0 z')
for act in lst_actors:
    act_label = act.get_actor_label()
    if 'Sphere_' in act_label:
        print('placing: {}'.format(act_label))
        act_location = act.get_actor_location()
        act_bounds = act.get_actor_bounds(False)
        act_min_z = act_bounds[0].z - act_bounds[1].z
        location_offset = Vector(act_location.x, act_location.y, act_location.z - act_min_z)
        act.set_actor_location(location_offset, False, False)

* note that when copying and pasting a script from this example, the indentation may not be pasted correctly.

Note:
The get_actor_bounds unreal.Actor class method returns a tuple object containing 2 unreal.Vector objects, the first being world space location of the actor geometric center, and the second is the corner of the bounding box relative to the center.

‘Sphere_*’ actors before running the script:

Annotation 2019-12-08 225356.jpg

‘Sphere_*’ actors after running the script:

Annotation 2019-12-08 225503.jpg

 

Related:
Get started with Python for Unreal Editor
UE4 – Python – Importing assets

Blender – Modeling character clothes using cloth simulation

Software:
Blender 2.8

This character project is the first one in which I’m using physical cloth simulation in Blender to model the character’s clothes at proxy quality (they will be detailed further manually). learning this approach to clothes modeling demanded a lot experiments, trials and errors to get it right, in this short article, I’ll try to provide some insights, tips, and settings that can speed up the process.

Watch the full modeling process here

General notes and tips:

  1. When modeling the basic shape of the cloth try to “cut” a realistic cloth pattern for your desired cloth model. if you’ll search images on the web for “trousers cutting pattern” or “coat cutting pattern” you’ll find many examples.
    * See images below
  2. Create proper UVs for the cloth mesh when its still flat (before the simulation)
  3. In Blender cloth simulation, isolated edges in the mesh (edges without polygons) are treated as sawing springs, and are an important part of the cloth setup.
  4. Use a low poly proxy model for your characters body mesh, it will speed up the cloth simulation.

Early experiments:

In this experiment I used a simple tubular pants-like mesh that I quickly modeled around the character’s legs and pelvis (not a realistic cloth cutting pattern), with the top (weist) vertices defined as a vertex group with shrinking cloth property.
The result looks like training suit pants. it wasn’t at all what I wanted for this character, but I actually like it and probably will use such pants on other characters or on this one as a secondary look.

cloth_study

In this experiment I started trying to model an actual man’s trousers cutting pattern, and as you see, it still needs tweaking.

Blender_Cloth

This experiment is beginning to produce reasonable results, the undershirt initial shape is still cut too low at the back.
* Note that there is an animated belt collision object to bring the undershirt to it’s shape at the weist

Blender_Cloth_B2

Final Settings:

The final undershirt initial model:

Annotation 2019-12-08 120355

The final pants initial model:
* Note that the belt mesh is a vertex group defined a fixed in the cloth simulation, and that it’s split to parts corresponding to the edges of the pants shape that need to be sawed to it. (see the process here)

Annotation 2019-12-08 120618

The full final cloth setup for the character. the setup includes a low poly collision object of the whole character and shoes, undershirt mesh, pans mesh and animated (contracting) belt collision for the undershirt:

Annotation 2019-12-08 120941

The final cloth simulation:

cloth

cf

cb

Cloth Settings:

Cloth simulation settings for the undershirt:

cloth_undershirt

Cloth simulation settings for the pants:

cloth_pants.jpg

Related posts:
Blender 2.8 Character Project