Related notes: Unreal Code Code
https://benui.ca/unreal/subsystem-singleton/ size map - on BP to check dependencies
Methodology
- don’t make logic and asset in same place !
- have a native parent class
- avoid references assets - soft ref / cast to type create hard ref to this type
Nomenclature
Tick
delay
dumpticks
- list all ticking
no Tick - timeline
Events
for latent (later) executions
- Begin Play
-
- Destory
-
- Trigger
-
- Tick
with delta (time elapsed from last call)
Event Dispatchers
can subscribe and fire when triggered
- cad define in data tab.
- to subscribe you bind dispatcher. can have many
Interfaces
- enforce structure , separation of concern
can communicate with other interfaces
can avoid casting
Tags
Abilities
Actor
Actor
- Can be spawned or loaded with level,
- Can make child’s
- Can inherent components.
- Can be used ad component
Scene Component
- attachments …
- can hierarchy and support transform to parent
Actor component
- more abstract don’t support transform
- used for path finding, movement…..
Blueprints
Blueprint Classes - create custom game object / prefabs
Function
similar to programing. execute code in frame was called.
- can communicate between BP. (can call from any but no: time /. delay )
- is processed once
- cheapest
Macro
collapse nodes. better use fn. but support more than one exec pin (for logic)
- more expensive
- only in one BP cant communicate
- can delay anf time event
- for repetition things
Casting
when csting to objevt > casting to bp > so loading entire BP to memo
if not using csat to :
resoult but only check if cast is succesfull (to check type) use:
has matching gameplay tag
is actor of class
- because
cast to
can pull ref to casting type.
Communicate between BP
Direct
Dispatcher
event i binding do overlapow fog kacpi !!!! struktura propertisem obiektu assetu (nie data asetu) - jest jako const zebys nie omgl zmieniac assetu w grze
-
Interface
- Create BP actor witch ray
- Ray trace > break: hit actor
Does implement Interface
node to check
- Ray trace > break: hit actor
- Create
BP Interface
Actor - event that create interface between BP
Logic
Loops, Gates, Do once, Seq
Memory management
Clear intermediate BP and component to not have any ref, because all of them would be loaded wit BP
CAn set Abstract !!!
can only ref assets belonging to level ??!
its good to move functionality to C++
References to Assets
- actor ref - will load child and partnt (specific obj) «
- class ref - load children
Direct reference
are loaded whenever BP is loaded.
(reference viewer, and size map tools) !!!!
when wand where load to memory. Dependencies:
hard
will load whole asset. Attaching object to BP. Load in memory whenever BP is loaded. (hierarchical cascading )
Soft references
-
delay load. Will not force, u must them explicitly load them
-
soft
‘link’ is storing location. Different way to acces it. Lod soft- async load asset (for individual or whole class)
- cast to class
- set (component to new mesh loaded to memory)
- set to hard variable Unload
- no way > can destroy actor.
- can threat like any uobject
( when created ref of given type, u need to load type to know that its soft )
inheretance
- Child BP implititly reference their patern classes and any asst they reference
Debug
Print Brak Point Watch Value Header Tool (5.1)
Editor scripting
Construction Script
Can do anything -
- keep it self contained for safety ! better do in blutility/utiliti widg/
Action utilitie blueprints (Action utilitie)
- Context menu buttons with functions.
- Asset actions / content browser context / level editor context
Things like :
- remove material overrides
-
if sth match class ….
RMB
events in level or browser
Editor utility Widgets
Edit tools. can help automate tasks. Can dock in UI.
- in background listening (like content validation)
Blutiliyy buttons
Acttor Action Utilities
Console comands
console comands & python
Asset validators
BP notes
set timer by event » (delay) » clear and invalidate timer by handle
Slate / UI
https://twitter.com/Mike_Prinke/status/1570065544774041600
Blueprints
For content references visual stuff and simple functionalites. begining load at use . With all references, lib and obj. C++ load at begining, use for larg math / saves / platform specyfic / controls / hjardwar SDK integrations / ticks /
BP are signifient slower than C++ (to x10) depend on mode: PIE > Dev Play > Pack > Buiild
Cost in number of nodes / casting / circular ref Loops and itterations expensive
Use Events when possible
Async load of obj. by map assets
https://romeroblueprints.blogspot.com/p/table-of-contents.html