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中设置模型旋转的动画?


基础教程推荐
猜你喜欢
- NSString intValue 不能用于检索电话号码 2022-01-01
- AdMob 广告未在模拟器中显示 2022-01-01
- 如何从 logcat 中删除旧数据? 2022-01-01
- Android:getLastKnownLocation(LocationManager.NETWORK_PROVIDER 2022-01-01
- iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法 2022-01-01
- Cocos2d iPhone 非矩形精灵触摸检测 2022-01-01
- libGDX 从精灵或纹理中获取像素颜色 2022-01-01
- navigator.geolocation.getCurrentPosition 在 Android 浏览器上 2022-01-01
- iOS4 创建后台定时器 2022-01-01
- 通过重定向链接在 Google Play 中打开应用 2022-01-01