- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我花了 2 天时间试图了解如何在我的 RealityKit 项目中正确播放动画。
我遵循了其他 stackoverflow 主题的许多提示,但没有成功。我知道使用 RealityKit v2 我们只能播放 usdz 文件中的第一个动画,好的。我正在尝试直接在 Reality Composer 中播放 Apple 提供的“toy_robot_vintage.usdz”的第一个动画。
这是我的完整代码:
func loadModel(named: String, result: ARRaycastResult) {
var usdzToLoad: String = ""
switch named {
case "ROBOT":
usdzToLoad = "toy_robot_vintage.usdz"
default:
break;
}
DispatchQueue.main.async {
let modelToLoad = try! ModelEntity.loadModel(named: usdzToLoad)
switch named {
case "ROBOT":
modelToLoad.name = "ROBOT"
default:
break;
}
let anchor = AnchorEntity(plane: .horizontal, classification: .any, minimumBounds: [0.1, 0.1])
anchor.position.y = 0.01
anchor.addChild(modelToLoad)
// Create a "Physics" model of the toy in order to add physics mode
guard let modelEntity = anchor.children.first as? (Entity & HasPhysics)
else { return }
self.arView.installGestures([.rotation], for: modelEntity)
modelEntity.generateCollisionShapes(recursive: true)
modelEntity.physicsBody = PhysicsBodyComponent(shapes: [.generateBox(size: .one)],
mass: 1.0,
material: .default,
mode: .kinematic)
self.currentEntity = modelEntity
self.anchorsEntities.append(anchor)
self.arView.scene.addAnchor(anchor)
// self.currentEntity!.availableAnimations.forEach { self.currentEntity!.playAnimation($0.repeat()) }
let robotAnimationResource = self.currentEntity?.availableAnimations.first
self.currentEntity!.playAnimation(robotAnimationResource!.repeat(duration: .infinity),
transitionDuration: 1.25,
startsPaused: false)
}
robotAnimationResource is always nil returning of course a fatal error when I try to play the animation.
有什么想法吗?在此先感谢您的帮助和支持。
最佳答案
将 ModelEntity.loadModel
更改为 ModelEntity.load
,它现在应该有动画了。
这很奇怪,我不知道为什么,但这在过去对我有用。
HasPhysics 也继承了 Entity,所以为了避免自己寻找 anchor 的 child 等,您应该能够替换 guard let modelEntity...
行:
guard let modelEntity = modelToLoad as? HasPhysics else { return }
编辑:
我刚刚在 playground 上运行了这个并且动画运行良好:
import PlaygroundSupport
import UIKit
import RealityKit
let arview = ARView(frame: .zero, cameraMode: .nonAR, automaticallyConfigureSession: true)
arview.environment.lighting.intensityExponent = 3
let newAnchor = AnchorEntity(world: .zero)
let newEnt = try! Entity.load(named: "toy_robot_vintage")
newAnchor.addChild(newEnt)
arview.scene.addAnchor(newAnchor)
for anim in newEnt.availableAnimations {
newEnt.playAnimation(anim.repeat(duration: .infinity), transitionDuration: 1.25, startsPaused: false)
}
PlaygroundSupport.PlaygroundPage.current.liveView = arview
问题是通过这种方式导入的模型不符合 HasPhysics(如果您提到它现在对您来说是失败的地方,这很有用)。
改为将 ModelComponent 应用于另一个实体类或 ModelEntity。
关于swift - 在 RealityKit 中播放 USDZ 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65591637/
我在 Blender 中创建了两个立方体作为单个对象,并为每个立方体应用了两个不同的图像纹理,并将它们导出为 .OBJ 文件。我已经使用 XCODE 将 .OBJ 文件转换为 .USDZ 文件,并使用
如果我花大量时间构建一个复杂漂亮的3d对象以用于ARkit,然后使用USDZ格式将该对象嵌入到网页中,那么如何通过保存或共享来防止对该3d对象的未授权使用? 最佳答案 此文件格式不用于保护。 usdz
我正在将一个 .usdz 模型(从 Apple 下载)加载到我的 ARSCNSceneView 中,它可以正常工作。但不幸的是,模型总是在没有任何纹理的情况下呈现,并且呈现黑色。 // Get the
您现在可以使用 Xcode 10 beta 捆绑的 Apple 命令行工具将 3D 模型转换为 .usdz 文件(未压缩的 zip 存档)。 将 .obj 文件转换为 .usdz 的示例代码: xcr
我尝试查看 http://graphics.pixar.com/usd/docs/index.html 的主要文档和 http://graphics.pixar.com/usd/docs/Usdz-F
我想创建一个应用程序,使用 reality kit rcproject 来增强 AR 中的内容。我知道如何在 Reality Composer 中创建实体,但问题是我有多个模型。我无法将它们作为对象放
我正在将一个 .usdz 文件加载到我的 ARSCNView 中,到目前为止它工作正常,除了当我将多个对象加载到我的场景中时应用程序崩溃并显示消息:由于内存问题而终止。 我使用的是 Apple 的默认
现在我可以将我在 ARKit 中创建的内容保存为场景文件,稍后再加载它。 sceneView.scene.write(to: path, options: nil, delegate: nil, pr
我有一个名为 matrix.usdz 的文件(存在于主包中并选中了目标成员资格)并且需要加载它 do { let path = Bundle.main.path(forResource: "
有人找到了为 USDZ 文件中打包的骨架网格物体创建多个动画并使用 RealityKit 播放动画的工作流程吗? 我有一个带有两个动画(空闲和运行)的骨架网格物体。我想将它们打包成一个 USDZ 文件
我们正在使用 ARKit 2 + SceneKit,iOS 12 开发一个项目。我们能够使用 .dae 文件检索 CAAnimation 实例并在运行时控制它们。现在,我们正在尝试 .usdz,但是没
每当我尝试查看从 Apple 的 Quick Look 下载的 USDZ 文件时 website在 XCode 中它看起来是黑色的。 我目前使用的是 XCode 版本 10.3 (10G8),并附上了
当我在 ARSCNView 中加载 *.USDZ 文件时,将对象放在我的头顶上。即使我尝试通过苹果提供示例演示“Handling3DInteractionAndUIControlsInAugmente
我有一个项目涉及几个 USDZ 文件,用于应用程序中嵌入的增强现实功能。虽然这很好用,而且我们对它的表现非常满意,但 QLPreviewController 的内置共享按钮是我们想要删除的东西。对对象
我已经下载了Apple提供的.usdz模型:https://developer.apple.com/arkit/gallery/ 但是现在,我想用这些模型之一创建一个 SCNNode,所以我这样做是为
我花了 2 天时间试图了解如何在我的 RealityKit 项目中正确播放动画。 我遵循了其他 stackoverflow 主题的许多提示,但没有成功。我知道使用 RealityKit v2 我们只能
我有一个 .arobject 文件,使用 ARKit Scanner App .我想将此文件转换为 usdz 文件,因为我想从 Safari 浏览器中查看此对象。 有人知道怎么做吗? 最佳答案 目前,
如何使用 ARKit 从远程服务器加载 usdz 模型和纹理? 如下例所示: let myURL = NSURL(string: "https://mywebsite.com/vase.scn") g
我正在 Swift 中使用 RealityKit 加载 USDZ 模型。模型加载良好,具有纹理。 但是,我无法更改 Material 的漫反射属性, Material 总是返回 AnyMaterial
我目前正在尝试在 Android 中使用 AR,但我已经获得了 .usdz 格式的模型。到目前为止,我一直在寻找一种方法将此文件转换为适用于 android 的文件(.fbx .obj .gltf),
我是一名优秀的程序员,十分优秀!