-
What's new in USD
Discover proposed schema and structure updates to the Universal Scene Description (USD) standard. Learn how you can use Reality Composer to build AR content with interactive properties like anchoring, physics, behaviors, 3D text, and spatial audio that exports to USDZ. And, discover streamlined workflows that help you bring newly-created objects into your app.
If you're interested to learn more about USDZ as a distribution format, check out "Working with USD.” And for more on creating AR content with Reality Composer, watch “The Artist's AR Toolkit."
We'd love to hear feedback about the preliminary schemas. After you watch this session, come join us on the Developer Forums and share your thoughts.Ressources
Vidéos connexes
WWDC21
WWDC20
WWDC19
-
Rechercher dans cette vidéo…
-
-
11:44 - USD scene structure
def Xform "Root" ( kind = "sceneLibrary" ) { def Cube "MyCubeScene" ( sceneName = "My Cube Scene" ) { ... } over Sphere "MySphereScene" ( sceneName = "My Sphere Scene" ) { ... } } -
13:30 - Adding anchoring to USD
def Cube "ImageAnchoredCube" ( prepend apiSchemas = [ "Preliminary_AnchoringAPI" ] ) { uniform token preliminary:anchoring:type = "image" rel preliminary:imageAnchoring:referenceImage = <ImageReference> def Preliminary_ReferenceImage "ImageReference" { uniform asset image = @image.png@ uniform double physicalWidth = 12 } ... } -
15:11 - Defining a behavior
def Preliminary_Behavior "TapAndBounce" { rel triggers = [ <Tap> ] rel actions = [ <Bounce> ] def Preliminary_Trigger "Tap" { uniform token info:id = "tap" rel affectedObjects = [ </Cube> ] } def Preliminary_Action "Bounce" { uniform token info:id = "emphasize" uniform token motionType = "bounce" rel affectedObjects = [ </Cube> ] } ... } -
16:22 - Compound behavior
def Preliminary_Behavior "TapOrGetCloseAndBounceJiggleAndFlip" { rel triggers = [ <Tap>, <Proximity> ] rel actions = [ <Bounce>, <Jiggle>, <Flip> ] ... } -
17:19 - Defining physics
def Sphere "WoodenBall" ( prepend apiSchemas = [ "Preliminary_PhysicsColliderAPI", "Preliminary_PhysicsRigidBodyAPI" ] ) { rel preliminary:physics:collider:convexShape = </WoodenBall> double preliminary:physics:rigidBody:mass = 10.0 } -
18:15 - Applying a wood material for physics
def Material "Wood" ( prepend apiSchemas = ["Preliminary_PhysicsMaterialAPI"] ) { double preliminary:physics:material:restitution = 0.603 double preliminary:physics:material:friction:static = 0.375 double preliminary:physics:material:friction:dynamic = 0.375 } def Sphere "WoodenBall" ( prepend apiSchemas = [ "Preliminary_PhysicsColliderAPI", "Preliminary_PhysicsRigidBodyAPI" ] ) { rel preliminary:physics:collider:convexShape = </WoodenBall> double preliminary:physics:rigidBody:mass = 10.0 rel material:binding = </Wood> } -
18:40 - Defining a ground plane
def Xform "MyScene" ( prepend apiSchemas = ["Preliminary_PhysicsColliderAPI"] ) { def Preliminary_InfiniteColliderPlane "groundPlane" ( customData = { bool preliminary_isSceneGroundPlane = 1 } ) { point3d position = (0, 0, -2) vector3d normal = (0, 1, 0) rel preliminary:physics:collider:convexShape = </MyScene/groundPlane> } rel material:binding = </Wood> } -
19:08 - Adding gravity
def Preliminary_PhysicsGravitationalForce "MoonsGravity" { vector3d physics:gravitationalForce:acceleration = (0, -1.625, 0) } -
20:28 - Defining spatial audio
def SpatialAudio "HorseNeigh" { uniform asset filePath = @Horse.m4a@ uniform token auralMode = "spatial" uniform timeCode startTime = 65.0 uniform double mediaOffset = 0.33333333333 double3 xformOp:translate = (0, 0.5, 0.1) uniform token[] xformOpOrder = ["xformOp:translate"] } -
21:45 - 3D text
def Preliminary_Text "heading" { string content = "#WWDC20" string[] font = [ "Helvetica", "Arial" ] token wrapMode = "singleLine" token horizontalAlignment = "center" token verticalAlignment = "baseline" } -
22:46 - Playback metadata
#usda 1.0 ( endTimeCode = 300 startTimeCode = 1 timeCodesPerSecond = 30 playbackMode = "loop" autoPlay = false ) def Xform “AnimatedCube" { ... } -
23:08 - Scene understanding metadata
def Xform "Root" ( kind = "sceneLibrary" ) { def Xform "MyScene" ( sceneName = "My Scene" preliminary_collidesWithEnvironment = true ) { def Xform "DigitalBug" { ... } } }
-