UnrealOni/Documentation: Difference between revisions

m
/cat
mNo edit summary
m (/cat)
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Assets==
==Assets==
===Import===
===Import===
====Images====
Unprocessed files like PNG can be imported by drag and drop in the Content Browser.
Unprocessed files like PNG can be imported by drag and drop in the Content Browser.


They will be saved as .uasset in the folder you dropped the original file.
They will be saved as .uasset in the folder you dropped the original file.
====Video====
;Intro video
;Ingame videos
====Sound====
====Data tables====
====Meshes====
====Levels====
====Characters====
====Animations====
====Logic====
* Blueprints ?
* C++ ?
===Data migration===
===Updating content===
===Export===
==Startup visuals==
'''Splash screen'''
It's not a level splash screen. It's shown when the game starts. In 600 x 200 pixel.
Settings > Project Settings > Platforms > Windows > Splash
:Editor Splash, Game Splash
Watch out for ''dead space'' at the left bottom area as it gets occupied at runtime by text displaying the engine version, the game's name, copyright, and loading progress.
<gallery>
Image:UE4_ProjectSettings_SplashScreen.png|right|thumb|Spash screens and game icon
Image:UnrealOni_ProjectSettings_SplashScreen_at_runtime.png|right|thumb|Editor spash screen at runtime
</gallery>
'''Game icon'''
Beneath the Splash, the Game Icon can be set. In 256 x 256 pixel.
: For Photoshop there is a free plugin available for making *.ico files.
'''Videos'''
;Show Intro video
:Settings > Project Settings > (Project section) Movies
:Wait for Movies to Complete [x] (prevent bug from closing video automatically right after start)
:Movies Are Skippable [x]
:Add element to array, insert an MP4 video
:Some older engine versions require the MP4 to have 25 fps.
:Bug: On Windows the mouse cursor will be shown during video playback.
An animated intro would be nice but that's unfeasible for us. Instead ingame cutscenes could be used.
;Display other videos in fullscreen, e.g. for Outro
:https://www.youtube.com/watch?v=W_nSACYTIvY




==General notes on using blueprints==
==General notes on using blueprints==
[[Image:UnrealOni_working_with_blueprints_1_expose_options_from_reference.png|right|thumb|Exposing object-specific nodes by pulling a pin out of a reference]]
[[Image:UnrealOni_working_with_blueprints_1_expose_options_from_reference.png|right|thumb|Exposing object-specific nodes by pulling a pin out of a reference]]
When right-clicking on a empty BP grid then you default you will see pre-selected categories and nodes.
When right-clicking on an empty BP grid then by default you will see pre-selected categories and nodes.


In rare cases you have to disable the Context Sensitive option to get all possible nodes.
In rare cases you have to disable the Context Sensitive option to get all possible nodes.


To get Variables and functions from specific objects you need a reference of that object first.
To get Variables and functions from a specific object you need a reference of that object first.


Connections can be double-clicked to get a Detour node. When you hover a Detour node with a little offset you will notice a changed mouse cursor, indicating that the node can be moved.
Connections can be double-clicked to get a Detour node. When you hover a Detour node with a little offset you will notice a changed mouse cursor, indicating that the node can be moved.
Line 124: Line 202:


The second parameter for the cheat name is purely decorative, it is only for the status message.
The second parameter for the cheat name is purely decorative, it is only for the status message.
====Munitionfrenzy====
[[Image:UnrealOni_cheatcodes_munitionfrenzy.png|right|thumb|Weapon cheat "munitionfrenzy"]]
[[Image:UnrealOni_variable_of_type_object_class.png|right|thumb|Setting a variable to type object '''class''']]
Creating an array of weapon classes requires to go into the side menu of the variable where you can chose between instances, classes, and soft references.
:For RealOni we should better have the means to fill that array automatically.
The nodes for all the locations and rotations are meant to spawn the weapons in a circle whereby the player stands in the center.




====Kangaroo====
====Kangaroo====
[[Image:UnrealOni_cheat_codes_kangaroo.png|right|thumb|Jump cheat "Kangaroo"]]
[[Image:UnrealOni_cheat_codes_kangaroo.png|right|thumb|Jump cheat "kangaroo"]]
For higher jumps we need bigger values for the "Jump ZVelozity" node.
For higher jumps we need bigger values for the "Jump ZVelozity" node.


Line 141: Line 230:
==Debugging==
==Debugging==
===Live scripting===
===Live scripting===
[[Image:UnrealOni_dev_console.png|right|thumb|Dev console (construction)]]
In Oni you can do some scripting with the developer console.
In Oni you can do some scripting with the developer console.


Line 161: Line 249:


Todo: Use = sign and spaces as separator and a select node to handle the different variables and functions.
Todo: Use = sign and spaces as separator and a select node to handle the different variables and functions.
<gallery>
Image:UnrealOni_dev_console.png|right|thumb|Dev console (construction)
</gallery>






===Sample functions and variables===
===Sample functions and variables===
[[Image:UnrealOni_console_func_ai2_chump.png|right|thumb|Function ai2_chump]]
;ai2_chump
;ai2_chump


Line 175: Line 265:
Also, the attached ai2_followme is not implemented yet.
Also, the attached ai2_followme is not implemented yet.


Dev notes: the rotation parts can probably by recycled for cheat code '''''munitionfrenzy'''''. <!--use loop for increasing the angle-->
<gallery>
Image:UnrealOni_console_func_ai2_chump.png|right|thumb|Function ai2_chump
Image:UnrealOni_console_func_ai2_chump_result.png|right|thumb|ai2_chump called from a custom dev console
</gallery>
 
 
==Ingame menus==
===Text pages===
'''Styles'''
 
Requirements for text pages with multiple styles:
* User widget (blueprint)
* Rich text block
* Data table (blueprint) with row structure "Rich Text Style Row"
* A new font file (if necessary)
 
Procedure:
* Add some default text to the rich text block
* Add a default row to the data table named "Default" and set the other defaults including the font
* Move and save rich text block in order to see changes
* Add more rows to the data table, those are the style
** Row name equals tag name which can be used in the rich text block
** Tags are to be used like HTML. <code>This is a text in default style and <nowiki><xeno30>this is a text in a style I named xeno30.</xeno30></nowiki></code>
 
[YT tutorial https://www.youtube.com/watch?v=msy7bRDpKF4]
 
<gallery>
Image:UnrealOni_rich_text_block_for_multiple_styles_user_widget.png|right|thumb|User widget with rich text block
Image:UnrealOni_rich_text_block_for_multiple_styles_data_table.png|right|thumb|Data table for rich text block styles
</gallery>
 
 
'''Images in rich text block'''
 
These images can serve as inline images, being only as big as the default text.
 
Requirements:
* RichTextBlockImageDecorator (blueprint)
* Data table (blueprint) with row structure "Rich Image Row"
 
Procedure:
* Add images to that new data table
* Use image tags in rich text block as following: <code><nowiki><img id="tagName"></></nowiki></code>
 
 
===Diary===
===Main menu===




Line 188: Line 324:
: If you disable '''''Can Characters Step Up On''''' via a Set node the object is still '''kickable'''.
: If you disable '''''Can Characters Step Up On''''' via a Set node the object is still '''kickable'''.
: These settings are interesting for pickup items such as '''powerups''' and '''weapons'''.
: These settings are interesting for pickup items such as '''powerups''' and '''weapons'''.
==Table of content==
We could make many tables but let's keep that number low. They will serve as milestones.
So if these are done we can say: "Yep, it's all possible." Cheats deal with levels, characters, AI, weapons, inventory, animations and particle. So it's a good overview.
===Cheats===
{| class="wikitable" width="100%"
|-
!width="100"|Cheat
!width="50"|Status
!Notes
|-
|shapeshifter
|
|needs data collection means
|-
|liveforever
|
|needs health system
|-
|touchofdeath
|
|needs health system
|-
|canttouchthis
|
|needs anim/throw system
|-
|fatloot
|
|needs inventory
|-
|glassworld
|
|needs material system
|-
|winlevel
|
|needs level management
|-
|loselevel
|
|needs level management
|-
|bighead
|
|needs character/anim system
|-
|minime
|ok
|RealOni imp.: adjust animation speeds based on char scale
|-
|superammo
|
|needs weapon system
|-
|thedayismine
|
|needs implementation of more debug features and char/weap cycling
|-
|reservoirdogs
|
|needs AI system
|-
|roughjustice
|
|needs weapon system
|-
|behemoth
|ok
|''RealOni'' imp.: adjust animation speeds based on char scale
|-
|chenille
|
|needs health, particle and daodan system
|-
|elderrune
|
|needs health system
|-
|moonshadow
|
|needs material management
|-
|munitionfrenzy
|ok
|
|-
|fistsoflegend
|
|needs anim system
|-
|killmequick
|
|needs AI system
|-
|carousel
|ok
|
|-
|bigbadboss
|
|needs health and weapon system
|-
|buddha
|
|needs health system
|-
|bulletproof
|
|needs health and weapon system
|-
|kangaroo
|ok
|
|-
|marypoppins
|
|needs jetpack mechanics
|-
|shinobi
|
|needs health, weapon, sound and AI system
|-
|godzilla
|ok
|''RealOni'' imp.: adjust animation speeds based on char scale and could be extended to test destroyable furniture and buildings
|-
|test
|
|reserved for current testing
|}
===Systems===
{| class="wikitable" width="100%"
|-
!width="100"|Cheats
!width="50"|Status
!Notes
|-
|Dev mode
|
|
|-
|Main Menu
|
|
|-
|Pause/help menu, diary and text pages
|
|
|-
|CJBO
|
|
{| class="wikitable" width="100%"
|-
|width="50"|CHAR
|width="50"|
|
|-
|CMBT
|
|
|-
|CONS
|
|
|-
|DOOR
|
|
|-
|FLAG
|
|
|-
|FURN
|
|
|-
|MELE
|
|
|-
|NEUT
|
|
|-
|PART
|
|
|-
|PATR
|
|
|-
|PWRU
|
|
|-
|TRGV
|
|
|-
|TRIG
|
|
|-
|TURR
|
|
|-
|WEAP
|
|
|}
|-
|Level objects and materials
|
|
|-
|Levels
|
|
* Demo content
* Documentation
** Collisions
** Modular construction
** Level streaming?
|-
|Level management
|
|
* Splashscreen handling
* Level load routine
* Savegames
|-
|Characters
|
|
* ONCC component
* ''Difficulty upgrade'' (ONCV)
* Documentation
** Import
** Adjustments
|-
| AI
|
|
* Perception
* Behaviour
|-
|Animations and H2H combat
|
|
* Standing and special idle
* Running and evasion
* Jumping
* Crouching and sneaking
* Prone mode
* H2H collisions
** Blocks
** Standard attacks
** Mechanics for the 7 damage factor types
** Throws
** Variants
* Overlay anims
** Aiming
|-
|Particles
|
|
* FX
* Behaviour (movements, attractors, physics)
* Damage
* Healing
* Function calling
|-
|Sounds
|
|
|-
|Impacts
|
|Can and should this be centralized? (ONIE)
|-
|Cameras
|
|
* 3rd person view
* Free camera
|-
|Cinematics
|
|
* BP logic
* FILM equivalent
* letterbox
* subtitles
|}
==Things that possibly need C++==
* Permutation of soundtrack parts
* Fine-tuned jetpack mechanics
[[Category:Fan-made games]]