Critical Making 2: Immersive Media Design
Critical Making 2: Immersive Media Design introduces designers to the tools and workflows used to build immersive virtual reality and augmented reality experiences.
This studio-based course explores the intersection of virtual reality (VR) and augmented reality (AR) tools and workflows, interaction design, multimedia production, and product innovation as possible tools for solving industry-based challenges.
Students will develop fundamental skills in 2D/3D asset creation, 3D game engines, simulation, animation, and rendering strategies used in the production of high-quality content for use in crafting immersive digital experiences. The course will utilize industry-standard tools such as Unity, Cinema 4D, Adobe Creative Cloud, and hardware platforms such as HTC VIVE for VR and ubiquitous mobile devices for AR. In addition, the course will cover concepts ranging from UI/UX design for immersive experiences, interaction design in VR, game mechanics, designing for human interaction, and scripting behaviors for digital objects and agents.
Day and Time:
Monday, 9:30 am - 12:00 pm
CMCI Studio (1301 Walnut St)
Location:
We have adopted a hybrid (remote/in-person) class structure this semester due to COVID-19. This means anyone can participate in person or virtually over Zoom anytime. The class schedule will indicate when class is to be held in person at the Studio or virtually over Zoom. The following Zoom link is to be used for all class sessions. The required password is provided in Slack.
>> Zoom Meeting (Password Required) <<
Instructor:
RJ Duran
rj.duran@colorado.edu
Slack: @rjduran. #cmstudio on cmcistudio.slack.com
Office hours by appointment. Feel free to reach out to me via slack or email.
Syllabus:
This website is a real-time version of the course syllabus. It is updated weekly throughout the semester. A static version can be downloaded here.
Slack:
Channel #cmstudio and user group @imd will be used for all course communication and notifications. Be sure to use the appropriate user group when necessary.
Course Themes
- Designing Media for VR and AR
- Building Mobile AR Experiences
- Building VR Experiences
- Digital Asset Creation
- Interactivity
- UX/UI of XR
- Scripting / Programming
Course Workload
- This is a 3 credit hour course. You should expect to dedicate at least 2-3 hours per credit hour. This translates into 6-9 hours per week outside of class. Consider 6 hours a minimum expectation for one studio course and plan accordingly with your other studio courses.
- Assignments for this course consist of weekly blog posts demonstrating project-based and process oriented research and explorations in making. Assignment parameters will be based on the topic of the week and in-class discussions. Refer to the Course Deliverables section for more information.
- The course is organized into weekly meetings consisting of instructor led project-driven topics organized as workshops and studio work sessions. It is expected that all students are active participants in each session.
Course Deliverables
This is a project based course and largely driven by student research and interests. As such, each deliverable is expected to vary based on the project parameters and requirements. The following outlines the general criteria for course deliverables throughout the semester.
Assignments
- Assignments are given weekly and need to be submitted as a blog post published to your Critical Making blog. A minimum of 1 blog post per week is the expectation.
- Medium is widely used in other studio classes but any blogging platform may be used.
- Posts are to be submitted via slack #cmstudio by the specified due date each week.
- It is recommended that a post includes a variety of media and content to support the subject matter. For example: text, images, video, graphics, photos, mockups, screen captures, tutorials, 3d model viewers (sketchfab), sketches, code, gifs, references, etc. Anything that is required to effectively communicate the details of a project, process, prototype, or idea.
- The subject matter is in response to the topics of the week. Ideally, it falls in line with your interests, research area, project, creative process, etc. For example, you might consider doing a series of tutorials on a topic that interests you or a process/workflow you are currently exploring through the course.
- Posts should be written to the best of your abilities and for a public audience. The post and any accompanying visual content (images, video) may be shared on social media.
Final Project
- Final Project Proposal (Submitted as a blog post)
- Final Project Presentation (Delivered live or as pre-recorded presentation)
- Final Project Documentation (Submitted as a blog post)
Technology
In this course you are free to use any kind of computer and operating system you wish as along as it can run the software listed. The course will primarily be taught using the macOS based version of each tool we encounter with the exception of SteamVR, which is Windows based.
Hardware
- A recent Apple Macbook (2013 and newer) with macOS Catalina (10.15) or a Windows 10 based system.
- At least 30 - 50 GB extra hard drive space to install software and work.
- At least 1 TB external / portable hard drive to move files around and between computers as needed.
- (Optional) A recent mobile device supporting AR Kit 3 or 4 (devices with A12+ chip running iOS 13) or ARCore (devices running Android 7.0) for mobile AR development. Learn more about AR supporting devices: ARKit Devices and ARCore Devices.
Software
In this class we will make use of various types of design and engineering software. Some tools are essential and required to complete a task such as getting a VR or AR experience working while other tools are based on personal preference and workflow. Access to the following software is recommended.
Required Software
- Unity 2019.4 (Installed with Unity Hub)
- Xcode 12 (macOS only) - Developer account required to access Apple dev resources.
- Visual Studio Community 2019 for Mac or Visual Studio 2019 Community for Windows
- Visual Studio Code (aka VSCode)
- Cinema4D for Students - Create account and follow instructions to obtain 6 month educational license via Kivuto.
- Adobe Aero (iOS App) - Free from the App Store.
- Adobe Mixamo
Additional Software
- Steam & SteamVR
- Processing
- Blender
- Touch Designer
- Adobe Fuse
- Adobe Dimension
- Autodesk Maya
- Autodesk Mudbox
- ZBrush
- Substance Suite
- Autodesk Fusion 360
- McNeel Rhinoceros
- Meshlab
- Meshmixer
- Structure Sensor (iOS App)
- Lens Studio
- Spark AR Studio
Week 1: Overview / Unity
Jan 25 | Location: Zoom Meeting
-
Week 1 Slides
- Legend of Zelda: Breath of the Wild Game
- Nintendo Labo VR Kit
- Big Bang AR
- Google — Childish Gambino AR
- How Do You Become a YouTuber Without Showing Your Face?
- Student Projects
- Creative Applications
Assignment 1: 3D Concepts & Unity Essentials
Part 1: Watch Videos on 3D Concepts
Watch all the videos in the Youtube Playlist below to understand key 3D concepts you will encounter throughout this course. We will be touching on most of these topics at some point.
- Overview: Start 3D: An introduction to key 3D concepts
- Youtube Playlist: Adobe Start 3D: Learn Key 3D Concepts
Part 2: Unity Essentials
Before we meet next week, I would like you to work on the first mission, Foundations: Get started with Unity from Unity Essentials. To get started, signup for a Unity account (Unity ID) at learn.unity.com. You will encounter the LEGO Microgame while working through the lessons.
Deliverable:
There is no required blog post for this week but you can document your progress with one if you like. I will assume you have worked through these resources and have an understanding of the content. You can share a link to your Microgame submission for others to play with via Slack. We will start class next week by checking out your Microgame projects.
Week 2: Unity / Intro to Scripting
Feb 1 | Location: Zoom Meeting
- Week 2 Slides
Assignment 2: Roll-a-Ball
Work through and complete the Roll-a-Ball project in Unity before we meet next week.
Useful Resources
- Coding in C# in Unity for beginners
- Creating and Using Scripts
- Unity Scripting API Reference
- The C# Player's Guide (3rd Edition) by RB Whitaker
Deliverable:
There is no required blog post for this week but you can document your progress with one if you like. I will assume you have worked through this tutorial and have an understanding of the content. If you create a derivative work from the tutorial, I recommend documenting your work and sharing it with the group via Slack. We will start class next week by checking out any projects you make.
Week 3: Cinema 4D
Feb 8 | Location: Zoom Meeting
-
Week 3 Slides
- World Machine Terrain Generator
- Goodbye Uncanny Valley
- Creating Usability with Motion: The UX in Motion Manifesto
- Compelling and Moving – A Guide to Motion Design Principles
- Frank Thomas & Ollie Johnston from Disney
- Disney Animation: Illusion Of Life by Frank Thomas & Ollie Johnston
- 10 Principles of Motion Design by Jorge R. Canedo Estrada of Ordinary Folk
- Apple Jobs
- Beeple
- HUDs+GUIs
- Grey Scale Gorilla
- Isometric Rooms (Dribble Board)
- Robbie Tilton
Cinema 4D Student License
- Start here - Cinema4D for Students
- Create an account and follow instructions to obtain 6 month educational license via Kivuto. There is a small ($3) processing fee to pay.
- Once you place your order for a license, look for the PDF for further instructions via email. Note the Promo Code. You will use it when setting up your MAXON license.
- Activating the license will take place under your MAXON account, which you sign into when first launching C4D.
Assignment 3: Animate a Logo
Part 1: Tutorials
Work through Learning Cinema 4D S22 on LinkedIn Learning. It should take about 2 hrs to complete. It's a good introduction to the environment and common tools and workflows.
Additional Resources
- Introduction to Cinema 4D by Grey Scale Gorilla
- Cinema 4D S22 Essential Training: Motion Graphics
- Getting Started with Cinema 4D
Part 2: Animate the CMCI Studio Logo
Using the CMCI Studio Logo, create a stylized 3D animation using keyframes and render a short video. Experiment with some of the features available in Cinema 4D such as materials, cameras, lighting to give your render some style and personality.
- Download a the CMCI Studio logo file from Slack channel and import into C4D. Tutorial: Cinema 4D: Importing Vectors from Adobe Illustrator
- In C4D, set your final render image size to 1920 x 1080 px before rendering frames. Tutorial: Cinema 4D: Exporting Animation Videos
- Create an animation 5-10 seconds long. At 30 fps this would be 150-300 frames.
- Bonus! Structure your animation keyframes so you achieve a seamless loop animation.
Deliverable:
Document your process for Part 2 in a blog post.
Produce an animation and upload it to Youtube to embed in your blog post. Write a blog post that includes any details and reflections of your design process in Cinema 4D and other tools used to make your final animation.
Share a link to your post with user group @imd in Slack channel #cmstudio.
Due: Friday, Feb 12
Week 4: XR Asset Workflows
Feb 15 | Location: Zoom Meeting
- Week 4 Slides
Assignment 4: Creating Assets for XR
Using Cinema 4D, create an animated asset that can be used in Adobe Aero or Unity.
Workflow: Animate asset, export FBX, Import FBX into Aero, Preview on Desktop and Mobile
To create your asset in Cinema:
- Choose a vector (icons, logo, etc) to import and animate in Cinema 4D or import an existing 3d model you download from the internet and animate it or create something from primitives in Cinema.
- Once your animation is ready to export, review the following tutorials.
To visualize the result using Adobe Aero:
- Download and install the Desktop App: Adobe Aero Desktop Beta
- Download the mobile app if you have a compatible iOS device. Android is coming sometime in the future. If you don't have a compatible device, don't worry, just share a link to your experience created in the desktop version.
- Make sure to read through the Adobe Aero User Manual: Key 3d modeling conepts to get familiar with what works best for Aero. Go back to your design if something doesn't seem to import correctly or you have too many polygons on an object.
- Remember you can use Autodesk FBX Review as a way to quickly preview FBX files.
- Setup a scene, add FBX files, and setup triggers and behaviors in Aero.
Deliverable:
Document your process in a blog post. Include video screen captures from your desktop and/or mobile device to show how you built your assets and visualized them.
Share a link to your post with user group @imd in Slack channel #cmstudio.
Due: Sunday, Feb 21
Week 5: VR / SteamVR
Feb 22 | Location: Zoom Meeting + In Person
- Week 5 Slides
Assignment 5: Build a World
Based on your concept of a "world", construct one using existing assets from the Unity Asset Store and/or any assets you have created.
- What is in your world?
- What does it look like?
- What does it sound like?
- What does it feel like?
- What inhabits your world?
- How do you navigate the world?
FPS Controller
To navigate your world initially you can use the first person controller (Characters/FirstPersonCharacter/Prefabs/FPSController) from the Unity Standard Assets. Standard assets like these can be used to build functional prototypes to aid development of a game or experience and can be replaced with other assets in time. The first person controller simulates the functionality of the steam VR camera /controller rig and can be replaced when building for VR.
Steam VR (Windows Only)
SteamVR works best on Windows machines with graphics cards that are powerful enough to render immersive 3D worlds. To make your world VR compatible you need to plan for adding SteamVR functionality on the Windows machine running your Unity scene. The following tutorials walk through the basics of Steam, SteamVR, and adding the Player controller to a 3D scene to make it VR ready.
- Tutorial: Introduction to SteamVR
- Tutorial: How to Setup SteamVR Plugin in Unity
Deliverable:
Document your process in a blog post. Include video screenshots and/or screen captures to show how you constructed your world.
Share a link to your post with user group @imd in Slack channel #cmstudio.
Due: Sunday, Feb 28
Week 6: SteamVR / Work Session
Mar 1 | Location: Zoom Meeting + In Person
- Week 6 Slides
Assignment 6: Build an Immersive VR World
Iterate on your existing world or design and build a new world in Unity that utilizes the SteamVR Player prefab, teleportation points and/or areas for locomotion, and basic interactivity to manipulate objects in yoru world.
To truly test your world in a VR system you will need to spend time in the studio getting familiar with running Unity from one of the Windows 10 laptops connected to the HTC VIVE and SteamVR.
If you’re feeling adventurous this week, look to use scripting to create game mechanics in your world. Hint: look at roll-a-ball for some basic game mechanics to start with. Things like object collection, score keeping, displaying text on screen, and collisions are all really useful mechanics that can be used in your worlds.
Steam VR (Windows Only)
SteamVR works best on Windows machines with graphics cards that are powerful enough to render immersive 3D worlds. To make your world VR compatible you need to add SteamVR functionality on the Windows machine running your Unity scene. The following tutorials walk through the basics of Steam, SteamVR, and adding the Player controller to a 3D scene to make it work for VR.
If you try to install and use SteamVR on Mac you will run into errors when trying to run in Unity. There isn't much of a work around at this time.
- Tutorial: Introduction to SteamVR
- Tutorial: How to Setup SteamVR Plugin in Unity
- Tutorial: SteamVR: How to add Teleportation to Scene
- Tutorial: SteamVR: How to add Object Interaction to Scene
- Tutorial: SteamVR: How to add Teleportation to a Terrain
- Tutorial: Unity: Adding a Quit Script
Deliverable:
Document your process in a blog post and upload your VR experience to the Studio File Server. Include video screenshots and/or screen captures to show how you constructed your world. Include a gameplay screen recording to document the experience. You can use OBS Studio for screen recording while running VR experiences on the Windows laptop.
- Tutorial: OBS Studio: How to Record VR Experiences
- Tutorial: Unity: How to Create a Build
Note: If you run into issues uploading a large file (~2 GB), you can try reducing the size of your Unity folder by deleting everything EXCEPT the Assets and ProjectSettings folders before making your zip archive.
Share a link to your post with user group @imd in Slack channel #cmstudio.
Due: Sunday, Mar 14
Week 7: SteamVR / Work Session
Mar 8 | Location: Zoom Meeting + In Person
Week 8: No Class
Mar 15 | Location: Zoom Meeting + In Person
Class canceled due to weather.
Week 9: Spark AR
Mar 22 | Location: Zoom Meeting
- Week 9 Slides
- Final Project Proposal Due by Friday, March 26
Week 10: Final Projects
Mar 29 | Location: Zoom Meeting + In Person
Week 11: Final Projects
Apr 5 | Location: Zoom Meeting + In Person
Week 12: Final Projects
Apr 12 | Location: Zoom Meeting + In Person
Week 13: Final Projects
Apr 19 | Location: Zoom Meeting + In Person
Week 14: Final Project Presentations
Apr 26 | Location: Zoom Meeting + In Person
- Last Day of Class
- Final Project Presentations
- Apr 28 - Final Project Documentation Due
Final Project Documentation
- Jacquemus x Adidas mock motion fashion ad campaign by Arielle Castro
- Tuniverse: An Immersive Music Experience by Katie Kreider, Max Vecchitto, Mark Banzhoff
- Chicago 3D Model by Cody King
- My Perception Through the Lens of Isometric rooms & environments: The Update by Devva Saunders
- Emet: an AR Van Manual by Heather Kraft
- EMET Van AR App by Caleb Hammel
- Fishing VR Game by Yuan Zhuang
- The Brown Recluse Trailer by Jacque Walo
- Lo-Fi Animation by Mye Ponrattanasiri
- NFT by Hudson Fega
- A Virtual Landscape by Mark Banzhoff
