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中设置模型旋转的动画?
猜你喜欢
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- Android - 拆分 Drawable 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- android 4中的android RadioButton问题 2022-01-01
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01