UE4 – Blueprints – Set Parent Class

Software:
Unreal Engine 4.24

When It comes to OOP inheritance, the best practice is to take a moment to think about code structure and decide which classes should be be extensions of a common super-class. But in a wild hackathon or game-jam, we may be blueprinting too hastily for that, and we may find out different blueprint classes actually have to be child classes of a common parent class after they already exist and have existing blueprints in them.
In this case will have to Set their parent class as a different class than the class we chose when we initially created them, and also create calls to the parent class event functions if needed.

Setting a BP’s parent class:

Click Class Settings, and under Class Options, in the Parent Class drop-down select the wanted parent class (superclass).
Annotation 2020-03-22 131138

 

Calling the Parent Class’s event functions:

Note:
When creating a BP class that is defined as child class in its creation this is done automatically

  1. Right-Click the current class’s Event icon, and select Add call to parent function:Annotation 2020-03-22 153156
  2. Connect the execution flow graph, and other inputs if necessary:
    Annotation 2020-03-22 161019

 

 

UE4 Blueprints – Spawn Actor Transform Note..

Software:
Unreal Engine 4.24

Short version:
When Spawning new actors via the SpanActor Blueprint node, initial transform must be supplied to the SpanActor node, and not defined in the spawned Actor Class’s Blueprint.

Annotation 2020-03-22 131138

Explanation:
Just found out the hard way, that when you spawn an Actor using the SpawnActor blueprint node, the transform data connected to the SpawnActor node is actually applied after the actors Construction Script and BeginPlay Event.
This means any transform you will try to apply in the spawned Actor’s Blueprint will be overridden and therefore not work.

UE4 – First Person Projectile Overlap Event

Software:
Unreal Engine 4.24

Had some frustrating time not understanding why doesn’t the FirstPersonProjectile Actor doesn’t “play ball” and generate Overlap Events when hitting my bad guys..
It turns out I had to change its collision (sphere) component’s collision settings to overlap dynamic objects (see image):
Annotation 2020-03-14 231242

Python for 3ds max – Select objects of type

Software:
3ds max 2020

Continuing this example,
If you need to select objects (nodes) of a certain type i.e. lights, cameras etc.
You can use the INode class’s GetObject() method to get a reference to the node’s object, or “modified object” in 3ds max terms, and use the object’s GetSuperClassID() method to get the integer id representing the object’s superclass.

In addition, the MaxPlus SuperClassIds class contains convenient constants that can be used to avoid having to check and remember the superclasses numeric ids.
See reference here:
https://help.autodesk.com/view/3DSMAX/2017/ENU/?guid=__py_ref_class_max_plus_1_1_super_class_ids_html

An example of a script that selects all light objects in the scene:

from MaxPlus import SuperClassIds
from MaxPlus import SelectionManager

def scene_objects():
   def list_children(node):
      list = []
      for c in node.Children:
         list.append(c)
         list = list + list_children(c)
      return list
   return list_children(MaxPlus.Core.GetRootNode())

for o in scene_objects():
   obj = o.GetObject()
   if obj.GetSuperClassID() == SuperClassIds.Light:
      SelectionManager.SelectNode(o, False)

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

UE4 – Blending materials using Paint

Software:
Unreal Engine 4.24

To blend materials or material properties using Paint:

  1. Create a material that blends 2 materials or material properties using a texture as a mask like this example.
  2. Assign the material to an object in the level map and select it.
  3. In the Editor’s Mode window,
    Select Paint mode, choose the Textures option.
  4. In the Brush settings, set brush Radius, and Strength.
  5.  In the Texture Painting settings, choose Paint Color and Erase Color.
    * These will usually be white and black, but that depends on how the mask texture is used (a single texture can be used to provide 3 different effect mask using RGB channels)
  6. in the Paint Texture property select the material’s mask texture you wish to paint.
    Annotation 2020-01-04 175329
  7. Paint using Paint Color using LMB strokes,
    Press Shift while painting to paint using Erase Color:
    uepaint
  8. When finished, hit Save and Apply:
    Annotation 2020-01-04 180851

Note:
As far as I know, there’s no way to create a new empty or solid colored texture in UE4,
So we have to import a texture to be able to paint it in the Editor.

>> The scanned PBR materials in demonstrated in this post are from Texture Haven (texturehaven.com)

Related:
Blending materials

Maya – Basic UV unwrapping

Software:
Maya 2018

Steps for basic UV unwrapping:

  1. Select all polygons.
  2. Apply planar UV projection just to get rid of all the current UV seams.
  3. Select the edges that that are intended to be UV seams.
  4. In the UV Editor menu choose Cut/Sew > Cut.
  5. Select all polygons.
  6. In the UV Editor menu choose Modify > Unfold.
  7. In the UV Editor menu choose Modify > Layout.
  8. Scale and rotate the UV layout to fit the UV space.

Related:
Multiple UV layouts