Difference between revisions of "Digital technologies/Virtual reality/Unity Project Resources"
Line 202: | Line 202: | ||
· Narrative Story Using Timeline: https://www.youtube.com/watch?v=AJBb-PA-nAk&list=PLpEoiloH-4eM-fykn_3_QcJ-A_MIJF5B9&index=9&ab_channel=ValemTutorials | · Narrative Story Using Timeline: https://www.youtube.com/watch?v=AJBb-PA-nAk&list=PLpEoiloH-4eM-fykn_3_QcJ-A_MIJF5B9&index=9&ab_channel=ValemTutorials | ||
[[File:Timeline Example.png|center|thumb|536x536px|Timeline Example]] | [[File:Timeline Example.png|center|thumb|536x536px|Timeline Example]] | ||
+ | |||
=== Design Day Preparation === | === Design Day Preparation === |
Revision as of 16:45, 7 June 2024
Unity Software
Unity is a cross-platform game engine that can be used to create games, apps and experiences in 2D or 3D. In this section, resources on the Unity Software can be found covering Virtual Reality Projects, Augmented Reality, and 3D Projects in Unity.
General
In this section, we will cover general Unity Information that carries across all projects in Unity. This section covers Getting Started, Scripting in Unity, Character Animations, Movements, Objects, and User Interface, Environment, Cameras, Sounds & Story Telling, and Design Day Preparation.
Getting Started
Unity can be intimidating to new users. To start, we have provided links to installation and to cover the basics.
Installation
Below is a link to the Unity Products page where you can download and install the Unity Game Engine Editor. The second link is a tutorial on how to install the Unity Game Engine Editor.
https://unity.com/products/unity-student
https://www.youtube.com/watch?v=DDPd2UKnoaU&ab_channel=HelpfulOnline
Unity Hub / Modules
Modules are optional components you can use to tailor your editor installation. You can limit the Editor download/install size if you select only the modules that you require. Below is a link that explains how to add or remove modules from unity installs.
https://docs.unity3d.com/2020.2/Documentation/Manual/GettingStartedAddingEditorComponents.html
Unity User Interface
The Unity User Interface (UI) comprises of visual elements and controls allowing interactions between you and the game. Below is an image of the Unity UI and a link that explains the basics of using the Unity Game Editor.
https://docs.unity3d.com/Manual/UsingTheEditor.html
Assets
Assets in Unity are objects that you use to create your game. They can be 3D models, characters, textures or 2D graphics. They can be either obtained for free or purchased from the Unity Asset Store.
· Unity Asset Store: https://assetstore.unity.com/
· Downloading Assets Unity: https://support.unity.com/hc/en-us/articles/210112873-How-do-I-download-an-asset
· More Assets: https://devassets.com/
· Installing Assets: https://www.youtube.com/watch?v=AzItMI583kY&ab_channel=Dr.AfiqahHashim
Plug-Ins / Package Manager
In Unity, you normally use scripts to create functionality, but you can also include code created outside Unity in the form of a plug-in. Packages deliver a wide range of enhancements to Unity through the Package Manager. To help find and use these packages, the Package Manager window provides collections of packages that you can use together, called feature sets.
· Package Manager Info: https://docs.unity3d.com/Manual/Packages.html#:~:text=The%20Package%20Manager%20also%20supports,examples%2C%20tutorials%20and%20Editor%20extensions.
· How to use Package Manager: https://www.youtube.com/watch?v=gWNBzMNFTqc&ab_channel=TurboMakesGames
· Plug-Ins Info: https://docs.unity3d.com/Manual/Plugins.html
Scripting in Unity
Scripting is an essential ingredient in all applications you make in Unity. Most applications need scripts to respond to input from the player and to arrange for events in the gameplay to happen when they should. Beyond that, scripts can be used to create graphical effects, control the physical behavior of objects or even implement a custom AI system for characters in the game. The language used is C# (C-sharp). The IDE used is Visual Studio Code which gets installed by default when you install Unity.
Scripting in Unity
Scripting Info: https://docs.unity3d.com/Manual/ScriptingSection.html
Creating a New Script
Creating a New Script: https://www.youtube.com/watch?v=9tMvzrqBUP8
What is C#
What is C#: https://dotnet.microsoft.com/en-us/learn/csharp
Python & Unity
· What is Python? : https://gamedevacademy.org/python-programming-for-beginners-2/
· Sending Data from Python to Unity (TCP Socket): https://www.youtube.com/watch?v=Dm0CiAiZk14&ab_channel=Conor
· Python Scripting Package: https://docs.unity3d.com/Packages/com.unity.scripting.python@7.0/manual/index.html
NPC Characters, NPC Character Animations, Movements, Objects, and User Interface
In Unity we often want to introduce other characters and objects. In most cases we want these characters to move, objects to be interactable, or assign materials to items to change its appearance. Maybe we want a regular 2D menu screen. In this section, we will cover the general uses for these features that will remain the same across VR, AR, and 3D projects.
Materials
· Info: https://docs.unity3d.com/Manual/Materials.html
· Video Tutorial: https://www.youtube.com/watch?v=aiTl7B2xTmA&ab_channel=TheRealTimeEssentials
NPC Characters and Modeling
NPC Characters and other Models can be downloaded from the Unity Asset Store or other online data bases.
· Realistic NPC Characters: https://www.youtube.com/watch?v=va-qyFa312g&t=10s
· Adding Character Models to Unity: https://www.youtube.com/watch?v=Q8lJpoUwaBA&ab_channel=Fui
NPC Character Animation & Movement
· Animating Characters (Unity Animator): https://www.youtube.com/watch?v=vApG8aYD5aI&ab_channel=iHeartGameDev
· Animating Animals: https://www.youtube.com/watch?v=fmp1t5Ug5CI
Mixamo
Mixamo is a website that you can download animations from and incorporate into your Unity project.
· Mixamo: https://www.mixamo.com/#/
· Tutorial: https://www.youtube.com/watch?v=Vsj_UpnLFF8&ab_channel=BMo
Universal User Movement (Using Mouse and Keyboard)
In most projects, it is useful to be able to control the user with the mouse and keyboard as it can save time in development. It is useful in the development phase so that you can test your game without the need of putting on/off a VR headset for example. The controls can still be implemented for 3D projects too if desired.
· First-Person: https://www.youtube.com/watch?v=f473C43s8nE&ab_channel=Dave%2FGameDevelopment
· Third-Person: https://www.youtube.com/watch?v=UCwwn2q4Vys&ab_channel=Dave%2FGameDevelopment
Menu Screen / User Interface
In all projects, you will want some type of menu screen. There are many different ways to do this. Below is a link to a tutorial to create a basic menu main screen.
https://www.youtube.com/watch?v=DX7HyN7oJjE&ab_channel=RehopeGames
Trigger Zones
In VR games and Experiences, sometimes we want events to occur when passing through a certain point or when an object/character passes through a point. For example, a sound effect goes off when passing through a doorway, or narration continues once user completes a task. Below is a video explaining how you can implement this.
https://www.youtube.com/watch?v=p1ZgS2z-LTs&ab_channel=passivestar
Environment
This section focuses on the 3D Environment in which the VR game will be taking place. This includes World Building, Skybox, and Lighting.
World Building
World Building encompasses everything that includes attaining assets to create your in-game world.
· Using Pro-Builder: https://www.youtube.com/watch?v=Lqhn0Hl8e_Y&t=25s
· Terrains: Unity - Manual: Creating and editing Terrains (unity3d.com)
· Building a simple 3D Environment: https://www.youtube.com/watch?v=saa9zxgCMu4&list=PLpEoiloH-4eM-fykn_3_QcJ-A_MIJF5B9&index=3&ab_channel=ValemTutorials
Skybox
The desired ambience for your game can be created using the skybox. It is the background of the world and as the name suggests, the sky.
· Replacing default skybox in Unity: SMBMonth_CA_SMBPurchase_PROS_YT_Video_15s_16x9 (youtube.com)
· Manual: Unity - Manual: Skybox (unity3d.com)
Lighting
Lighting in Unity approximates how light behaves in the real world, contributing to realistic scenes.
· Info: https://docs.unity3d.com/Manual/LightingInUnity.html
· Lighting Tutorial: https://www.youtube.com/watch?v=VnG2gOKV9dw&list=PLPV2KyIb3jR5QFsefuO2RlAgWEz6EvVi6&index=20
· Environment Basic Lighting (@9:30): https://www.youtube.com/watch?v=saa9zxgCMu4&list=PLpEoiloH-4eM-fykn_3_QcJ-A_MIJF5B9&index=3&ab_channel=ValemTutorials
Cameras, Cinemachine, and Unity Recorder
This section focuses on Cameras in Unity, covering general Camera information, Cinemachine, and Unity Recorder.
Cameras
· Info: https://docs.unity3d.com/351/Documentation/Manual/Cameras.html
Cinemachine
Used to make cinematic trailers for game or application.
· Info: https://unity.com/unity/features/editor/art-and-design/cinemachine
· Tutorial / Showcase: https://www.youtube.com/watch?v=x6Q5sKXjZOM&list=PLX2vGYjWbI0TQpl4JdfEDNO1xK_I34y8P&ab_channel=Unity
· Tutorial: https://www.youtube.com/watch?v=XT6mUlpO4fA&ab_channel=iHeartGameDev
Unity Recorder
The Unity Recorder is used to record gameplay in the unity editor.
· Info: https://docs.unity3d.com/Packages/com.unity.recorder@2.0/manual/index.html
· Tutorial: https://www.youtube.com/watch?v=-W27WCobILI&ab_channel=SpeedTutor
Sounds & Story Telling
This section focuses on Sound Effects, Dialogue, and the powerful tool in Unity called the Timeline.
Sound Effects
· Info: https://learn.unity.com/tutorial/working-with-audio-components-2019-3
· Free audio files: https://learn.unity.com/tutorial/working-with-audio-components-2019-3
Dialogue / Narration
Dialogue can be useful when delivering information and guiding players throughout the game.
· Tutorial: https://www.youtube.com/watch?v=8oTYabhj248
· Narrative story using timeline: https://www.youtube.com/watch?v=AJBb-PA-nAk&list=PLpEoiloH-4eM-fykn_3_QcJ-A_MIJF5B9&index=9&ab_channel=ValemTutorials
Timeline
Use the Timeline window to create cut-scenes, cinematics, and game-play sequences by visually arranging tracks and clips linked to GameObjects in your Scene.
· Info: https://docs.unity3d.com/Packages/com.unity.timeline@1.2/manual/tl_about.html
· Video Intro: https://www.youtube.com/watch?v=G_uBFM3YUF4&ab_channel=Brackeys
· Video Tutorial: https://www.youtube.com/watch?v=42QZ3aUDnV0&list=PLmXKnJbgQ2cqGG4WwuE43L-kwmb3C0-1x&ab_channel=Unity
· Narrative Story Using Timeline: https://www.youtube.com/watch?v=AJBb-PA-nAk&list=PLpEoiloH-4eM-fykn_3_QcJ-A_MIJF5B9&index=9&ab_channel=ValemTutorials
Design Day Preparation
This section covers everything you need to prepare for Design Day to complete successfully.
Building/Exporting as a Game (.exe file)
Before Design Day, we recommend building your unity project as a launchable program on all of the MakerSpace laptops. This way on design day, no matter what laptop you are using, you will be able to demonstrate your functioning game. This will complete your project.
· Tutorial: https://www.youtube.com/watch?v=7nxKAtxGSn8&ab_channel=Brackeys
Transferring Project from one PC to another
· Tutorial: https://www.youtube.com/watch?v=ozVkcEfnlwI&ab_channel=WasayTechTips
Virtual Reality (VR) in Unity
In this section we will cover Unity features that will be specific for VR projects in Unity.
User Interface in VR
In VR projects, we can introduce a new way to interact with a User Interface. It is an in-game UI / menu that has a lot of different applications.
· Tutorial #2: https://www.youtube.com/watch?v=6WfowlZ51i8&list=PLpEoiloH-4eM-fykn_3_QcJ-A_MIJF5B9&index=11&ab_channel=ValemTutorials
User Movement and Interactions in VR
In VR there are a few different ways for the user to navigate the game/experience. This can be done by teleporting or moving continuously.
User Movement in VR
· Continuous Movement: https://www.youtube.com/watch?v=0VowAem2aMM&list=PLpEoiloH-4eP-OKItF8XNJ8y8e1asOJud&index=4&ab_channel=ValemTutorials
· Teleportation: https://www.youtube.com/watch?v=9pVdiBogmew&list=PLpEoiloH-4eP-OKItF8XNJ8y8e1asOJud&index=5&ab_channel=ValemTutorials
Note: In this video, the developer makes a mistake which he fixes in his next episode.
· More Teleportation and Continuous movement: https://www.youtube.com/watch?v=54J_mWO_gQ8&list=PLpEoiloH-4eM-fykn_3_QcJ-A_MIJF5B9&index=6&ab_channel=ValemTutorials
User Interactions in VR
In VR games and VR Experiences, Users often interact with objects or other characters. In this section some links are available to explore how to interact with objects and characters.
· Grabbing objects and applying physics: https://www.youtube.com/watch?v=apzZ5Tma7Sg
. Grabbing objects and applying physics #2: https://www.youtube.com/watch?v=0xt6dACM_1I&list=PLpEoiloH-4eP-OKItF8XNJ8y8e1asOJud&index=6&ab_channel=ValemTutorials
· Input and Hand Presence: https://www.youtube.com/watch?v=8PCNNro7Rt0&list=PLpEoiloH-4eP-OKItF8XNJ8y8e1asOJud&index=3&ab_channel=ValemTutorials
· Distance Grab: https://www.youtube.com/watch?v=nowlPXuPEG8&list=PLpEoiloH-4eP-OKItF8XNJ8y8e1asOJud&index=7&ab_channel=ValemTutorials
· Buttons and Socket Interactor: https://www.youtube.com/watch?v=pMOHX1qD2bE&list=PLpEoiloH-4eM-fykn_3_QcJ-A_MIJF5B9&index=7&ab_channel=ValemTutorials
· Ladder, Wheel, and Lever: https://www.youtube.com/watch?v=eX-jXuMQdps&list=PLpEoiloH-4eM-fykn_3_QcJ-A_MIJF5B9&index=8&ab_channel=ValemTutorials
Augmented Reality (AR) in Unity
In this section we will cover Unity features that will be specific for AR projects in Unity.
· Info: https://unity.com/solutions/xr/ar
Getting Started with AR Foundation
· Tutorial: https://www.youtube.com/watch?v=FWyTf3USDCQ
AR Setup for iOS and ANDROID
Image Tracking in AR
· Info: https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.1/manual/tracked-image-manager.html
User Interactions
· Plane Detection: https://www.youtube.com/watch?v=uWWiYfPTUtU&list=PL6VJLOFcTt7awvyIGIbLLPOBrW6-Y1R-J&index=4&ab_channel=DineshPunni
· Placing Objects in AR: https://www.youtube.com/watch?v=xguiSueY1Lw&list=PL6VJLOFcTt7awvyIGIbLLPOBrW6-Y1R-J&index=5&ab_channel=DineshPunni
360 Video Experience in Unity
In Unity, it is possible to create 360 interactable video experiences.
Getting Started
· Unity Tutorial Playlist: https://www.youtube.com/playlist?list=PLX2vGYjWbI0TifrTlupfrJeLa7c8LunUf
Physical Equipment
In this section, resources on the physical equipment found in the lab can be found.
VR Headset and Controllers
This section mainly focuses on the VR Headset and Controllers, covering Configuration and Connecting to Unity. They can be found in the Makerspace. We will be using the Meta Quest 2.
Configuration
· Setup: How To Setup VR Development in Unity 2022.2 with a Quest 2 (XR Interaction Toolkit 2.1) - YouTube
Connecting to Unity and Headset Plug-Ins
· Unity Headset and Controller Connectivity Tutorial: https://www.youtube.com/watch?v=pm9W7r9BGiA&list=PLpEoiloH-4eM-fykn_3_QcJ-A_MIJF5B9&index=2&ab_channel=ValemTutorials
· Unity Headset and Controller Connectivity Tutorial #2: https://www.youtube.com/watch?v=HhtTtvBF5bI&list=PLpEoiloH-4eP-OKItF8XNJ8y8e1asOJud&index=3&ab_channel=ValemTutorials
· Meta Quest 2 Set-Up in Unity: https://www.youtube.com/watch?v=tGZgJ5XtOXo&ab_channel=Meetras
Sharing Files
As these projects are done in groups, file sharing is extremely crucial. Below you can find a couple ways to share files in Unity.
Physical with USB
The simplest way to share files with group members is to transfer projects onto a USB stick and physically store the project.
· Wiki: https://discussions.unity.com/t/save-to-flash-drive/38346
· YouTube Tutorial: https://www.youtube.com/watch?v=ozVkcEfnlwI&t=3s&ab_channel=WasayTechTips
Digitally with GitHub
GitHub is a tool used to allow collaboration between people working on the same project. In this section, some resources on Cloud Sharing and GitHub repositories can be found.
Setup
· Info: https://unityatscale.com/unity-version-control-guide/how-to-setup-unity-project-on-github/
· Unity and GitHub Repository Setup: https://www.youtube.com/watch?v=tTIlDb71t2s&ab_channel=Garnet
· GitHub desktop app: GitHub Desktop | Simple collaboration from your desktop
More!
· Free Course: https://academy.zenva.com/product/unity-101-game-engine-foundations/
· Best Practices for UI in VR: https://learn.unity.com/tutorial/best-practices-for-user-interfaces-ui-in-vr-with-the-xr-interaction-toolkit