How to animate a model#39;s rotation in RealityKit?(如何在RealityKit中设置模型旋转的动画?)
本文介绍了如何在RealityKit中设置模型旋转的动画?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的previous question中,我已经找到了如何在对象上仅在一个轴上放置旋转变换,现在我希望将其设置为动画。
是否有在RealityKit中执行此操作的方法?
推荐答案
变换动画
您可以使用.move(...)
实例方法在RealityKit中移动、旋转和缩放模型。为了更快地编译,我使用了MacOS应用程序-尽管你也可以在iOS应用程序中使用这段代码。
import RealityKit
class ViewController: NSViewController {
@IBOutlet var arView: ARView!
let boxAnchor = try! Experience.loadBox()
override func awakeFromNib() {
boxAnchor.steelBox?.scale = [10, 10, 10]
let rotation = Transform(pitch: 0, yaw: 0, roll: .pi)
boxAnchor.steelBox?.orientation = rotation.rotation
arView.scene.anchors.append(boxAnchor)
boxAnchor.steelBox?.move(to: rotation,
relativeTo: boxAnchor.steelBox,
duration: 5.0,
timingFunction: .linear)
}
}
使用矩阵变换动画
对于那些更喜欢使用矩阵数学的人,我建议阅读这篇文章:
Change a rotation of AnchorEntity in RealityKit
使用物理变换动画
对于那些喜欢使用动力学的人,我给出了这个帖子的链接:
How to move a model and generate its collision shape at the same time?
资源动画
要播放在3D应用程序(如MAYA或胡迪尼)中制作的资源动画(无论是骨骼角色动画还是一组变换动画,包括围绕网格轴心点的旋转),请使用animationPlaybackController:import RealityKit
class ViewController: NSViewController {
@IBOutlet var arView: ARView!
override func awakeFromNib() {
do {
let robot = try ModelEntity.load(named: "drummer")
let anchor = AnchorEntity(world: [0, -0.7, 0])
anchor.transform.rotation = simd_quatf(angle: .pi/4,
axis: [0, 1, 0])
arView.scene.anchors.append(anchor)
robot.scale = [1, 1, 1] * 0.1
anchor.children.append(robot)
robot.playAnimation(robot.availableAnimations[0].repeat(),
transitionDuration: 0.5,
startsPaused: false)
} catch {
fatalError("Cannot load USDZ asset.")
}
}
}
这篇关于如何在RealityKit中设置模型旋转的动画?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何在RealityKit中设置模型旋转的动画?
基础教程推荐
猜你喜欢
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01