Difference between revisions of "Engine:Unreal Engine 4"
m (added Infobox engine/ask to the bottom) |
|||
(11 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Infobox engine | {{Infobox engine | ||
− | |cover | + | |cover=Unreal Engine 4 logo.svg |
− | |developer | + | |developer=Epic Games |
− | |website | + | |website=https://www.unrealengine.com/ |
− | |first release = May 2012 | + | |first release=May 2012 |
− | + | |predecessor=Unreal Engine 3 | |
− | |predecessor | + | |successor=Unreal Engine 5 |
− | |successor | + | |wikipedia=Unreal Engine#Unreal Engine 4 |
− | |wikipedia | + | |listgames=false |
− | |listgames | ||
}} | }} | ||
+ | '''Key points''' | ||
+ | {{ii}} Complete suite of game development tools and engine used by over 500 games, see [[#Games|Games]]. | ||
− | == | + | ==Video== |
− | === | + | ===[[Glossary:Multi-monitor|Multi-monitor]]=== |
− | + | ''See [[#Ultra-widescreen|Ultra-widescreen]]. | |
− | |||
− | |||
− | == | + | ===[[Glossary:Ultra-widescreen|Ultra-widescreen]]=== |
− | + | {{ii}} Unreal Engine games are {{term|Vert-}} by default, unless the developer specifically implements proper {{term|Hor+}} ultrawide support. See each individual game's entry page for specifics. | |
− | {{ii}} | + | {{ii}} If a game is {{term|Vert-}}, FOV can be increased to give a proper 1:1 {{term|Hor+}} ultrawide image. See [[Glossary:Ultra-widescreen|the ultra-widescreen glossary page]] for details. |
− | {{ | + | {{ii}} If a game does not allow FOV to be adjusted, and an external mod to implement it does not exist for the specific game in question, then the game does not support a proper ultrawide experience. |
− | {{ | + | {{ii}} For multi-monitor setups, the resolution may be so wide that the in-game FOV option may not go high enough to achieve a proper 1:1 {{term|Hor+}} image. See individual game entry pages for work-arounds. |
− | + | ===[[Glossary:Field of view (FOV)|Field of view (FOV)]]=== | |
− | + | {{ii}} The FOV variable name is set individually by each developer and differs from game to game, so unfortunately there is no universal solution for adjusting FOV in games where it is not available as an option. | |
− | + | {{ii}} If the developers of a particular game have implemented FOV as a variable, it can usually be adjusted in GameUserSettings.ini. | |
− | + | {{ii}} For games in which customizable FOV is not supported, a wider FOV can be obtained by changing the FOV scaling from horizontal to vertical. | |
− | |||
− | + | {{Fixbox|description=Change FOV scaling|fix= | |
− | {{ | + | {{ii}} This results in a ''tremendously'' higher FOV than intended, and will likely result in a "fishbowl" effect on anything narrower than a 48:9 triple-monitor setup. Some users may consider this ultra-high FOV to be desirable, while others will find it detrimental to their enjoyment. |
− | {{ii}} | + | Using [[#Permanent console-variable (cvar) changes|the guide below]], change {{File|Engine.ini}} to include these lines: |
− | + | <pre>[/script/engine.localplayer] | |
− | {{ | + | AspectRatioAxisConstraint=AspectRatio_MaintainYFOV</pre> |
}} | }} | ||
− | === | + | ==Issues fixed== |
− | {{ii}} | + | ===Smoothed frame rate=== |
− | + | {{ii}} Similar to [[Engine:Unreal Engine 3|Unreal Engine 3]], many Unreal Engine 4 games (particularly Indie-developed games) use frame rate smoothing with a default value of 62, limiting fps in these games to 62. | |
− | {{ | + | {{ii}} Uncapping the frame rate may affect game logic. See each game's individual entry for specifics. |
− | {{Fixbox|description= | + | {{Fixbox|description=Disable UE4 smoothed frame rate|fix= |
− | + | Using [[#Permanent console-variable (cvar) changes|the guide below]], change {{File|Engine.ini}} to include these lines: | |
− | # | + | <pre> |
− | + | [SystemSettings] | |
− | + | r.VSync=0 | |
− | |||
− | |||
− | + | [/Script/Engine.Engine] | |
− | + | bSmoothFrameRate=0 | |
− | + | </pre>}} | |
− | |||
− | |||
− | |||
− | }} | ||
===Streaming stutter/slowdown=== | ===Streaming stutter/slowdown=== | ||
Line 61: | Line 53: | ||
{{--}} Changing it this way will cause some stutter/freezing when first loading into the level, but after finished loading it should hopefully let gameplay be more stable. | {{--}} Changing it this way will cause some stutter/freezing when first loading into the level, but after finished loading it should hopefully let gameplay be more stable. | ||
{{Fixbox|description=Disable UE4 asset streaming, and load all assets on map load|fix= | {{Fixbox|description=Disable UE4 asset streaming, and load all assets on map load|fix= | ||
− | + | Using [[#Permanent console-variable (cvar) changes|the guide below]], change {{File|Engine.ini}} to include these lines: | |
<pre> | <pre> | ||
r.Streaming.FullyLoadUsedTextures=1 | r.Streaming.FullyLoadUsedTextures=1 | ||
Line 67: | Line 59: | ||
</pre>}} | </pre>}} | ||
− | ===Jittery | + | ===Jittery temporal anti-aliasing=== |
{{--}} At higher TAA sample counts edges may appear jittery, even when still with no camera movement. | {{--}} At higher TAA sample counts edges may appear jittery, even when still with no camera movement. | ||
{{++}} Fortunately it seems there's a way to remove the jitter without compromising on TAA quality/sample count. | {{++}} Fortunately it seems there's a way to remove the jitter without compromising on TAA quality/sample count. | ||
Line 73: | Line 65: | ||
{{Fixbox|description=Stop current frame from being considered in TAA|fix= | {{Fixbox|description=Stop current frame from being considered in TAA|fix= | ||
− | + | Using [[#Permanent console-variable (cvar) changes|the guide below]], change {{File|Engine.ini}} to include these lines: | |
<pre> | <pre> | ||
r.TemporalAACurrentFrameWeight=0 | r.TemporalAACurrentFrameWeight=0 | ||
Line 93: | Line 85: | ||
</pre> | </pre> | ||
}} | }} | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===Native resolution is not available in borderless window modes=== | ===Native resolution is not available in borderless window modes=== | ||
Line 129: | Line 102: | ||
# Click on '''OK''' followed by '''OK''' again. | # Click on '''OK''' followed by '''OK''' again. | ||
# If performed correctly this should result in the borderless window mode of the game using the native resolution of the monitor as its internal render resolution. | # If performed correctly this should result in the borderless window mode of the game using the native resolution of the monitor as its internal render resolution. | ||
+ | }} | ||
+ | |||
+ | ==Other information== | ||
+ | |||
+ | ===Enable developer console=== | ||
+ | {{ii}} The developer console allows real-time adjustments through various Unreal Engine 4 console variables, along with being able to run debug commands like '''ToggleDebugCamera''' that enables a flycam mode. Most games ship with the console disabled, although often retains code related to it that allows for its reactivation through third-party DLL injection. | ||
+ | {{ii}} Independent of custom game code - potential for reliability. | ||
+ | |||
+ | {{Fixbox|description=Extract and set up the Universal Unreal Engine 4 Unlocker|fix= | ||
+ | # Download and extract the [https://framedsc.github.io/GeneralGuides/universal_ue4_consoleunlocker.htm#downloading-the-unlocker Universal Unreal Engine 4 Unlocker]. | ||
+ | # Run <code>UuuClient.exe</code>. | ||
+ | # Click 'Select' to select the process to inject the DLL into. | ||
+ | # Once the injection succeeds, press {{key|~}} in game to bring up the UE4 console (one press brings up mini-console, two presses will show the full thing). | ||
+ | # Type in desired command, or see [https://digilander.libero.it/ZioYuri78/ this list] of default UE4 cvars.{{Note|note=This list is for UE4 in general, most games will likely have custom ones not listed here.}} | ||
+ | |||
+ | '''Notes''' | ||
+ | {{ii}} <code>UuuClient.exe</code> needs to be run each time the game is started, as this fix is not permanent. Use the [https://community.pcgamingwiki.com/files/file/1443-universal-ue4-dev-console-launcher/ UE4 dev-console launcher] to automatically launch games with the console enabled. | ||
+ | {{ii}} If the console doesn't open when pressing {{key|~}}, try following the instructions in the console unlocker's <code>Readme.txt</code> file. | ||
+ | }} | ||
+ | |||
+ | ===Permanent console-variable (cvar) changes=== | ||
+ | {{ii}} Like most engines that use console-variables UE4 has a config file that it can read these variables values from at startup. | ||
+ | {{--}} Unlike most engines though the method it uses is a little non-obvious, which resulted in people editing files such as Scalability.ini (which could end up with inputted values being ignored depending on your graphics settings). | ||
+ | {{++}} Entering cvars into the Engine.ini file instead should ensure the value changes will take place no matter what. | ||
+ | {{Fixbox|description=Add cvar name/values to the Engine.ini file|fix= | ||
+ | The Engine.ini file will usually accept cvar name/value pairs inside it, but only if they're entered into a <code>[SystemSettings]</code> section. | ||
+ | # Open the <code>Engine.ini</code> file inside the games config folder in a text editor. | ||
+ | # If the file doesn't have a <code>[SystemSettings]</code> section, add one to the bottom. | ||
+ | # Inside that section add any cvar name/value pairs that you want, with the name/value separated with an '=' character, eg: <code>r.MaxAnisotropy=16</code>. Comments can also be added to the file by starting them with a ';' character. | ||
+ | # Save the file. | ||
+ | # Now when you next start the game, the cvars should hopefully be set as you entered them. | ||
+ | |||
+ | '''Notes''' | ||
+ | {{ii}} Values set via this method should usually override any value set elsewhere, however some games might store values inside savegames, which may override them when the save gets loaded - the only workaround for these kind of games is to set the value after loading the save [[#Enable developer console|via the developer console]], and hope that the modified value might be written into the save. | ||
+ | {{ii}} The game may rewrite this file when exiting, usually removing any empty lines and lines containing only comments - any custom cvars should hopefully still be saved however. | ||
+ | {{ii}} You should only make changes to the games config files while it's not running, as mentioned above the game may overwrite the file when exiting. | ||
+ | {{ii}} UE4 uses a hierarchical configuration scheme (on top of the multiple configuration categories previously mentioned), meaning that there can be multiple versions of (e.g.) Engine.ini found in different places, some of which may even be prefixed with 'Default', 'Base', or 'Windows'. In general, it is best to edit the config file in the user configuration directory as this should take priority over all others and will work even if the game ships with encrypted config files. This is usually located in <code>%localappdata%\<Game>\Saved\Config</code>. | ||
}} | }} | ||
Revision as of 16:53, 9 August 2020
Developers | |
---|---|
Epic Games | |
Website | |
https://www.unrealengine.com/ | |
First release date | |
May 2012 | |
Predecessor | |
Unreal Engine 3 | |
Successor | |
Unreal Engine 5 | |
Key points
- Complete suite of game development tools and engine used by over 500 games, see Games.
Video
Multi-monitor
See Ultra-widescreen.
Ultra-widescreen
- Unreal Engine games are Vert- by default, unless the developer specifically implements proper Hor+ ultrawide support. See each individual game's entry page for specifics.
- If a game is Vert-, FOV can be increased to give a proper 1:1 Hor+ ultrawide image. See the ultra-widescreen glossary page for details.
- If a game does not allow FOV to be adjusted, and an external mod to implement it does not exist for the specific game in question, then the game does not support a proper ultrawide experience.
- For multi-monitor setups, the resolution may be so wide that the in-game FOV option may not go high enough to achieve a proper 1:1 Hor+ image. See individual game entry pages for work-arounds.
Field of view (FOV)
- The FOV variable name is set individually by each developer and differs from game to game, so unfortunately there is no universal solution for adjusting FOV in games where it is not available as an option.
- If the developers of a particular game have implemented FOV as a variable, it can usually be adjusted in GameUserSettings.ini.
- For games in which customizable FOV is not supported, a wider FOV can be obtained by changing the FOV scaling from horizontal to vertical.
Change FOV scaling |
---|
Using the guide below, change [/script/engine.localplayer] AspectRatioAxisConstraint=AspectRatio_MaintainYFOV |
Issues fixed
Smoothed frame rate
- Similar to Unreal Engine 3, many Unreal Engine 4 games (particularly Indie-developed games) use frame rate smoothing with a default value of 62, limiting fps in these games to 62.
- Uncapping the frame rate may affect game logic. See each game's individual entry for specifics.
Disable UE4 smoothed frame rate |
---|
Using the guide below, change [SystemSettings] r.VSync=0 [/Script/Engine.Engine] bSmoothFrameRate=0 |
Streaming stutter/slowdown
- By default UE4 is setup to stream in level assets while playing, which could cause stuttering during gameplay when those assets are loaded.
- Fortunately this streaming can be controlled with a console-variable, for people with plenty of RAM & VRAM it might be better to disable it and load in all assets when the level first loads instead.
- Changing it this way will cause some stutter/freezing when first loading into the level, but after finished loading it should hopefully let gameplay be more stable.
Disable UE4 asset streaming, and load all assets on map load |
---|
Using the guide below, change r.Streaming.FullyLoadUsedTextures=1 r.Streaming.HLODStrategy=2 |
Jittery temporal anti-aliasing
- At higher TAA sample counts edges may appear jittery, even when still with no camera movement.
- Fortunately it seems there's a way to remove the jitter without compromising on TAA quality/sample count.
- This method supposedly could cause more ghosting in some games, though the author couldn't see this happen.
Stop current frame from being considered in TAA |
---|
Using the guide below, change r.TemporalAACurrentFrameWeight=0 Note that as mentioned above this may cause more ghosting artifacts to appear, likely depends on which UE4 version the game uses as different UE4 versions use slightly different TAA implementations. |
- This bug may occur when using a Vulkan beta driver from Nvidia.
Disable Use Collapsed Arrays option for the game |
---|
Run the game with this Launch Parameter: __GL_GlslUseCollapsedArrays=0 On Steam that would be: __GL_GlslUseCollapsedArrays=0 %command% |
Native resolution is not available in borderless window modes
- Newer versions of Unreal Engine 4 handles DPI automatically and prevents the use of native resolutions when a borderless window mode is being used. The render resolution will instead be the lower "DPI-aware" resolution.
- For example, on a 3840x2160 monitor with 150% DPI scaling set, 2560x1440 will be used instead, as 3840 / 1.5 (150%) = 2560 and 2160 / 1.5 (150%) = 1440.
Allow a game to use the native resolution in borderless window modes[1] |
---|
|
Other information
Enable developer console
- The developer console allows real-time adjustments through various Unreal Engine 4 console variables, along with being able to run debug commands like ToggleDebugCamera that enables a flycam mode. Most games ship with the console disabled, although often retains code related to it that allows for its reactivation through third-party DLL injection.
- Independent of custom game code - potential for reliability.
Extract and set up the Universal Unreal Engine 4 Unlocker |
---|
Notes
|
Permanent console-variable (cvar) changes
- Like most engines that use console-variables UE4 has a config file that it can read these variables values from at startup.
- Unlike most engines though the method it uses is a little non-obvious, which resulted in people editing files such as Scalability.ini (which could end up with inputted values being ignored depending on your graphics settings).
- Entering cvars into the Engine.ini file instead should ensure the value changes will take place no matter what.
Add cvar name/values to the Engine.ini file |
---|
The Engine.ini file will usually accept cvar name/value pairs inside it, but only if they're entered into a
Notes
|
Notes
- ↑ This list is for UE4 in general, most games will likely have custom ones not listed here.
References
- ↑ Verified by User:Aemony on 2019-10-25
- Used same method now for both Code Vein and The Outer World.