# 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="/files/Bp1slGbOuaiJS4J4dGA4" 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="/files/OxdUXqCR3iWXQpnSBad5" 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="/files/6zvMDGy687rSXoQ8hezm" 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="/files/oqXVaXd9a20DioLpAtQP" 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="/files/5R0diUHlM7sGHbym7hpd" 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="/files/JmHT8ipN5e3XlR4x5uN8" 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="/files/tCUzI7ynyNNnzDK4XLwM" 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="/files/m1FLgRyn2xE5y43Hq9nu" 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="/files/OUGfQaIOxKq6xG16sfNY" 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="/files/HIzDge5euLsOZY62zsb8" alt=""><figcaption><p>Arcware Blueprints inside Content Browser</p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.arcware.cloud/unreal-engine-setup/using-the-arcware-pixel-streaming-template-project/template-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
