UnrealOni/Documentation: Difference between revisions

m
/cat
m ("toc toc" "who's there" "more sections")
m (/cat)
 
(16 intermediate revisions by 2 users not shown)
Line 7: Line 7:


====Video====
====Video====
;intro video
;Intro video




;ingame videos
;Ingame videos




Line 43: Line 43:


===Export===
===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 167: Line 206:
====Munitionfrenzy====
====Munitionfrenzy====
[[Image:UnrealOni_cheatcodes_munitionfrenzy.png|right|thumb|Weapon cheat "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.


Creating an array of weapon classes was already tricky... For RealOni we should better have the means to fill that array automatically.
: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.
The nodes for all the locations and rotations are meant to spawn the weapons in a circle whereby the player stands in the center.
Line 188: 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 208: 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 222: 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 240: Line 329:
We could make many tables but let's keep that number low. They will serve as milestones.
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 all possible." Cheats deal with levels, characters, AI, weapons, inventory, animations and particle. So it's a good overview.
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%"
{| class="wikitable" width="100%"
!colspan="4"|Cheats
|-
|-
!width="100"|Cheat
!width="100"|Cheat
Line 323: Line 412:
|-
|-
|munitionfrenzy
|munitionfrenzy
|50%
|ok
|needs rotation adjustment and better placeholders
|
|-
|-
|fistsoflegend
|fistsoflegend
Line 370: Line 459:
|reserved for current testing
|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]]