# data[].attributes.attachment_link.description
Tutorial on how to have a typerwriter effect made with Widget Blueprint

# data[].attributes.attachment_link.readable_text
From desktop to mobile in virtual reality or augmented reality, Unreal Engine 4.18 gives you the tools to deliver the types of content users demand. With expanded and improved platform support, you can deliver content wherever users consume it. In our relentless pursuit of a more efficient and streamlined development process, we continue to make updates and improvements to all of our tools so that you can deliver content faster than ever before.

With new lighting features like Volumetric Lightmaps and multi-bounce indirect lighting from Skylights, your worlds can achieve a greater sense of realism and believability. You can even bring the real world into yours with the new Media Framework features that enable real-time compositing. Or, build your world on top of the real world for the ultimate in immersion using Apple's ARKit and Google's ARCore.

Your potential audience is constantly evolving and getting content from new and different platforms. Unreal Engine 4.18 puts your content on every major platform with greater fidelity and higher performance than ever before. We made the desktop forward renderer available on recent iOS devices to enable high quality mobile and AR content that runs blazing fast. WebAssembly is now the default for HTML 5 projects so you can create complex games for the web that load quickly and run smoothly.

Unreal Engine 4.18 enables you to focus your time on the things that matter most. With the new global Find in Blueprints search functionality, you'll never waste time looking for something in multiple Blueprints ever again. We have also added improved Clothing tools, a new Physics Asset Editor, and advanced Material Editor preview support along with a host of other quality of life improvements that significantly speed up the development process.

In addition to hundreds of updates from Epic, this release includes 98 improvements submitted by the incredible community of Unreal Engine developers on GitHub! Thanks to each of these contributors to Unreal Engine 4.18:

Akihiro Kayama (kayama-shift), Alan Edwardes (alanedwardes), Alec Kosik (akosik), Andrey Yamashev (ayamashev), Artem (umerov1999), aziot, Cameron Angus (kamrann), Carsten Neumann (cneumann), Cengiz Terzibas (yaakuro), Chris Conway (Koderz), Christopher Reed (christopherreed), Cody C. (Mumbles4), Courtland Idstrom (Frugality), DaveC79, DavidNSilva, getnamo, Grant Peters (ggpeters), Guillaume Buisson (monsieurgustav), Harry Kim (shuaiharry), Ian Huff (IanMatthewHuff), IHappyDayI, Ilya (ill), Isabela Schulze (Ereski), Jason Calvert (jasoncalvert), Jesse Yeh (jesseyeh), John McBroom (jimbomcb), Jørgen P. Tjernø (jorgenpt), Josef Gluyas (Josef-CL), Kalle Hämäläinen (kallehamalainen), karanseqwb, Konstantin Nosov (gildor2), Kostas Nakos (jubanka), lwdingNT, Masanori Shinkawa, Mathias Hübscher (user37337), Matt Hoffman (LordNed), Maurice Laveaux (mlaveaux), Michael Allar (Allar), Michael Kösel (TheCodez), Mikayla Hutchinson (mhutch), minichris, Nick Pearson (Nick-Pearson), Nick Verenik (nverenik), Patrice Vignola (PatriceVignola), projectgheist, Rama (EverNewJoy), Roman Chehowski (RChehowski), Roman Maksymyschyn (miracle7), Sam Hocevar (samhocevar), Scott Freeman (gsfreema), Sébastien Rombauts (SRombauts), Sertaç Ogan (SertacOgan), steelixb, stfx, Triplelexx, Vivid Games - Engine Team (enginevividgames), Vladimir Ivanov (ArCorvus), XueBing (DarkSlot), Yujiang Wang (Luoshuang), yhase7, YuchenMei, Zeblote

Major Features

New: Volumetric Lightmaps

The new Volumetric Lightmaps enable high quality lighting on movable objects from low cost precomputed lighting! Characters, particle systems, instanced foliage, and other dynamic objects appear more grounded to the environment than ever before.

Volumetric Lightmaps store precomputed lighting at all points in space by covering the entire Lightmass Importance Volume with 4x4x4 bricks of lighting samples. Bricks are placed with higher density near static geometry, where indirect lighting is changing the most. This data structure allows efficient interpolation of indirect lighting to any point in space on the GPU. The Volumetric Lightmap is interpolated to each pixel instead of once for the whole component and has more reliable detail than our previous Indirect Lighting Cache method, resulting in fewer cases of light leaking.

For more information and details on using Volumetric Lightmaps in your project, see the Volumetric Lightmaps documentation .
Precomputed lighting on Volumetric Fog
Volumetric Fog now interpolates precomputed lighting to its position in space using Volumetric Lightmaps enabling Stationary lights - which have their indirect lighting stored in lightmaps - to affect fog. Static and Emissive lights affect fog without costing anything, since they're all merged into the Volumetric Lightmap.

Skylights are also now shadowed properly, preventing indoor areas from becoming over-fogged.

1 - Skylight on fog is shadowed properly, 2 - Uniform skylight on fog has leaking

Performance

Volumetric Lightmaps on a third person character cost .02ms of GPU time on PlayStation 4. All Indirect Lighting Cache Rendering thread cost is removed.

Memory usage in Paragon's Monolith map went from 5Mb with the Indirect Lighting Cache up to 30Mb with Volumetric Lightmaps at default DetailCellSize settings. Memory usage can be seen under 'stat memory'.

Detailed Comparison
New: Improved Static Skylight Directionality

Skylights used to be represented to Lightmass with a third order Spherical Harmonic, which didn't capture the detail present in a sunrise or sunset. We are now using a filtered cubemap with much higher resolution by default. Lightmass chooses the appropriate mip of the cubemap based on the size of the Final Gather rays to avoid aliasing. You can see the most difference in heavily occluded scenes, with a skylight cubemap that has a lot of brightness and color variation.

1 - New filtered cubemap Static Skylight, 2 - Original Static Skylight

The smaller the opening, the more directional sky lighting will become. It is even possible to recreate a pinhole camera effect with a small enough opening.

Skylight source cubemap

Resulting sky lighting

New: Multi-bounce Indirect Lighting from Skylights

We now have support for multiple indirect lighting bounces from static and stationary Skylights through a new 'Num Sky Lighting Bounces' setting in World Settings -> Lightmass. Thanks to forum user Luoshuang for the first implementation of this feature.

1 - Multiple skylight bounces, 2 - Single skylight bounce

Your materials need to have a high diffuse value for multiple skylight bounces to be noticeable in most cases. For example, with a diffuse value of .18 (18% grey), the second skylight bounce will only contribute .18^3 = .006 of the light's emitted energy which is very subtle. With a diffuse value of .5, the second skylight bounce will contribute .125 of the light's emitted energy and be noticeable.

As a bonus we also get multiple bounces from Emissive meshes:

Lightmass uses a Radiosity Solver to compute multiple bounces for Skylights and Emissive meshes. Each bounce increases non-distributable build times, so use with care.

New: Apple ARKit iOS 11 Support

Unreal Engine 4.18 includes production-ready support for Apple's ARKit in iOS11 based on our collaborations with partners for Apple's keynote announcing the iPhone 8 and iPhone X.

We've streamlined workflows making use of existing framework components, added robust handling of the passthrough camera, and increased fidelity by improving performance and prediction.Download the updated ARSample project to see what's changed for 4.18.
Note: There have been significant changes since the experimental support for ARKit in Unreal Engine 4.17. ARKit projects created using 4.17 will require updating to work in 4.18.
Getting started
Getting started in now super easy. All you need to do is:

1. Enable the appropriate ARKit plugin for your project.

2. Check the bStartInAR property in Project Settings.

3. Make sure you have a Pawn with a CameraComponent.

Known ARKit Issues

Device rotation is not fully supported yet. At the moment you should select Landscape Right as the only supported orientation for your project.

The only exposed function for hit-testing is HitTestAtScreenPosition_TrackingSpace. This returns the results in the CameraComponent's parent's space. In the default setup, that is the Pawn's space. To translate to world space we currently need to multiply the result by the parent's (e.g. Pawn's) world transform.

The function HitTestAtScreenPosition_TrackingSpace ignores the Types parameter; it will always hit-test against all the available surfaces and return results that can be manually filtered by checking the Types field of the FAppleARKitHitTestResult struct.

FAppleARKitHitTestResult does not populate the Anchor property; it is always nullptr.

World Scale is currently assumed to be default, and cannot be changed.

New: Google ARCore Developer Preview Support

Unreal Engine 4.18 contains official support for Google's ARCore developer preview which takes advantage of common augmented reality functionality in the engine and features improved handling of the passthrough camera.

SteamVR Support on Mac

We're happy to announce that as of 4.18, UE4 officially supports VR on Mac through SteamVR! All the same interfaces that you're used to on the PC are available on the Mac, so it's easy to transfer your project to Mac to give it a spin. The update comes alongside support for Metal 2 and many other runtime optimizations. Update to the latest release of SteamVR and give it a try!

New: Clothing Tools

We have added a completely revamped toolset for creating and configuring clothing in the Skeletal Mesh Editor!

There is now a Clothing pane for editing an expanded set of clothing-specific properties that provide more control over clothing constraints, self collision vertex culling, inertia scaling. Enhanced paint tools enable painting per-vertex clothing parameters directly on the mesh. The new paint tools include: Brush, Gradient, Smooth, Fill. Painted parameters can be switched out instead of overwriting to aid iteration.

The clothing tools have been Integrated with Physics Assets for collision authoring. A new LOD pipeline for creating and replacing simulation meshes in a Clothing Data object that includes a parameter mapping system for mapping your painted parameters onto new LODs or replacement geometry which estimates lower detail LOD parameters from higher detail LOD parameters! It is also much easier to create clothing data in the Skeletal Mesh Editor by right clicking the mesh section to convert.

This is in addition to all of the smaller bugfixes and improvements highlighted while the tool was experimental / early access.

Note: APEX file import still available for those preferring a DCC pipeline

Media Framework in 4.18 has been significantly updated and extended to support upcoming advanced use cases, such as real-time video compositing, time synchronization, simplified workflows, capture hardware & video-over-IP support, online media streaming, integration with Unreal Editor, and improved stability and performance!

The Media Framework API has been streamlined to improve compile times and updated to make use of modern features in C++11. In addition, high-level media player logic has been refactored from a push-based paradigm to a pull-based methodology and moved into reusable Engine-agnostic classes that enables better separation of concerns in media player interfaces.

Latency and Performance is improved due to a timecode-based sample processing pipeline with high-frequency ticking for time-sensitive samples - such as audio, camera tracking, and face tracking - and multi-stage ticking that can be used by any object for better frame utilization and predictable timing.

Audio playback is now integrated with new Audio Mixer API and makes use of new Media Sound Components (replaces Media Sound Waves) that are built on top of Synth Components which can be attached to level actors and used in UMG widgets. Media sample rate converter (previously supported only 16-bit @ 44.1kHz) now supports int8, int16, int32, float, double input samples and any sample rate (including variable rates) with up to 8 audio input channels and 1 and 2 output channels (surround sound is scheduled for 4.19). Spatial audio is also supported via Media Sound Components on Actors

On the video side, Media Framework now uses an external texture sampler API which enables video frame rendering without memory copies. This is currently only implemented for Android, but we plan to expand it to other platforms. We replaced problematic triple-buffering mechanism with sample queues and added better support for exotic video and pixel formats, and faulty encoders.

The Media Player Editor has been updated with a new Track format selector menu, audio/video capture device selector, cache state visualization (for player plug-ins that support it), Playlist controls, and the ability to save playlists. In addition, scrubbing is now more responsive and information overlays have been improved. There is also experimental support for text overlay visualization and 360 video viewport controls. Per-platform media player overrides for Media Source assets are also now functional.

Blueprint functionality has been added for querying media player tracks and track formats, enumerating audio, video and webcam capture devices, and adding files and URLs to media playlists.

All media player plugins have been updated to enable support for all of the dramatic new features available in the Media Framework in Unreal Engine 4.18.

Note: Some of this work, such as Sequencer integration, stereoscopic & 360 video support, and hardware accelerated 4K playback is still under active development.

New: Sequencer Improvements

We made several 'quality of life' improvements to Sequencer including:

Improved FBX import by adding the ability to import static/default transforms, add cinematic cameras if a corresponding camera doesn't exist in the map, and the option to force front x axis

More efficient track, keyframe and path trajectory drawing. Overlapping keys now draw with a red border.

Editing tools including slip editing for audio, skeletal animation, shot tracks.

Sequence recorder improvements such as interpolation and tangent settings for animation recording keys and drag and drop support.

New: Improved Physics Asset Editor

The Physics Asset Editor (formerly known as PhAT) has been completely overhauled to significantly improve usability and expand functionality! The UI has a new look and feel with an upgraded Skeleton Tree view that provides better filtering and display of all scene elements and a new Graph view for setting up constraints between bodies visually using nodes. You can even set up of loops of constraints - something that was not possible before.

UI elements have been sanitized. Many things have moved or changed to more logical locations. For example, the Show menu now allows access to animation-related settings like in the Animation Editors. Animations can now be chosen at any time, paused, scrubbed etc. (previously this was only available once simulation had started). Simulation can also be engaged and disengaged at any time while animating and works in a similar way to the Level Editor, with a single prominent "Simulate" button and options underneath.

Additional Updates and Improvements:

Time dilation works with animation and physics together and is quickly set in the viewport menu, like in the Animation Editors.

Recording is now controlled from the transport controls like in other Animation Editors.

Physical animation and constraint profiles have a revamped UI. This allows easy selection, assignment and management of constraint and physics profiles.

Constraint & body mode are no more. We now display constraints and bodies together. Rendering of each can be enabled/disabled and filtered in the tree view & viewport.

New body creation has been moved to a new 'Tools' tab instead of the modal dialog we had before. This improves iteration times on new assets, removing 3 clicks each time. The same widget is re-used when we create new Physics Assets, as before.

Physics Assets can now be created directly from the Content Browser. Previously they could only be created from a hidden context menu option of Skeletal Mesh assets.

Operations that can be performed on bodies/constraints are now in all context menus, in addition to the keyboard shortcuts required previously.

New: Multi-Convex Generation for Physics Asset Bodies

You can now auto-generate physics bodies using multiple convex hulls per bone. This allows non-convex geometry to be approximated using multiple convex hulls.

New: Animation Montage Time Stretch Curve

You can now add a Time Stretch Curve track to an Animation Montage to control the play rate! This enables you to maintain the normal playback speed of your Montage while selectively slowing other parts of the Montage. For example with the Time Stretch Curve, you can author just a single attack animation and control and optimize its looks for a great range of playback times.

To use the Time Stretch Curve, create a Float Curve named MontageTimeStretchCurve in your Montage and add keys to define your curve. If you need a bit more control, you can use the Time Stretch Curve properties inside the Asset Details panel to determine how the curve is sampled as well as for debugging purposes, inspect the number of markers created under the hood.

New: RigidBody Anim Node Improvements

The RigidBody node now supports a root bone simulation space option. This is useful for the case where an attached Skeletal Mesh is counter rotated from a player capsule. We've also exposed inertia scaling and constraint dominance in the Physics Asset Editor which greatly improves stability and jitter.

New: Blendspace Editor Usability Improvements

You can now drag the Previewing Pin (green) across the grid instead of having the pin follow the cursor while holding down the Shift key. State-sensitive tips on the actual Blend Space Grid have been added to provide in-context explanations of features and functionality.

New: Global Find in Blueprints

It is now possible to perform a "Find in All Blueprints" search without also requiring a Blueprint Editor window to be open. Up to 4 global "Find in Blueprints" tabs can now remain open and/or docked in a different window at any time. These are now available in the main "Window" menu.

In the Blueprint Editor menu, choosing Edit->Find in Blueprints (or pressing CTRL-SHIFT-F with the Blueprint Editor window in focus) will also now open a new global Find in Blueprints tab (or switch to the first global tab that's open and unlocked). This tab will remain open even after the Blueprint Editor's window is closed if the tab is open or docked somewhere outside of the Blueprint Editor's window.
The global Find in Blueprints tab also includes a Lock button so that the current set of results can be locked to the current tab. Invoking Edit->Find in Blueprints from the Blueprint Editor will open up a new global Find in Blueprints tab if any of the currently-open tab(s) are locked.

Choosing Edit->Find (or pressing CTRL-F) in the Blueprint Editor menu will still open a local Find Results tab for performing a search within the current Blueprint only. Clicking the "Find in all Blueprints" button will allow you to perform the same search over all Blueprint assets in a global Find in Blueprints tab.

The new behavior can be switched off if necessary by unchecking the option titled "Host Find in Blueprints in Global Tab" in Editor Preferences->Blueprint Editor->Workflow.

New: Improved Cross-level Actor References

Cross-level Actor references are now better supported using Soft Object References, which were previously called Asset IDs/AssetPtrs. If you create a Soft Object Reference property pointing to an Actor, they now have an improved UI that will show rather they are unloaded or broken, as well as the full Actor ID they point to:

Cross level references like this will now correctly be fixed up if the referenced Actor is renamed or moved using the "Move to current level" option. It will attempt to check out and resave any other levels/sequences that point to that specific Actor. It will also warn you before deleting Actors that are referenced in this way. They also now work correctly in Play In Editor with level streaming. Newly created Sequencer Actor references are now Soft Object References, but older Sequences will have to be fixed up with "Rebind Possessable References" and resaved first.

Note: As part of this update, the native types FStringAssetReference and TAssetPtr were renamed to FSoftObjectPath and TSoftObjectPtr.

New: In-Editor Localization Preview

We have added the ability to preview your game's localization when Play in Editor (PIE) is running and in the UMG editor to preview widgets in different languages!

This is configured by the "Preview Game Culture" setting ("Editor Preferences" -> "Region & Language"), and will automatically be active when Play in Editor (PIE) is running. The preview language is also passed to any standalone games that are launched via the editor.

While a preview is running, all editable text fields are locked-down (read-only) to prevent accidentally overwriting source data with translation data. You can also use this new lock-down feature to prevent any localization changes in your project by setting "LockLocalization" to "True" under the "Internationalization" section of either your DefaultGame.ini or DefaultEngine.ini configuration files.

New: Array Reordering

You can now drag and drop elements to reorder them within an array! All arrays set up through Blueprints and C++ are reorderable by default. To opt out of the default behavior and create a fixed order array in C++, use the EditFixedOrder metadata.

New: Advanced Material Preview Viewport

The Material Editor and Material Instance Editor now have Advanced Preview Scenes for previewing your material in the viewport. This enables you to change view settings such as the scene lighting and environment cube map, as well as to rotate the environment around your preview mesh in the scene.

You can change the settings for the preview under Window > Preview Scene Settings.

New: Platform SDK Upgrades

In every release, we update the engine to support the latest SDK releases from platform partners.

IDE Version the Build farm compiles against

Visual Studio: Visual Studio 2015 Update 3

Xcode: XCode 9.0

Android:

HTML5: emscripten toolchain to 1.37.19

Linux: v10_clang-5.0.0-centos7

Steam: 1.39

Oculus Runtime: 1.17

SteamVR: 1.39

Switch: 1.7.0, 3.5.1 + NEX 4.2.0; Firmware Version 3.0.1-1.0

PS4:

4.508.111

Firmware Version 4.730.001

Supported IDE: Visual Studio 2015, Visual Studio 2013

Xbox One:

XDK: June 2017 QFE3 for all all Xbox consoles (XB, XB1-S, XB1-X)

Firmware Version: October 2017 Preview 3 (versuib 16291.1000.170913-1900)

Supported IDE: Visual Studio 2015

macOS: Support for macOS 10.13 High Sierra has been added as a fully supported platform!

iOS: SDK 11

tvOS: SDK 11

New: Visual Studio Code Supported on Windows, Mac and Linux

You can now use Visual Studio Code to write code on all UE4 host platforms. To use it, select "Visual Studio Code" as your preferred IDE from the editor preferences dialog, or add the -vscode argument when generating project files on the command line. All platforms are also required to have the .NET Core 2.0 runtimes installed, which can be obtained from the Microsoft .NET Core website .

To use Visual Studio Code to build and debug all project types, some additional extensions are required. On all platforms, make sure the Microsoft C/C++ extension, and the C# extension are installed. On Linux and Mac, the "Mono Debug" extension is required to debug C# projects, and the "LLDB Debugger" extension is required to debug C++ projects. Also, in order to debug C# projects, the mono runtime must be installed:

On OS X: brew install mono

On Linux: sudo apt-get install mono-complete

New: Simplified iOS certificates and signing

When using the remote toolchain to build iOS on a remote Mac from your PC, the certificate and provisioning setup in from the Project Settings on your PC. This means it's no longer necessary to install your private key or certificates using Keychain Access on the remote Mac.

New: Desktop-Class Forward Renderer on iOS(Experimental)

Unreal Engine 4.18 contains the Desktop-class Forward Renderer used in the Wingnut AR demo at WWDC 2017! It is supported on iOS devices with an A9 or later processor running iOS 10.3 or newer, with an A10X or better running iOS 11 strongly recommended.

This rendering technology brings the same support physically based shading, reflections, lighting, and shadowing to the latest iOS devices. These features are more demanding than the existing mobile renderer on the hardware and are experimental so some features may not function correctly on all devices & OS revisions. The following features are known not to work: GPU skin-cache, GPU morph-targets, Atmospheric Fog and Multi-Sample Anti-Aliasing.

New: Gradle Enabled by Default for Android

Gradle is now the default for packaging Android APKs. Ant is still available if necessary by disabling the "Enable Gradle" Android project setting, but it is recommended to transition to Gradle since Ant is considered depreciated.

Note: If you previously did not accept the Android SDK license agreement by checking "Enable Gradle", you will need to do so by clicking on the "Accept SDK License" button in the Android Project Settings. An error will be shown if you try to package or launch on without accepting the license.

New: Android Camera Plugin

Unreal Engine now has an optional plugin to expose access to the front and back cameras on Android devices. Enabling the plugin adds a new Android Camera plugin Project Settings panel to select Android Manifest requirements.

New: HTML5 Optimized Browser WebAssembly is now set to default

WebAssembly is now enabled by default for HTML5 projects. With support for the WebAssembly standard from many of the major browser makers, you can realize massive improvements on asset sizes, browser load time, and runtime performance when publishing to the web. The previous optimized HTML5 output ASM.js has been decommissioned and removed from the code base.

Note: Multi-threading is not yet available on WebAssembly. While ASM.js did support this, WebAssembly (for now) can only run in single threaded mode. However, multi-threading is a major feature push for all browser makers in the next coming months.

New: LLM Low Level Memory Tracker

The new LLM Low Level Memory Tracker enables you to track all memory once and only once,* with nothing missed and nothing counted twice!

Every allocation made by the engine or game is assigned a tag value identifying the category to which it belongs. The total of all of the categories will add up to the total amount of memory used for the game. The tags are applied using tag scope macros. Any allocation made within that scope will be given the specified tag.

LLM stats can be viewed in game using 'stat LLM' or 'stat LLMFULL'. The current total for each tag will be shown in MB. LLM also writes out the stat values to a csv allowing the values to be graphed over time.

Due to its nature, LLM requires support to be added for each platform. Currently LLM supports PS4 and XboxOne. Windows is supported as an experimental release.

New: Improved XGE (Incredibuild) Shader Compiler Support

We've made improvements to the XGE (Incredibuild) shader compiler, which have greatly reduced the stalling and latency seen in the old system and allow us to stream new shader jobs asynchronously into XGE.

The new system performs much more efficiently, and can greatly accelerate shader compilation in all situations, including cook on the fly, cook by the book, and iterating on shaders within the editor.

These improvements are enabled by default, but require at least Incredibuild version 8.01 or higher. The engine does a version check on startup and falls back to the legacy XGE shader compiler if a supported installation is not found. As with the old system, the XGE shader compiler itself must be enabled on the command line via "-xgeshadercompile", or by setting "r.XGEShaderCompile" to 1 in ConsoleVariables.ini.

Unreal Audio Engine (Early Access Preview)

Development continues on the new Unreal Audio Engine. This release brings support to more platforms, an updated plugin architecture, and some exciting new features. These new Unreal Audio features should still be considered early access. We will be focusing on performance and stability in coming releases.

Along with Windows, Mac, iOS, Android, XboxOne, and PS4; we have added support for the new Unreal Audio Engine on Nintendo Switch, Linux and HTML5. The new Unreal Audio Engine has been enabled by default for Linux. Significant fixes and improvements were also made to all the other backends first released in 4.17 and 4.16.

Audio Plugin Architecture Improvements (New Unreal Audio Engine Only)

Audio plugins are useful for audio effects that need to override or extend core features of the audio engine. Object-based binaural source spatialization, source occlusion, and master reverb are best achieved through a much deeper integration into the core mixing engine. These effects require special audio plugin support.

Enhanced Audio Plugin architecture enabling a smoother integration for 3rd party developers wishing to override core mixing features

Empowering projects to mix and match plugins overriding: Source Spatialization, Source Occlusion, and Reverb

Can now swap out different plugins without restarting the Editor!

New: Source Bus (New Unreal Audio Engine Only)

Source Buses are a powerful new feature which demonstrates the flexible routing capabilities of the New Unreal Audio Engine and allows multiple Sound Sources to send and sum into a single real-time Source. Source Buses are derived from Sound Base which allows them to be played and utilized in the same way Sound Waves or Sound Cues are employed-whether spatialized as a 3D mix bus or as a means to maintain Source Effect persistence, Source Buses will become a invaluable tool for Audio Designers and will set the stage for exciting features in the future.

Source Buses allow any audio source to route their audio to a 3D audio source, including other source buses (including themselves, creating a runtime Audio feedback system).

Source Buses are a new USoundBase type, so they can be played as if they are another sound in our normal sound BP and C++ APIs, audio components, and ambient actors and can have their duration specified to become either a one-shot bus or, if specified as 0.0, will be treated as a looping source with indefinite duration.

Source Effects and Submix Sends can be used with Source Buses like normal sound sources

Other Sources send their audio to buses in an analogous way to Submix Sends and can opt to only send their audio to Source Buses vs. also sending their audio to Submixes.

New Submix Effects (New Unreal Audio Engine Only)

We have updated our Synthesis Plugin with brand new time-based Submix Effects ranging from a simple Delay to a flexible computationally efficient reverb allowing you to create complex and interesting interactive spatial effects:

Delay: Simple multichannel delay line that can be modulated at runtime from Blueprints. This effect simulates a simple broadcast delay on audio sent to the given submix which is running with this effect applied and can be used for sub-millisecond synchronization with animation or other gameplay systems.

Tap Delay: Complex multichannel delay effect that allows for an arbitrary amount of taps ("echoes") that can be independently added, modified, and removed through a powerful Blueprint API during runtime. Each tap is parameterized by tap attenuation, tap azimuth, and tap delay. This is useful for simulating the doppler effect, emulating early reflections, and many other delay-based mix effects.

Flexiverb: Computationally inexpensive single-channel reverb algorithm optimized for maximizing echo density with as few multiplies as possible. This effect is best suited for emulating small room reverberation on platforms where CPU resources are limited.

Improved Attenuation Settings

We have improved Attenuation Settings with much needed attention given to clarity and organization. Improvements include displaying Attenuation Settings according to Categories with special Edit Conditions to clarify which Attenuation Settings features are currently utilized.

New: Refactored VR / AR Camera System

Unreal Engine 4.18 now contains a default camera implementation for both Camera Components and raw view that includes late-update automatically handled by the engine. This default camera implementation displaces itself (relative transform) equal to the real-world displacement of the device from its calibrated origin when there is a CameraComponent in the view target. As a result, the API that hardware developers have to implement has a much smaller footprint, resulting in a huge efficiency boost.

Note: All existing platforms have their camera implementations stripped out and replaced by the default camera implementation.

The full list of release notes is available on the forums.

# data[].attributes.attachment_link.description
From desktop to mobile in virtual reality or augmented reality, Unreal Engine 4.18 gives you the tools to deliver the types of content users demand. With expanded and improved platform support, you can deliver content wherever users consume it.

# data[].attributes.body
give more time for asset design. shit takes forever.
make sure whatever idea I have has a range of mechanics i can explore.
Focus on one aspect at a time, don't split your time as much.
Take breaks to allow you to look at it from a different perspective.
Focus on making the basics as fast as possible, then focus on the art, not at the same time.
Use drawings to plan out the scenes and the general feeling of the place
for the love of god give more time towards animation because jumping animations are annoying.
Learn how to use maya.
Optimize characters better.
When rigging use rigging tests to see if everything looks normal.
Try put together a demo as soon as possible to see if the game concept is interesting or it was fun just in your head.
make things like AI as soon as possible as this can change EVERYTHING and you wont have enough time for it at the end.
Efficient code is importaint.
Don't split your energy between things. if you have to do it. throw everything aside. and just do the game as fast as possible, then later you will have time.
pretty much use a fresh SSD for each game because using UBS's takes forever to save. then when done put it into a usb.
research each topic properly and will it actually work ?
keep on task with client briefing. always keep in mind what needs to be done.
better to ship a short game than an incomplete one.
try to spend a lot of time polishing.
sound and lighting are extremely important.
detail in a character design can bring it to life and help it stand out.
focus on one program at a time, therefore plan out exactly when and how youre gona use each program. This helps to get into the mindset of that program. for example if i need to make 3 characters and texture each. make the meshes first, all of them, then texture them at the same time. helps with efficiency.
Feedback from people is one of the most important things, this helps with ideas and themes to impliment that you couldnt think of by yourself.
If possible, make majority of your own textures for environment, this lets you stay in complete control at all times.
If i want to focus on the art or the mechanics, must be decided early on.
Focusing on both should only be really done if i have a lot of time.
Label materials properly so that when you texture and after its easier to identify.
Separate clothing from skin. This allows for better textures.

# data[].attributes.attachment_link.readable_text
I wanted to share my method for painting somewhat realistic skin in Substance Painter. It's far from perfect but it gives good result when rendered in Real-time with the Unreal Engine 4. Following is the step by step process (more or less). 🙂
Note that this tutorial was based on Substance Painter 2.1.

Baking

First step before starting to paint is to setup your additional maps (baked textures) in Substance Painter. I mostly use the default baking settings as they often work very well. The only thing I really bother to tweak is some AO settings. As for the resolution, in my case my texture set will be at 2048×2048 pixels, so my additional map will be either at this resolution or just below (1024×1024). I use for the anti-aliasing 2×2 subsampling for the AO and 4×4 for the other maps. That require therefore to bake in two times. Don't forget to save your project once you are done and then let start with the next step.

Fixing errors

Baking textures with a character that has closed lips for example can be tricky to get right. So instead of trying to figure out the best settings or use a cage, I prefer to paint over the errors. I usually avoid this workflow because it means you have to redo those steps if you rebake or change the UVs. However that's not true with Substance Painter since we are in non-destructive workflow where UVs can be changed at anytime (because brush strokes are projected in 3D space).

The first step therefore is to add an ambient-occlusion and normal channel to your texture set if that's not already the case. Then change the blending mode those two channels via the "mixing" parameters. This will tell Substance Painter to only use the channels and ignore the additional maps.

Now that the channels are ready, we can add a fill layer in the layer stack. Inside this fill layer you can load you baked texture in the proper channels. I called this layer "Base Textures" for obvious reasons. You also need to set the tilling value to 1 if it's not the default one for you (since we are using mesh based texture, not tilling materials).

From there I add two new fill layers above the existing one. In my case I wanted to fix the incorrect baking between the lips and inside the nose holes. I only enabled the normal and AO channel on these new layers. Don't forget to change the blending mode of these layer to "replace" for the Normal and AO channels. You can cycle through the channels via the drop-down menu at the top of the layer stack :

As you can see I have also added a black mask and painted in white inside it to erase only the part I needed from the layer below. The reason I use two fill layer is because I don't use exactly the same mask between the AO and the Normal channel. However if your baking artifacts are very similar, you should be able to setup all of that in one layer. As for the color, I use an average AO color to mask out the baking error :

The mask trick

I little "lazy" trick I often use is to paint in a mask without being very clean. I don't try to get the perfect gradient/smoothing here because it would take too much time and tweaking. Instead I often add a new filter effect and load a Blur in it. Then I add a level effect just after. With this setup I use the blur to smooth my painting and the level to tighten it back and avoid too much bleeding. The big advantage is that you can go back and tweak those effects back and forth without having to paint again. It's pretty quick to do, so you can move forward on another task. You can also repaint something and still benefit from the Blur/Level combo on top.

Skin base

Now that the base textures are ready, let's start the skin painting. In order to avoid painting everything on the character, I start off by using the already existing Smart Material named "Skin Human Simple" which gives a good start with a natural color and a decent roughness. I disable/remove the "Veins" layer however as it doesn't fit very well for a face.

Now let's start painting !

Below are the list of the layer that you need to create with some detail. Each is detailed with only the channels enabled on the layer.

----
Fill Layer : Warm Colors
- BaseColor = RGB - 0.910, 0.058, 0.058
The mask was Painted with the "Paint spray" brush preset.

Fill Layer : Cold Colors
- BaseColor = RGB - 0.138, 0.236, 0.838
The mask was Painted with the "Paint spray" brush preset. There is also on top a fill effect with the "Grunge Concrete" in UV projection mode and a tilling set to 1.0. I set the blending mode of the effect to multiply with an opacity of 50.

Fill Layer : Thin Colors
- BaseColor = RGB - 0.895, 0.336, 0.103
The mask was Painted with the "Paint spray" brush preset.

Fill Layer : Fibers
- BaseColor = RGB - 0.744, 0.530, 0.497
- Roughness = 0.3
This one use procedural noises to create the mask. I started by creating two fill effects. The first fill having a "Messy Fibers 2" with a tilling of 32. Then on top (in multiply blending mode) I added a "BnW Spots 1" with a tilling of 12. On top of those effects I added a level to contrast and bring back some white values as on the screenshot. I also added a paint effect to mask out the borders of the UVs. Especially for the neck, to avoid a seam.

Fill Layer : Wash
- BaseColor = RGB - 0.797, 0.414, 0.279
This one has a bit more complicated mask to setup. See the animated gif for more step by step. The first fill effect contains the Ambient Occlusion texture (baked). Then I use a level effect to contrast it a bit. On top I add a fill effect with the "BnW Spots 2" noise in multiply mode with an opacity of 75/80. Then I add an other fill effect this time with the "Dirt 1" noise in Add/Sub mode with an opacity of 25/30. Another level effect this time to invert the grayscale values. Then a paint effect to retouch a bit the brightness of the jaw area (in Linear Dodge mode).

Fill Layer : Light
- BaseColor = RGB - 1.0, 1.0, 1.0 (Opacity 50)
On this mask painted with the default smooth brush, I used a level to reduce the overall brightness.

Fill Layer : Dark
- BaseColor = RGB - 0.242, 0.089, 0.045 (Opacity 70)
- Roughness = 0.3
For the mask of this layer, I use different brush preset to simulate more natural patterns. I focused mostly around the cheekbones and mouth area while using more spaced out details on the top of the face. I used a mix of the "Dirt" (1, 2 and 3) brushes and the "Sandpaper" one.

Fill Layer : Dark 2
- BaseColor = RGB - 0.066, 0.037, 0.016 (Opacity 40)
- Height = 0.01
For this mask I painted almost only on the cheekbones area. I used the "Spots spray" brush with a big size and also a bit of "Crystal" and "Dirt" brush. Then on top of the painting I used a fill effect with the "BnW Spots 2" noise in Multiply mode with a tilling of 11 to darken a bit the painting.

Fill Layer : Nose Corners
- BaseColor = RGB - 1.0, 0.0, 0.0 (Opacity 20 - Mode Overlay)
Very simple mask here, I just painted the corner of the nose with the "Sandpaper" brush or one alike.

Fill Layer : Nose Color
- BaseColor = RGB - 1.0, 0.046, 0.046 (Opacity 70)
Again, a very simple mask here. I painted a smooth area around the corners of the nose with the default brush.

Fill Layer : Spots
- BaseColor = RGB - 1.0, 0.0, 0.0 (Opacity 80)
- Height = -0.02
I used again the "Spots spray" brush here but with more spacing to really give a sensation of random spot. I also used the default brush to darken a bit some areas and avoid uniformity.

Color adjustments

Now that the base painting is done, we can move forward to specific details and refining it. The first step is to move all the previously created layers (but not the one with the baked textures) inside one big group. Then set the opacity of this group around 70 for the BaseColor. This should help to homogenize the overall colors.

Once done, let's create another group on top with all its blending modes set to "Pass Through". Inside the group, add a sharpen effect (by drag and dropping it from the Shelf) with an intensity of 0.15. Enable it only for the Roughness and the BaseColor channels. Duplicate this layer and remove the sharpen effect and add level effect instead. Change the middle point of the BaseColor to 1.053. This should darken a bit the BaseColor. Now add an HSL effect (enabled only for the BaseColors) with values of 0.52 for the Hue, 0.51 for the Saturation and 0.49 for the Luminosity.

Finally add a new fill layer (called "Dots") on top of these effects with only the BaseColor enabled and set it to a pure white color, an opacity of 8 and with a blending mode set to Linear Dodge.
The mask will be very special for this layer :
- Start to add a fill effect with a "Fractal Sum Base" noise. Set the Min and Max parameter of this noise to "9" and the tilling of the effect to 16. I also switched the effect to the tri-planar projection mode and set the hardness to 0.95.
- Add a second fill effect, this time with the "Grunge Map 21 Bitmap" with an Opacity of 20 and its blending to "overlay". Also enable the Tri-Planar mode and set the tilling to 4. You can get this grunge here : https://share.allegorithmic.com/libraries/562
- Add a level and use it to contrast the dots, giving wider dark areas.
- Add a blur effect on top with an Intensity of 0.11.
- Add a paint effect and use a black and smooth brush to erase some areas. In my case I masked out the lips, the bottom of the eyes and the eyebrows area.

The white spots are very subtle currently, but they will appear a bit more later when we will start adding a second sharpen effect in addition to other details.
Normal and roughness details

Now that we painted the colors, we need to add the other kind of details that a real material need, especially skin.

Create a new folder above the group containing all the previously created fill layers. This new group will contains the new skin normal map. Set the normal channel blending mode of this group to "Normal combine". Add two new fill layers into this group (with only the normal channel enabled). The bottom layer will be used as a neutral normal map color. Be sure to set it's blending mode to "normal". For the group above, load into the normal channel the texture "skin_nose_tip" (available in the default Shelf of Substance Painter). Set it's tilling to 64 and the projection to "tri-planar". Also set the opacity of the normal channel to 50.

Add a black mask on this group and paint in white on it like in the image below. The goal is to use this normal map only on important areas of the face.

Now that the normal is set, let's add the roughness details.
Create a new fill layer (I called it "roughness cavity") and enable only the roughness and height channel. Set the roughness to 0.7 and the height to -0.01. Now create a black mask and setup it as follow :
- Add a fill effect with the "Fractal Sum Base" noise, set it's min/Max setting to 9. Set its tilling to 20 and it's projection mode on "tri-planar". I also changed the hardness to 0.94.
- Add second fill effect on top, in Multiply mode with an opacity of 70. I loaded the "Perlin Noise zoom" in it and set it's tilling to 80 and it's projection on "tri-planar".
- I finally added a paint effect to mask out in black the border of the UVs (mostly the neck connection in my case).
You should get something like this :

Painting the lips

We can now attack the specific details. This time it's the lips.

In order to make the control over the lips easier, I started by creating a new group and used a global mask on the group itself. As you can see below. I also used a blur filter on this mask to smooth it a bit more than what I already painted.

Fill Layer : Base
- BaseColor = RGB - 0.541, 0.144, 0.108
- Roughness = 0.35
I added two fill effect on this layer :
- Fill effect 1 : "Grunge concrete" (Balance 0.72, Tilling at 22) with only BaseColor enabled (set to Multiply mode with an opacity of 30)
- Fill effect 2 : "Directional Noise" with only the Height enabled (with an Opacity of 12)

Fill Layer : Lips Height
- BaseColor and Height = Directional Noise
Tilling set at 8 and Rotation of 90 (to fit my UVs). Set the BaseColor to Overlay blend mode with an Opacity of 15. Then set the height Opacity to 5. Then I added two filter, first a blur with an intensity of 0.22, then a warp filter. With an intensity of 32 (divided by 1000). I also set the warp blur to 1.87.

Layer : HSL (drag and drop it from the filter section of the shelf)
- Hue : 0.5
- Saturation : 0.51
- Luminosity : 0.53
I use this HSL layer to compensate from the loss of luminosity that happened with the previous layer.

Fill layer : Colors
- BaseColor : Noise "Clouds 1", Blending mode Add/Sub, Opacity 5.
I set the tilling to 8 and 1 to stretch the noise. I also added a warp filter to alter a bit the noise globally (with an intensity of 2.7, divided by 1000).

Fill layer : Top Colors
- BaseColor : 0.783, 0.348, 0.308. Blending mode "normal", Opacity at 20.
Another fill layer, this time to brighten the borders of the lips.

Fill layer : Cracks
- Height : -0.06.
Last layer for the lips, this time to sculpt some surface cracks/details.
Here I just enabled the height channel and added a black mask to the layer. Then I added a fill effect in the mask and loaded the "Gaussian spots 2" noise. I set the tilling of the effect to 16.

Painting the eyes borders

Let's go for the details of the eyes. Again, create a new group. Take the time to set the blending of all the channels of this group to "Pass Through" since we will be doing color modification over what is already existing.

Fill layer : Lacrimal
- Base Color : 0.531, 0.112, 0.074
- Roughness : 0.25

Fill layer : Border color
- Base Color : 1.0, 0.0, 0.0. Blend mode "Normal", Opacity at 25.
- Roughness : 0.3

Fill layer : Crease
- Height : -0.11
On this layer, I used the mask to paint wrinkles below the eyes. I also a the "Cotton" brush preset along those lines to add more details. Then I applied a blur filter to mix all those details together (Intensity of 0.2).

Fill layer : Shadows
- BaseColor : 0.144, 0.003, 0.026. Blending mode "normal", Opacity at 50.
- Roughness : 0.3
Simple mask hear, I used the default soft brush to paint a shadow on the side of the nose and the inner corner of the eyes area. Once again, I used the blur filter on that mask to soften it up a bit.

Eyebrows

The hardest part for the eyebrows is to find and tweak a good brush to give the right feeling to the hairs. I just created a fill layer with an uniform color and then added a black mask. For the mask I used a mix of some brush presets in it, such as "Fibers 3" or "Sandpaper". Then I added two filters on top to give more details. I started with a blur filter to smooth a bit the painting and avoid some aliasing, then I added a warp filter on top to add some variations. It gives me something that look like this :

Cheek spots

Next step to get more variations and details is to add spots on the cheeks. Same process, I create a fill layer (BaseColor 0.341, 0.031, 0.031 with an opacity of 50). Then I add a black mask and use the "Sandpaper" brush to pose the base of the area. Over the painting, I apply the "Gaussian spots 1" noise in Multiply mode, then use a level to boost up the contrast. Finally I add a second noise, this time the "Grunge Dirt Dried" but still in multiply. Don't hesitate to tweak the contrast and tilling of these noises to get the feeling that you want.

Final result

Now we just need to add a sharpen filter on top to boost a bit the details of the BaseColor and Roughness channels. Here is my final result in Substance Painter itself and then UE4 :

# data[].attributes.attachment_link.description
I wanted to share my method for painting somewhat realistic skin in Substance Painter. It's far from perfect but it gives good result when rendered in Real-time with the Unreal Engine 4. Following is the step by step process (more or less). 🙂 Note that this tutorial was based on Substance Painter 2.1.

# data[].attributes.attachment_link.title
Height alphas to Smart materials in Substance painter

# data[].attributes.attachment_link.description
Tutorial about getting height alphas to work with smart materials in substance painter. Materials & Alphas - https://gumroad.com/environmentdesign Music - Sappheiros - Aurora

# data[].attributes.headline
different ways to use brushes/ many tutorials

# data[].attributes.subject
different ways to use brushes/ many tutorials

# data[].attributes.attachment_link.title
ZBrush 011 Concepting In ZBrush Inflate Brush

# data[].attributes.attachment_link.description
This video will cover how to use the inflate brush in Zbrush.

# data[].attributes.headline
Combine these two to make main character. Use the boy and some accesories, change mask and use the staff  from the right

# data[].attributes.subject
Combine these two to make main character. Use the boy and some accesories, change mask and use the staff  from the right

# data[].attributes.headline
Insanely good ai tutorial for state machines and way points

# data[].attributes.subject
Insanely good ai tutorial for state machines and way points

# data[].attributes.body
and patrol areas

# data[].attributes.attachment_link.keywords[]
unreal engine (video game engine family)

# data[].attributes.attachment_link.description
This is my attempt at making an AI Tutorial and creating AI that Jump across platforms and reach specific targets. Everything is already working, just putting it into a tutorial for your viewing pleasures and by paid request.

# data[].attributes.body
sometimes it is good to break artistic continuity for comedy purposes. for example change type of jokes or punchlines or ways o deliver

# data[].attributes.attachment_link.description
Japanese folk tale 「MOMOTARO/桃太郎」 Japanese ver. animation ソーシキ博士/Soshiki Hakase music 樋口太陽/Taiyo Higuchi English ver https://vimeo.com/146101051 http://furifurisoshiki.com/

# data[].attributes.attachment_link.description
Official Music Video - music by TAMTAM http://tamtam-band.tumblr.com/ Directed by soshiki hakase / ソーシキ博士 Animated by soshiki hakase / ソーシキ博士 & furifurisoshiki / ふりふり組織　 http://furifurisoshiki.com/

# data[].attributes.attachment_link.title
Distal - Psychomagic In An Adobe Home (Official Animated Music Video)

# data[].attributes.attachment_link.description
Distal - 'Psychomagic In An Adobe Home' Official Music Video Label : Anarchostar Catalog : ANRCHSTR004 Anarchostar.com Directed by soshiki hakase / ソーシキ博士 Animated by soshiki hakase / ソーシキ博士 & furifurisoshiki/ふりふり組織 WEB: http://furifurisoshiki.com/ Twitter: twitter.com/soshikihakase Instagram: ihttps://www.instagram.com/soshikihakase2/ Purchase the CD : Anarchostar.com/shop

# data[].attributes.body
ougi ahaha

# data[].attributes.attachment_link.title
TGA Digital - UE4 Transition Effect Shader

# data[].attributes.headline
playing different walking sounds based on material 

# data[].attributes.subject
playing different walking sounds based on material 

# data[].attributes.attachment_link.keywords[]
unreal engine 4 tutorial: footstep sounds (english)

# data[].attributes.attachment_link.title
Unreal Engine 4 Tutorial: Footstep Sounds (english)

# data[].attributes.attachment_link.description
In this video I show how you can add a footstep sound system which plays a sound depending on the surface type.

# data[].attributes.attachment_link.description
Champion skin made for League of Legends.

# data[].attributes.attachment_link.title
BP 3rd Person Game: Intro to State Machines | 09 | v4.8 Tutorial Series | Unreal Engine

# data[].attributes.attachment_link.description
(00:05) - Intro to State Machines (03:48) - Creating the states (05:48) - Jump Start (07:57) - Transition Rules (09:19) - Jump End (11:15) - Wrap up

# data[].attributes.attachment_link.title
Skeleton Assets: Anim Retargeting  Different Skeletons | 03 | v4.8 Tutorial Series | Unreal Engine

# data[].attributes.attachment_link.description
In this video we take a look at how we can share animations between two Skeletal Meshes that are using different Skeleton assets. We go through the setup and retargeting process and pass an animation between two different Skeleton assets.

# data[].attributes.body
don't forget about the vilain

# data[].attributes.attachment_link.title
Force-of-Nature Villains - Giving a Face to Pure Evil - Extra Credits

# data[].attributes.attachment_link.description
Force-of-Nature villains embody pure evil, or chaos, or other forces that move the world beyond the hero's control. They're not traditional characters with motives, desires, and a backstory that makes it easy to understand them. They exist purely to drive an agenda. Subscribe for new episodes every Wednesday!

# data[].attributes.body
decide the theme of the mechanic.

Introduce it to the player in a risk free environment.

ramp up the challenge slowly then drastically

give optional plays on the mechanics to make it more difficult.

# data[].attributes.headline
complex material heights and using cracks

# data[].attributes.subject
complex material heights and using cracks

# data[].attributes.attachment_link.keywords[]
unreal engine (video game engine family)

# data[].attributes.attachment_link.description
A Tutorial about how to implement Master Material's into your art pipeline using Unreal Engine 4!

# data[].attributes.attachment_link.description
In this tutorial I'll show you the step by step process of making a billboard material that always faces the player location. This can be used on low poly grass, billboards for trees, etc. My Artstation: https://www.artstation.com/artist/jackm My Portfolio: www.jackmckelvie.portfoliobox.me My Facebook Page: https://www.facebook.com/jackx570 My Twitter: https://twitter.com/JKMcKelvie

# data[].attributes.headline
hex code for the main color in the underground level

# data[].attributes.subject
hex code for the main color in the underground level

# data[].attributes.headline
use these colors for the canteen area to show an unstilling horror

# data[].attributes.subject
use these colors for the canteen area to show an unstilling horror

# data[].attributes.attachment_link.description
Create color schemes with the color wheel or browse thousands of color combinations from the Color community.

# data[].attributes.headline
minigame Done, was very long but looks damn good.

# data[].attributes.subject
minigame Done, was very long but looks damn good.

# data[].attributes.body
add a minigame for the player to jump on piles of leaves to make them explode. do that a few times, and on the last pile, the player falls into the next level!! Used a destroy mesh on overlap of a box into fade out of both materials as well as aditional impact movement to add effect.

# data[].attributes.headline
Door knob on the double sided door design

# data[].attributes.subject
Door knob on the double sided door design

# data[].attributes.body
from http://www.freepik.com/free-photos-vectors/starry-sky

# data[].attributes.body
hard edges=new UV island
Save space
bake normals/metallics
try not to use the automatic unwrap on 3dsmax
chamfered edges make same islands
one smoothing group per island to get the best normal map

# data[].attributes.attachment_link.title
Sequelitis - Mega Man Classic vs. Mega Man X

# data[].attributes.attachment_link.description
Original, 10 minute ambiences and music for Tabletop Role Playing Games.

# data[].attributes.attachment_link.description
This Pin was discovered by hungry boy. Discover (and save) your own Pins on Pinterest.

# data[].attributes.attachment_link.title
UE4: Detailed Texture Blending with HeightLerp and Vertex Painting

# data[].attributes.attachment_link.description
Get project files: https://gumroad.com/techartaid Blending between textures in Unreal Engine 4 is easy with vertex color. It can also be detailed and varied thanks to a simple yet powerful node, the HeightLerp. Vote on ideas for new tutorials: https://trello.com/b/fHRwvZz7/tech-art-aid-roadmap

# data[].attributes.attachment_link.description
www.Tesla-Dev.com In this tutorial we are going to take a look at a lerp. We can use this to blend between two textures or values.

# data[].attributes.attachment_link.title
Tutorial - Leaf-fall Particle System - Unreal engine 4

# data[].attributes.attachment_link.description
Tree it tutorial - https://www.youtube.com/watch?v=nXW3hk1Ptzs Leaf texture from - www.Cgtextures.com

# data[].attributes.attachment_link.title
How to set up simple checkpoints and respawns - UE4 AnswerHub

# data[].attributes.attachment_link.description
Create a new blueprint of actor actor and name it as your checkpoint. Assign a mesh to it by dragging one into the add component on the left, make sure you give it a collision mesh.

# data[].attributes.attachment_link.title
Unreal 4 - Spawn an actor in front of the player

# data[].attributes.attachment_link.description
A tutorial on how to spawn an actor in front of the player in the Unreal 4 engine.

# data[].attributes.attachment_link.title
Unreal Engine 4 - Quick! How to: Use Timelines

# data[].attributes.attachment_link.description
A quick dive into how to cast objects in BluePrints! If you have a good idea for a Quick! How To video or have a question about UE4 let me know in the comments. If I can answer it quickly I'll try to make a video response!

# data[].attributes.attachment_link.title
UE4 - Tutorial - Toony Outlines (request)

# data[].attributes.attachment_link.description
There are no blurred lines here! Excuse the drop in frame rate at times, I forgot I had 3 instances of unreal open T_T Twitter: https://twitter.com/Play_Ruff Patreon: https://www.patreon.com/deanashford Discord: https://discord.gg/gPnr339

# data[].attributes.attachment_link.title
Can't call event from another blueprint - UE4 AnswerHub

# data[].attributes.attachment_link.description
Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.

# data[].attributes.attachment_link.description
A How To Guide for using timers in Blueprints.

# data[].attributes.attachment_link.title
Unreal Engine 4 Tutorial - Interaction & Interfaces

# data[].attributes.attachment_link.keywords[]
unreal engine (video game engine family)

# data[].attributes.attachment_link.title
Unreal Engine 4 Tutorial : Loading Screen / Level Transfer

# data[].attributes.attachment_link.description
Hello there guys. This tutorial will show you how to create a loading screen between two levels. Please feel free to ask any questions and drop it a like if it helped you.

# data[].attributes.attachment_link.authors[].name
Virtus Learning Hub / Creative Tutorials

# data[].attributes.attachment_link.title
Melee Weapon Damage - #23 Creating A Role Playing Game With Unreal Engine 4

# data[].attributes.attachment_link.description
Today we show you how can make the AI lose health when you hit it with your sword. We do this with a collision based system, firing off from an overlap event generated when your sword hits your enemy.

# data[].attributes.headline
THE PEOPLE WITH MASKS ARE THE DEAD ONES ON THE FLOOR SLEEPING AND THE ONES WITHOUT ARE ALIVE!!!

# data[].attributes.subject
THE PEOPLE WITH MASKS ARE THE DEAD ONES ON THE FLOOR SLEEPING AND THE ONES WITHOUT ARE ALIVE!!!

# data[].attributes.attachment_link.title
How Games Do Health | Game Maker's Toolkit

# data[].attributes.attachment_link.description
You get shot. The screen goes black and white. You hide behind a block of concrete until your bullet wounds are magically healed. It's the default way of handling health in modern action games - but is it the best?

# data[].attributes.headline
Third person game, sneaking type, drop objects to injure enemies

# data[].attributes.subject
Third person game, sneaking type, drop objects to injure enemies

# data[].attributes.attachment_link.readable_text
There are two simple nodes.

"Any damage" and "Apply damage".

Any damage will receive all types of damage (unreal offers a few out of the box) and Apply damage will trigger that event on the other actor.

Now to fire this event you simply need some kind of hitbox and once it does collide or overlap with something, take the resulting "Other Actor" and pull a line from that pin to your "Apply Damage" node.

Any Damage will then receive an input and you can handle your HP in the actor which just got hit.

So Apply damage in your bullet or inside of your spikes blueprint. Any Damage in your Character or whatever should get hit.

# data[].attributes.attachment_link.title
How to make an actor deal damage and have another actor take damage?

# data[].attributes.attachment_link.description
There are two simple nodes. "Any damage" and "Apply damage". Any damage will receive all types of damage (unreal offers a few out of the box) and Apply damage will trigger that event on the other actor.

# data[].attributes.attachment_link.title
UE4 - Tutorial - Roaming AI and Basic Dialogue!

# data[].attributes.attachment_link.description
You guys ask for it, and here it is! This is a basic intro to this kinda thing, I'll do a more complex version in the future! "I'd like an ice cream..."

# data[].attributes.attachment_link.title
Unreal Engine 4 Tutorial - Pickup and Drop Objects (Physics Handle)

# data[].attributes.attachment_link.description
In this tutorial we take a look at how to pickup and drop physics objects using the physics handle component

# data[].attributes.body
combat would be non direct combat as the character is just a kid, the kid has a four hit=death system like let's say in call of duty which displayed by the redness of the screen, once it goes getting hit four times, the player dies, restarting from the latest save point or even the start

# data[].attributes.attachment_link.description
A quick tutorial on setting up cel shading via post process. Remember, this will not work with materials with metallic or spec above 0, and will not allow for emissive!

# data[].attributes.body
music gets louder as the enemies get closer. it's an upbeat music to draw a contrast. beats are loud but happy. there is a small triple beat going down in octaves and the second time that same triple beat plays, is the finishing three blows on the player. creating a nice flow onto the next scene where the kids are on a happy field.

# data[].attributes.body
escaping the state of omnipresence surveillance and after living off the grid, he misses contact to humanity and tries to get more people behind it whatever means necessary.

# data[].attributes.attachment_link.title
UE4: Workflow Tutorial - How I Created "The Corridor" Environment in 10 Hours with Unreal Engine 4

# data[].attributes.headline
make intro more engaging to reflect the main part of the game so the player knows what they are going into

# data[].attributes.subject
make intro more engaging to reflect the main part of the game so the player knows what they are going into

# data[].attributes.body
the first character. the engineer is employed by the villain, the engineer will now be referred as Josh . josh doesn't know that the villain is actually evil, he's just kind of weird. he enters with a with an underground rail kind of thing. stopping to do repairs, to get back on. then he accidentally gets off at the lunch hall, the train leaves. he is now exposed to a few people who live there, eating odd paste texture foods, hunched over and muttering something from time to time. one of them quickly turns to josh, then slowly back. muttering loudly enough for the player to hear him saying in a fairly cheerful tone "huh. fresh trimmings". Josh then continues, trying to ask people how to get to the place where he needs to be, because the train already left, leaving him no choice. but when he asks people for directions, they simply ignore him and quickly walk to their seats, and in rotation, people eating rotate between the eating and going for more food. Josh sees someone come through a door and  goes through the door the other person just went through. walking through the dark empty hallways which are metal, dark and sometimes soggy. on a corner he sees a person who is passed out, with bloody circles around his eyes, rugged clothing and one shoe. He tries to wake him up, but nothing happens. he tries this a few times and then carries on walking. he then walks by a few metal doors, resembling prison doors, metal with some corrosion. he then sees a group of similarly looking people to the person whom was collapsed, huddled around a corner (about three or four) and they all look towards josh, then at each other and then hurry around the corner. Josh keeps walking forward as the only other option which is the metal doors will not open. through some of the doors josh can hear distorted crying of a little girl he tries to open the door but fails. once the girl hears someone trying to open the door. she stops crying and starts muttering audibly. "please... please...please no more... i will stop... i will obey...." and she keeps repeating this. since josh has nothing to do, he keeps going around the corner, where he sees the people who were in front of him, shuffle rapidly towards him, walking with a purpose. josh has a choice to walk back to the eating area door. but will only find out that the door is locked, with the people inside, laughing loudly while standing up, point at the door. he then gets attacked by the people who were now chasing him down, with a meat cleaver. when the first hack hits, a cheering can be heard. the second hack knocks out josh. ending the intro. then the scene transfers to the group of kids playing out in a field.