# Template Overview

## Navigation System Overview

The navigation system operates on both mobile and desktop platforms with three modes: Orbit, Fly, and Walk.

#### Orbit Mode

* **Desktop**: Right-click and drag to rotate, Middle click and drag to pan, Double right-click to change focus, Mouse scroll to zoom.
* **Mobile**: One finger drag to rotate, Double tap to change focus, Pinch to zoom, Three-finger drag to pan.

#### Fly Mode

* **Desktop**: Use W/A/S/D to move, Left-click to rotate, Q/E for vertical movement, Middle click and drag to pan.
* **Mobile**: Touch for movement, Drag to rotate.

#### Walk Mode

* **Desktop**: Use W/A/S/D to move, Left-click or mouse move to rotate, Spacebar to jump.
* **Mobile**: Touch for movement, Drag for rotation. Extra actions like jumping might be automated.

Developers can use this framework to ensure a consistent user experience across devices, with room for adjustments based on user feedback.

**Project Context**: Created with an 'Automotive/Product Design/Manufacturing' template without starter content.

**Download link:** [**https://www.fab.com/listings/9b0edb51-5b11-42f0-b281-94e896a4801d**](https://www.fab.com/listings/9b0edb51-5b11-42f0-b281-94e896a4801d)

## **Plugins Enabled**

\- Default Unreal Engine plugins (based on a blank 'Automotive/Product...' template project)\
\- Pixel Streaming plugin

<figure><img src="https://451842398-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxeRHVvCMHTEw8OnxbYIg%2Fuploads%2FSATT0stsCVPykEjH4C3Z%2F1.Plugin.jpg?alt=media&#x26;token=9861ca3f-4ca8-423c-90e1-e154aa8c3ceb" alt=""><figcaption><p>(Edit > Plugins)</p></figcaption></figure>

## **Project Settings Enabled**&#x20;

\- Use fixed frame rate = True \
\- Fixed frame rate = 30 fps &#x20;

<figure><img src="https://451842398-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxeRHVvCMHTEw8OnxbYIg%2Fuploads%2FHJDb84ZNDHlD9MyqLm9N%2F5.Framerate.jpg?alt=media&#x26;token=00d25eb7-4847-477d-922d-80a74f7ab191" alt=""><figcaption><p>(Edit > Project Settings > Engine > General Settings)</p></figcaption></figure>

\- Ray Lighting Mode (UE5) = Hit Lighting for Reflections\
\- High Quality Translucency Reflections (UE5) = True&#x20;

<figure><img src="https://451842398-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxeRHVvCMHTEw8OnxbYIg%2Fuploads%2Fdc8jB72BRUQCaTVhKAdM%2Fimage.png?alt=media&#x26;token=8b9fb3a0-3cf0-47a6-ac04-201efe42a41a" alt=""><figcaption><p>(Edit > Project Settings > Engine > Rendering)</p></figcaption></figure>

\- Default Viewport Mouse Capture Mode = Capture Permanently Including Initial Mouse Down\
\- Set 'Default Viewport Mouse Lock Mode = Do Not Lock \
(this value Is overwritten if using the 'BP\_Arcware\_HUD\_Visible\_Mouse')&#x20;

<figure><img src="https://451842398-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxeRHVvCMHTEw8OnxbYIg%2Fuploads%2FTpnuOWYlD78S2VriFd8Z%2F6.locked%20mouse.jpg?alt=media&#x26;token=5c1dbb18-8023-4a3c-b19d-53ad346c3f5c" alt=""><figcaption><p><strong>(Edit</strong> > <strong>Project Settings</strong> > <strong>Engine</strong> > <strong>Input)</strong></p></figcaption></figure>

\- Default GameMode = BP\_Arcware\_GameMode

<figure><img src="https://451842398-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxeRHVvCMHTEw8OnxbYIg%2Fuploads%2FCVCsIo5t0T54EreTwoO4%2FProject%20Settings-%20GameMode.jpg?alt=media&#x26;token=23273336-3e83-4cc5-8c4d-55654d24eaa1" alt=""><figcaption><p><strong>(Edit > Project Settings > Project > Maps &#x26; Modes)</strong></p></figcaption></figure>

**-** Enable Gesture Recognizer = True\
(needed for Pinch to zoom to work. Although this is currently not relevant as 'Pinch' gesture doesnt work on IOS devices)

<figure><img src="https://451842398-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxeRHVvCMHTEw8OnxbYIg%2Fuploads%2F0UmA7XG2lwtnWDxWTz27%2F7.%20Enable%20Gesture%20Recognizer%20-%20Project%20Settings.jpg?alt=media&#x26;token=d889e7c9-770b-4656-a943-7ebde6c9b421" alt=""><figcaption><p><strong>(Edit</strong> > <strong>Project Settings</strong> > <strong>Engine</strong> > <strong>Input)</strong></p></figcaption></figure>

\- Default RHI = DirectX 12 (12 is recommended)&#x20;

<figure><img src="https://451842398-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxeRHVvCMHTEw8OnxbYIg%2Fuploads%2FZpalUO0HgsPO1yLBNnNA%2FProject%20Settings-%20DirectX12.jpg?alt=media&#x26;token=625bb84e-35e0-43b0-98d4-91c33dd2e0d6" alt=""><figcaption><p><strong>(Edit</strong> > <strong>Project Settings</strong> > <strong>Platforms</strong>> <strong>Windows)</strong></p></figcaption></figure>

## **Player Input**

\- 'Actions' Folder = (All input key bindings needed for camera movement)\
\- 'Arcware\_InputMappingContext' = (Input mapping used for EnhancedInput system)

<figure><img src="https://451842398-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxeRHVvCMHTEw8OnxbYIg%2Fuploads%2FrLFtl2JXeHcq5DL45DXt%2FEnhanced%20Input%20-%20In%20Content%20Browser.jpg?alt=media&#x26;token=e1a37d23-3e09-4832-811d-671af0acee1c" alt=""><figcaption><p><strong>(Content > Arcware_Functionality > Input)</strong></p></figcaption></figure>

## **Console Commands Enabled**

\- PixelStreaming.WebRTC.DisableResolutionChange 0 (only relevant for UE4.27) \
\- r.setres 1920x1080w (for setting the resolution if dynamic resloution option is disabled)

<figure><img src="https://451842398-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxeRHVvCMHTEw8OnxbYIg%2Fuploads%2Fsae3g21auF0pzyS8clsF%2F3.Resolution.jpg?alt=media&#x26;token=7674903c-e606-4377-9604-e8c99f72d487" alt=""><figcaption><p>(Enabled via the Level Blueprint, commands only active when playing the game)</p></figcaption></figure>

## **Arcware Specific Assets in the Project**

**- BP\_Arcware\_GameMode**\
( this GameMode contains the reference to BP\_Arcware\_Pawn and BP\_Arcware\_Player\_Controller ) \
\
\&#xNAN;**- BP\_Arcware\_Pawn**\
( this Pawn is used for controlling the player camera. All of the settings you will need related to camera movement speed/zooming/panning etc, are editable in the Pawn actor's detail panel, meaning you can tweak the camera movement style without needing to open the blueprint ) \
\
\&#xNAN;**- BP\_Arcware\_Player\_Controller**\
( this Player Controller contains blueprint nodes for handling the Pixel Streaming events/responses. This is where you can send/receive json messages from the Web browser to trigger events in Unreal Engine )\
\
\- **BP\_Arcware\_HUD\_Hidden\_Mouse**\
( this HUD should be used when your pixel stream has UI provided via the web-browser. In this scenario, you don't need to click any UI in the game so you don't need to show the in-game mouse cursor )\
\
\- **BP\_Arcware\_HUD\_Visible\_Mouse**\
( this HUD should be used when your pixel stream has in-game UI. In this scenario, the user needs to interact with the in-game UI so the in-game mouse cursor must be visible. When this HUD is used it provides an example of in-game UI, which shows the most useful functionality for the in-game mouse, such as, only showing the mouse cursor when the menu is open )&#x20;

<figure><img src="https://451842398-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxeRHVvCMHTEw8OnxbYIg%2Fuploads%2FIcRWHErls7xbULhrA6nE%2FArcware%20Assets%20-%20In%20Content%20Folder.jpg?alt=media&#x26;token=baff6100-3d5b-48e8-b310-3a7f5d1073c8" alt=""><figcaption><p>Arcware Blueprints inside Content Browser</p></figcaption></figure>
