• Stars
    star
    232
  • Rank 172,847 (Top 4 %)
  • Language ShaderLab
  • Created over 3 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A virtual photography system for creating in-game screenshots and photographic effects within Unity projects.

Overview

The Photo Mode package is a gateway for adding in-game photography systems to your PC and console Unity projects. The included prefab works across a variety of game styles and can be customized to your specific needs. The package also comes with a demo scene for reference and all required scripts, UI, and assets for out-of-the-box functionality.

The primary Unity features used in this package include the Universal Render Pipeline, UI system, Cinemachine, Input System, Post-Processing, and Shader Graph.

Photo Mode comes with the following features: View Roll, View Distance, Focus Distance, Aperture, Exposure, Contrast, Saturation, Vignette, Filters, Frames, Stickers, Camera Height, Camera Rotation, Rule of Thirds Grid, & Hide UI.

  


Requirements

  • This package requires Unity version 2020.3 LTS or higher, along with the Universal Render Pipeline.

  • If importing this demo into your own project, be sure to have the following packages installed: Cinemachine v2.6.5 +, Input System v1.0.2 +, TextMeshPro v3.0.6 +

  • A scene containing a Cinemachine Brain and Virtual Camera (set to your preference)


Setup

Context for these steps can be viewed in our Photo Mode Overview Video.

  1.  Download the Photo Mode package from this repo’s Releases page.

  2.  Open a Unity project with the requirements listed above. Ensure all required packages are added before importing Photo Mode and that your scene with the Cinemachine Brain and Virtual Camera is open.

  3.  Import the Photo Mode package into your project by navigating to Assets > Import Package > Custom Package.

  4.  In your Project window, locate the “PhotoMode” prefab within PhotoMode > Prefabs and drag it into your scene.

  5.  Select your scene’s newly added PhotoMode prefab and use the Inspector to assign your Player object (or other object you want Photo Mode to focus on) to the “Player Object” field within the Photo Mode script component.

  6.  Within the Project window, select your project’s main Renderer asset (usually listed as “Forward Renderer”). Go to the asset’s settings within the Inspector window and add a Blit Render Feature to the asset by selecting Add Renderer Feature > Blit.

  7.  The Render Feature you just created contains a field called “Blit Material.” Set its target to be the material called “BlitMaterial” located within the PhotoMode > Materials folder.

  8.  Select the “PhotoMode” prefab in your scene and locate the “Blit” field within its “Photo Mode” script component. Ensure that field is populated with the Blit you just added to the Renderer.

  9.  Open your Project Settings, navigate to the Input System Package settings, and ensure the Update Mode is set to "Process Events in Dynamic Update."

  10.  Enter Play mode to test Photo Mode. By default, Photo Mode can be activated by pressing “P” on a keyboard or “SELECT” on a gamepad.


Saving Screenshots

Once you apply your desired effects with Photo Mode, use the Hide UI option to see an unobstructed view of your creation. You can then save it as an image using your device’s native Share or Screenshot button.


Customization Notes

  • You can adjust the range for standard sliders — such as View Roll, Exposure, and Vignette — by changing their corresponding Min & Max values within the Photo Mode script component on the main PhotoMode prefab object:



    Options and values for the text-based sliders can be changed via the Text Slider component within the corresponding feature’s Slider object:



    The value of each slider in Photo Mode defaults to the average between its corresponding Min & Max values. For example, if the default value you want for Post Exposure is 1.5, the Min/Max range for it could be -0.5/3.5.


  • Photo Mode contains a Volume with post-processing effects that may override your existing Volume’s Depth of Field or Color Adjustments settings. You can update Photo Mode to work with your Volume’s values by following these two steps:

    • In the Hierarchy, select the PhotoMode_Volumes child object of the Photo Mode prefab. Change any conflicting values within its Depth of Field or Color Adjustments settings to match what you have in your original Volume. Also, make sure the PhotoMode_Volumes priority is set to a higher value than your original Volume.
    • On the main PhotoMode prefab object, update the Min/Max ranges for the corresponding settings within the Photo Mode script component. Since the value of each slider defaults to the average between its Min & Max values, be sure to set the ranges to have an average that matches the value of the respective setting in your post-processing Volume.


  • If you’d like to enable Photo Mode using a different input, UI event, or other custom setup, be sure to turn off the Pause Action Activation checkbox within the Photo Mode Pauser script component on the main PhotoMode prefab object. Once turned off, Photo Mode will no longer open when pressing the default “P” key so you can integrate Photo Mode into your preferred setup.


Resources

Here are some links to helpful context regarding the Photo Mode Demo Package:

More Repositories

1

open-project-1

Unity Open Project #1: Chop Chop
C#
5,672
star
2

ShaderGraph_ExampleLibrary

A library of Shaders created using Unity's Shader Graph.
ShaderLab
1,756
star
3

ATerribleKingdom

Scripting the Timeline for games in creative ways. Includes a small RTS game build on the 'A Mighty Kingdom' assets
C#
786
star
4

AngryBots_ECS

The DOTS project used for the presentation Converting Your Game to DOTS
C#
666
star
5

InputSystem_Warriors

Example Project for the new Unity Input System
ShaderLab
555
star
6

MinecraftECS

This is a Workshop Project that made for a User group talk in Taiwan, It's about how to create a Minecraft like environment with huge number of blocks using ECS
C#
550
star
7

MachineLearningRoguelike

A small Roguelike game that uses Machine Learning to power its entities. Originally used in talks by Ciro & Alessia.
C#
438
star
8

LoadyDungeons

Demo for CCD+Addressables training and workshops.
C#
250
star
9

LWRPScriptableRenderPass_ExampleLibrary

ShaderLab
246
star
10

Presentation

No need to switch to Power Point anymore.
C#
231
star
11

URP-Defender-Character-Demo

TressFX Hair plugin (Beta), Character Package, and Hairstyles assets for Universal
HLSL
223
star
12

Test_ShaderGraphBlog

Example Project to demonstrate Vertex Animation Shaders using Shader Graph.
C#
223
star
13

AngryBots2

C#
213
star
14

GalacticKittens

Get started making multiplayer games with Netcode for GameObjects
C#
196
star
15

PaddleGameSO

A demo project to showcase design patterns and game architecture using ScriptableObjects
C#
179
star
16

SpaceShooterECS

The ECS project originally developed with Intel for GDC 2018
C#
151
star
17

HDRP-Defender-Character-Demo

TressFX Hair plugin (Beta), Character Package, and Hairstyles assets for HDRP
C#
122
star
18

DOTS_Pong

This project is a simple creation of the classic Pong game with a DOTS implementation. The focus was on simplicity and using the latest entities syntax (as of 2019.3 beta and Entities 0.3.0-preview.4).
C#
119
star
19

ProceduralPatterns2D

C#
112
star
20

2D_IsoTilemaps

C#
87
star
21

Pre-Baked-360

Making high quality levels for mobile platform using 360 videos and images. feel free to use it by all means.
C#
81
star
22

UniteNow20-Persistent-Data

Example Scripts for the UniteNow 2020 Persistent Data talk
C#
69
star
23

Lightmapper-FPSSample-TheInspection

C#
48
star
24

PrefabWorkflows_3DGameKit

Demo Project showing the new Prefab Workflows: Prefab Mode, Editing and Nesting!
ShaderLab
35
star
25

PrefabWorkflows_SpiderRobots

Demo Project showing the new Prefab Workflows: Prefab Mode, Editing and Nesting!
C#
33
star
26

UniteNow20-RuntimeProfiler

Example scripts from the UniteNow2020 Persistent Data talk
C#
30
star
27

ParticleFeatures_2018.3

C#
30
star
28

NavMesh-Feature-Demo

The NavMesh demo for the new Unity 5.6 Navigation Features. This is the project that was used at GDC as well as Unite AMS
C#
27
star
29

Substacnce-Painter-To-Unity

C#
22
star
30

PrefabWorkflows_UIDemo

ShaderLab
20
star
31

blockyourfriends

C#
17
star
32

Unity-Entities-Dodge-the-Bullets

Unity Korea Entities(ECS) tutorial project
ShaderLab
15
star
33

AR_Industrial

AR Foundation project showing off functionality for HoloLens 2 and mobile
ShaderLab
12
star
34

PiXYZWorkShop

C#
10
star
35

BuffaloKing

Buffalo King is a Slot Machine game (demo) showcasing 2D animation and rigging workflows.
ShaderLab
9
star
36

ShaderGraph_HDRPNodes

C#
8
star
37

2D_RiggedCharacters

5
star
38

LightingWorkshop

C#
5
star
39

TankDotsWorkshop

Project used for the Unite India workshop on DOTS, similar to the one delivered at Unite CPH.
C#
4
star
40

ARFarm

ARFarm
Mask
3
star
41

SpriteRigging_ToonCharacters

2
star
42

Unity-KOR-Uday-Entities-Sample

Very Simple Sample for Unity Korea Uday - Let's dive into Entities session
Mathematica
2
star
43

DCC-RoundTripping

Digital Content Creation and round-tripping between Autodesk 3DS Max, Autodesk Maya and Unity.
C#
1
star
44

letsdev_ep1

C#
1
star
45

TooTooBaby-CartoonsUsingUnity

I will walk through how to make a cartoon show in Unity #UnityForFilm
1
star