Part 1: Intro to 3D Development in Unity

Overview | Part 1: 3D Dev | Sprint 1 | Sprint 2 | Sprint 3 | Sprint 4 | Part 2: VR Dev | Sprint 1 | Sprint 2 | Part 3: Educational Software Design


OVERVIEW - build | code | lectures

This course provides a practical overview of interactive design tools, techniques and principles for 3D development using the Unity creation engine. This unit teaches 3D project structure as students create and customize a 3D painting application using feature driven development. Subjects covered will include project management, user experience design, user flow diagramming, sprint based development, C# scripting, 3D computer graphics, user interface design and code integration, animation, rendering, physics, user input, and raycasting.

COURSE DESCRIPTION

Course is broken up into four sections, focusing on refining your skills in user input, 3D graphics, and animation with programming and interaction design being present in all sections. Each section has 3-4 weeks of instruction lead project development with the last section giving freedom for the students to demonstrate their newly learned skill sets in a do it yourself project. Each week has three hours of class time, with 1.5 hours in live instruction, 1.5 hours in online instruction, and 2-3 hours of project work. Both live and online instruction are accompanied by exercises to practice the new knowledge. The only graded items in the class are the projects due at the end of each of the four sprints and one exam at the end of class.

3DWeeks.JPG

WEEKLY SCHEDULE

FACE-TO-FACE

  • 30-40 live instruction on material that works for live instruction.

  • 30-40 minutes of exercise for students to prove they understand the material.

  • Need a sample project to lecture on and give exercise about.

    (NOTE: If students cannot complete exercise that should be a hint to come to lab time.)

ONLINE

  • 40-60 minute lecture video on material that is not suitable for live instruction, the details that can be boring for students, that some students may know already, and material that students need to process for short amount of times and then do themselves as they are learning

  • 30 minute exercise for students to prove they understand the material

    (NOTE: If students have issues with the lecture videos then they need to come into lab time)

PRE-REQUISITES

  • Basic graphic design experience: creating a webpage with text, graphics, animation

  • Basic interaction design experience: building a website with user interface elements

  • Basic programming experience with high-level OOP languages: Python, Java, Javascript


Sprint 1 Deliverable

Description

Create a painting tool by creating 3D primitives where the user clicks on the screen, and destroy the primitives after 3 seconds. Create a user interface that allows the user to control the randomization of the size and color of generated 3D primitives.

Purpose

Demonstrates student has understood the educational goals for weeks 1-3.

  • Week 1: Basics of interaction design, flowcharts, Unity interface, and scripting.

  • Week 2: User input, camera, raycasting, screen-space, world space, hierarchies, game objects, prefabs and build requirements.

  • Week 3: Random number generation, position, scale, rotation, color theory, setting attributes, user interfaces, interface elements, promoting interfaces from inspector to UIs

Build

Embedded Webgl build has been disabled for now. Here is the link to the build.

Sprint01UserFlowDiagram.jpg

Sprint 2 Deliverable

Description

Upgrade sprint 1 painting app with the following functionality features:

  • User input and time-based paint object clearing functionality

  • Paint Stroke size, glow, and opacity features modifiable via UI sliders

  • Model 3D clock, connect it to system time, allow the user to change the time of day to complement the user’s painting experience.

  • Clock tutorial is created by catlikecoding

Purpose

Demonstrates student has understood the educational goals for weeks 4-7.

Week 4: use the math library, look up scripting documentation, building algorithms and use of loops and switch statements.

Week 5: create higher quality user flows, diagrams, object representations, UI functionality and organization.

Week 6: distinguish what objects the user is clicking on, add more complexity to their prefabs and open up more options to the user through the UI.

Week 7: Usability considerations of user interfaces to make decisions for grouping, organizing, and naming schemes for ease of use for both user and developer, how to use looping structures and logical operators.

Build

Embedded Webgl build has been disabled for now. Here is the link to the build.

Sprint02UserFlowDiagram.jpg

Sprint 3 Deliverable

Description

Upgrade sprint 2 painting app with the following functionality features:

  • Create three multiple object prefabs for spawning, each with their own three animations that the user can choose from

  • Update UI to allow user to select one of three objects to spawn, and one of three animations to play on those objects

  • Update UI to allow user to change the speed of the animations, and allows user to randomize the type of animation and its speed

Purpose

Demonstrates student has understood the educational goals for weeks 8-10.

Week 8: Basics of motion design and how to create animation by code and by using the animation system. Students will be able to control transitions of multiple animations on one prefab/game object by building an animator and setting the transitions between animations by code.

Week 9: Create more advanced prefabs with multiple objects, and with multiple animations. Students will understand setting up an animator to accept multiple animations, transitions between animations, and how to switch between different animation states. Students will learn how to connect UI elements to animators to allow users to change animation states.

Week 10: Make effective use of the animator and animation windows to create animations, understand how to break down complex parts of code or animation into simpler parts for creation and modification ease, and understand how to use forEach loops to process lists of unknown size.

Build

Embedded Webgl build has been disabled for now. Here is the link to the build.

Sprint03UserFlowDiagram.jpg

Sprint 4 Deliverable

Description

Upgrade sprint 3 painting app with the following functionality features:

  • Paint behind the UI

  • Hide and show the UI

  • Animate UI with code, and disable Hide button while UI is moving

  • Organize, label, color code sections of UI elements

  • All UI elements are functioning correctly

  • All attributes of spawned objects relating to UI are responsive to UI elements

  • Changing between the three prefabs and three animations are hot keyed

  • Animation speed changes doesnt not overwrite previous anim speeds only modifies

Purpose

Demonstrates student has understood the educational goals for weeks 11-13.

Week 11: Organize and present complicated UI interfaces, organize rendering orders for 2D and 3D graphics, animate objects with multi-threaded code, and refactor prefabs and code to fix bugs.

Week 12: Understand testing procedures to identify issues in their code, and external assets, using collection data structures to record initial parameters of objects, and standardization practices for their code and external assets.

Week 13: Understand naming, commenting, organization and refactoring processes for clean, legible code, and be able to read through and understand all code generated in this class project.

Build

Embedded Webgl build has been disabled for now. Here is the link to the build.