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.
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.
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.
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.
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.
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