About the Author |
|
xiii | |
About the Technical Reviewer |
|
xv | |
Acknowledgments |
|
xvii | |
Introduction |
|
xix | |
|
|
1 | (4) |
|
A No-Coding Approach to VR Development |
|
|
1 | (1) |
|
Two Ways to Approach the Material Covered in This Book |
|
|
2 | (1) |
|
Advantages of VRTK over Alternative Solutions |
|
|
2 | (1) |
|
|
3 | (2) |
|
Chapter 2 A New Reality through Virtual Reality |
|
|
5 | (8) |
|
|
5 | (1) |
|
Become a VR pioneer now, and create the future! |
|
|
6 | (1) |
|
|
6 | (1) |
|
Medical and Mental Health |
|
|
6 | (1) |
|
Automotive Engineering and Design |
|
|
7 | (1) |
|
|
7 | (1) |
|
Architecture, Construction, and Real Estate |
|
|
7 | (1) |
|
Entertainment and Journalism |
|
|
7 | (1) |
|
|
8 | (1) |
|
|
8 | (1) |
|
Immersion and Presence in VR |
|
|
9 | (1) |
|
|
9 | (1) |
|
|
9 | (1) |
|
|
9 | (1) |
|
VR Hardware and Technology |
|
|
10 | (1) |
|
|
11 | (1) |
|
|
11 | (1) |
|
|
11 | (1) |
|
|
12 | (1) |
|
Chapter 3 Setting Up Your Project for VR Development |
|
|
13 | (14) |
|
VR Hardware Prerequisites |
|
|
13 | (1) |
|
Unity Prerequisites and Oddities |
|
|
14 | (1) |
|
Setting Up Your VR project |
|
|
14 | (1) |
|
Importing the Unity Package File |
|
|
15 | (4) |
|
Exploring the XR Plugin Management for Unity |
|
|
19 | (1) |
|
Importing the Oculus Integration SDK |
|
|
20 | (1) |
|
Choosing Player Settings within Unity |
|
|
21 | (4) |
|
|
25 | (2) |
|
Chapter 4 Importing VRTK 4 Tilia Packages |
|
|
27 | (10) |
|
Importing Version 4 of VRTK |
|
|
27 | (6) |
|
Unity's Package Manager and VRTK 4 Tilia Packages |
|
|
33 | (2) |
|
Exploring the "Packages" Folder |
|
|
35 | (1) |
|
|
35 | (2) |
|
Chapter 5 Setting Up VRTK's Camera Rigs |
|
|
37 | (12) |
|
Setting Up Individual Camera Rigs |
|
|
37 | (1) |
|
Setting Up the Unity XR Camera Rig |
|
|
38 | (1) |
|
Setting Up the Oculus Camera Rig |
|
|
39 | (1) |
|
Setting Up the Spatial Simulator |
|
|
40 | (1) |
|
Setting Up the Tracked Alias |
|
|
41 | (2) |
|
Configuring the VRTK's Tracked Alias |
|
|
43 | (1) |
|
Hooking Camera Rigs to the Tracked Alias |
|
|
43 | (2) |
|
Test using the Spatial Simulator |
|
|
45 | (1) |
|
|
46 | (1) |
|
Configuring the Oculus OVR Camera Rig |
|
|
46 | (1) |
|
Testing Spatial Movement Using a VR Headset |
|
|
46 | (1) |
|
|
47 | (2) |
|
Chapter 6 Setting Up Interactors and Virtual Hands |
|
|
49 | (34) |
|
Interactors versus Interactables |
|
|
49 | (1) |
|
Setting up Interactors on Controllers |
|
|
50 | (2) |
|
Testing Out Your New Cuboid Avatar Interactors |
|
|
52 | (1) |
|
Setting Up Realistic Animated Virtual Hands |
|
|
52 | (1) |
|
Animated Hands for Camera Rigs Oculus Integration |
|
|
53 | (2) |
|
Playtesting Your Scene Using Your Oculus Headset |
|
|
55 | (1) |
|
Animated Hands for Unity XR and Spatial Simulator Camera Rigs |
|
|
55 | (2) |
|
Playtesting the Scene Using Your VR Headset |
|
|
57 | (1) |
|
Animating Custom Prototype Hands |
|
|
58 | (23) |
|
|
81 | (2) |
|
Chapter 7 Configuring Interactor Functionality and Setting Up Velocity Trackers |
|
|
83 | (16) |
|
Setting Up the Grab Action Property on Interactors to Enable Grabbing |
|
|
83 | (3) |
|
Setting Up an Interactable Object |
|
|
86 | (3) |
|
Exploring the Example Avatar Cuboid Object |
|
|
89 | (1) |
|
Testing Your Hand Proto Left and Hand Proto Right Game Objects |
|
|
89 | (2) |
|
The Grab Mechanism with Oculus-Provided Hands |
|
|
91 | (2) |
|
Setting Up the Example Avatar Object |
|
|
93 | (1) |
|
Setting Up Velocity Trackers |
|
|
94 | (3) |
|
|
97 | (2) |
|
Chapter 8 Interactable Game Objects |
|
|
99 | (18) |
|
|
99 | (3) |
|
The Follow Tracking Property |
|
|
102 | (1) |
|
Picking Up an Interactable Object Using Precise Grab Points |
|
|
103 | (3) |
|
|
106 | (4) |
|
Adding Secondary Grab Actions to Interactable Objects |
|
|
110 | (1) |
|
Swapping Objects between Hands with a Secondary Grab Action |
|
|
110 | (1) |
|
Performing a Two-Handed Grab with a Secondary Grab Action |
|
|
111 | (1) |
|
Scaling an Interactable Object with a Secondary Grab Action |
|
|
112 | (1) |
|
Creating a Unity Layer for Interactable Objects |
|
|
113 | (1) |
|
|
114 | (3) |
|
Chapter 9 Moving Around the Virtual World: Teleportation |
|
|
117 | (40) |
|
|
117 | (1) |
|
Capturing Inputs to Trigger Teleportation |
|
|
118 | (3) |
|
Setting Up a Curved Teleport Pointer |
|
|
121 | (6) |
|
Setting up a Teleporter for Instant Teleportation |
|
|
127 | (3) |
|
Setting Up a Teleporter for Dash Teleportation |
|
|
130 | (2) |
|
Rotating Around Within the Virtual World |
|
|
132 | (11) |
|
Unity's NavMesh-Based Teleportation |
|
|
143 | (3) |
|
Teleporting Using Teleport Targets |
|
|
146 | (8) |
|
|
154 | (3) |
|
Chapter 10 Seamless Locomotion |
|
|
157 | (14) |
|
Capturing Horizontal and Vertical Axis Input |
|
|
157 | (3) |
|
|
160 | (2) |
|
Free Movement Smooth Rotation |
|
|
162 | (2) |
|
Free Movement Snap Rotation |
|
|
164 | (3) |
|
Free Movement Warp Snap Rotation |
|
|
167 | (2) |
|
|
169 | (2) |
|
Chapter 11 Arm-Swinging Movement |
|
|
171 | (6) |
|
|
171 | (1) |
|
Capturing Thumbstick Touch Input |
|
|
171 | (2) |
|
Setting Up the Move in Place Locomotion |
|
|
173 | (3) |
|
|
176 | (1) |
|
Chapter 12 Setting Up a Pseudo-Body |
|
|
177 | (12) |
|
Advantages of Having a Pseudo-Body |
|
|
177 | (1) |
|
|
178 | (2) |
|
Implementing a Rollback Mechanic |
|
|
180 | (5) |
|
Fading the Headset View to Black on Collision |
|
|
185 | (3) |
|
|
188 | (1) |
|
Chapter 13 Climbing in VR |
|
|
189 | (16) |
|
Climbing Mechanic Requirements |
|
|
189 | (1) |
|
Setting Up the Climbing Controller |
|
|
189 | (2) |
|
Making the Containers Climbable |
|
|
191 | (6) |
|
Making the Ladder Climbable |
|
|
197 | (4) |
|
Deactivating Untouched Events on Climbable Game Objects |
|
|
201 | (2) |
|
|
203 | (2) |
|
Chapter 14 Movement Amplifier |
|
|
205 | (4) |
|
|
205 | (2) |
|
Testing Amplified Movement |
|
|
207 | (1) |
|
|
208 | (1) |
|
Chapter 15 Distance Grabbing |
|
|
209 | (16) |
|
Prerequisites for Distance Grabbing |
|
|
210 | (1) |
|
Setting Up the Distance Grabber |
|
|
211 | (1) |
|
Setting Up a Telekinesis Grab |
|
|
212 | (1) |
|
Setting Up a straight pointer to Grab Interactable Objects |
|
|
212 | (1) |
|
Changing the Straight Pointer's Grabbing Distance |
|
|
213 | (1) |
|
Activating and Deactivating the Distance Grabber |
|
|
214 | (8) |
|
Automatically Deactivating the Distance Grabber |
|
|
222 | (2) |
|
|
224 | (1) |
|
|
225 | (28) |
|
Importing the Tool Holder Ul Package and Setting Up Two New Work Tools |
|
|
225 | (2) |
|
Making the Hammer and Axe Interactable |
|
|
227 | (3) |
|
Setting Up a Tool Holder Snap Zone |
|
|
230 | (3) |
|
Setting Up Tooltips for Your Tool Holder Snap Zones |
|
|
233 | (8) |
|
Setting Up Rules to Restrict the Entry of Interactable Objects into Snap Zones |
|
|
241 | (4) |
|
Setting Up Holsters That Move Around with the Player |
|
|
245 | (7) |
|
|
252 | (1) |
|
Chapter 17 Creating Spatial 3D User Interface Game Objects |
|
|
253 | (42) |
|
Setting Up a Straight Menu Pointer |
|
|
253 | (5) |
|
Setting Up Clickable Spatial 3D Buttons |
|
|
258 | (5) |
|
Setting Up a Spatial Button Group |
|
|
263 | (4) |
|
Changing the Appearance of Your Spatial Button |
|
|
267 | (4) |
|
Creating a Spatial Toggle Button |
|
|
271 | (1) |
|
Creating Spatial Option Buttons |
|
|
272 | (4) |
|
Interacting Directly with VRTK's Spatial Buttons |
|
|
276 | (2) |
|
Creating a Spatial Slider |
|
|
278 | (4) |
|
Hacking Your Straight Spatial Menu Pointer to Interact with Your Slider |
|
|
282 | (10) |
|
|
292 | (3) |
|
Chapter 18 Using Unity's UI Controls with the VRTK |
|
|
295 | (8) |
|
Downloading and Importing Unity Package Files |
|
|
295 | (1) |
|
Setting Up the UI Elements 2D Skeletal Menu |
|
|
296 | (1) |
|
Setting Up a Straight 2D UI Menu Pointer |
|
|
296 | (1) |
|
Having the 2D UI Menu Pointer Interact with the 2D UI Menu System |
|
|
297 | (4) |
|
|
301 | (2) |
|
Chapter 19 Angular Drives |
|
|
303 | (32) |
|
Setting Up a Steering Wheel |
|
|
303 | (4) |
|
|
307 | (9) |
|
|
316 | (5) |
|
Angular Joint Drive and Logic Objects |
|
|
321 | (12) |
|
|
333 | (2) |
|
|
335 | (8) |
|
|
335 | (2) |
|
|
337 | (5) |
|
|
342 | (1) |
|
Chapter 21 Tips, Tricks, and Recipes |
|
|
343 | (12) |
|
Adding Realistic Physical Hands |
|
|
343 | (5) |
|
Obtaining Haptic Feedback |
|
|
348 | (3) |
|
Highlighting Interactable Game Objects |
|
|
351 | (1) |
|
|
352 | (3) |
|
|
355 | (40) |
|
Importing the Base Unity Package |
|
|
356 | (7) |
|
Setting Up the VRTK Prefabs |
|
|
363 | (8) |
|
Enabling Obstacle Objects to Attach to the Ball |
|
|
371 | (7) |
|
Getting the Ball to Roll About Freely |
|
|
378 | (2) |
|
Spatial Tooltip to Display Countdown Timer |
|
|
380 | (4) |
|
Setting Up the Countdown Timer and Moment Processor |
|
|
384 | (8) |
|
|
392 | (1) |
|
|
392 | (3) |
Index |
|
395 | |