首页 > 其他分享 >iOS ARKit 动画

iOS ARKit 动画

时间:2024-01-18 11:36:43浏览次数:42  
标签:动画 move iOS robot ARKit arView duration ARView

动画是增强虛拟元素真实感和生动性的重要方面,RealityKit 支持变換动面(Transform Animation)和骨骼动画(Skeletal Animation)两种动面模式。变换动画一般程序化地执行,支持基本的平移、旋转、缩放,更复杂的动画通常由第三方模型制作软件采用骨骼绑定的方式生成,独立或者内置于模型文件中。USDZ和 Reality 文件格式都支持动画,在使用时,可以直接由该类文件将动画导人场景中。

     变换动画可以实现对虚拟元素常见的基本操作,如平移、旋转、缩放,在执行时,通常使用实体类的move(to: relativeTo:duration:)方法,该方法参数 duration 用于指定动画时间。

     在使用 move()方法进行变换动画之前,应当先设置需要达到的目标,利用duration 参数控制动画时长。move()方法另一个重载 move(to:relativeTo:duration:timingFunction:)版本,其参数 timingFunction为 Animation TimingFunction 类型,通过它可以指定动画效果,如线性(linear)、缓入(easeln)、缓出(easeOut)、缓入缓出(easelnOut)、三次贝赛尔曲线(cubicBezier),通过使用该方法可以改善动画体验。

     变换动画只适合于执行相对简单的动画操作,如控制灯光沿圆形轨道移动、用户单击模型时出现弹跳效果等,对于复杂的动画,一般使用第三方软件(Maya、3ds MAX 等)预先制作好骨骼动画,然后导出为USDZ 或Reality 格式文件供 ARKit 使用。在RealityKit 中,使用骨骼动画的典型代码如代码下所示。

import SwiftUI
import RealityKit
import ARKit

struct BoneAnimationView : View {
    var body: some View {
        return ARViewContainer9().edgesIgnoringSafeArea(.all)
    }
}

struct ARViewContainer9: UIViewRepresentable {
    
    func makeUIView(context: Context) -> ARView {
        
        let arView = ARView(frame: .zero)
        let config = ARWorldTrackingConfiguration()
        config.planeDetection = .horizontal
        arView.session.run(config, options:[ ])
        arView.session.delegate = arView
        arView.CreateRobot()
        return arView
    }
    
    func updateUIView(_ uiView: ARView, context: Context) {
    }
}

extension ARView{
    func CreateRobot(){
        let planeAnchor = AnchorEntity(plane:.horizontal)
        do {
            let robot =  try ModelEntity.load(named: "toy_drummer")
            planeAnchor.addChild(robot)
            robot.scale = [0.01,0.01,0.01]
            self.scene.addAnchor(planeAnchor)
            print("Total animation count : \(robot.availableAnimations.count)")
            robot.playAnimation(robot.availableAnimations[0].repeat())
        } catch {
            print("找不到USDZ文件")
        }
    }
}


#if DEBUG
struct BoneAnimationView_Previews : PreviewProvider {
    static var previews: some View {
        BoneAnimationView()
    }
}
#endif

 

 

标签:动画,move,iOS,robot,ARKit,arView,duration,ARView
From: https://www.cnblogs.com/duzhaoquan/p/17972139

相关文章

  • vue3+lottie-web加载json格式动画
    项目中要用动画设计说gif会失真,用json格式动画吧。我虎躯一震,json格式动画什么鬼?lottie库什么鬼。。。。不废话,直接上重点环境:编辑器webstorm,前端技术栈vue3+vite+ts安装lottie-webyarnaddlottie-web引入lottie,引入json格式动画文件.importlottiefrom'lott......
  • 「云渲染科普」blender如何导出序列帧与序列帧动画
    blender是不少人都在使用的动画建模软件,工具免费使用,且支持多种渲染器插件,能够为用户制作出完整得动画人物、场景建模,那么blender中去如何导出序列帧与序列帧动画呢?下面一起来看看吧。一、blender怎么导出序列帧1、先设置输出格式为:PNG,在点击ctrlF12渲染动画,等待序列帧图像......
  • 每天一个linux命令(47):iostat命令
      Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。iost......
  • iOS ARKit 中的手势检测
       智能移动设备的手势操作是使用者接受并已习惯的操作方式,在移动端AR应用中,对虚拟物体的操竹也基本通过手势操作完成,需要注意的是,本次所讲中手势检源是指用户在手机屏幕上的手指操作检测,不是指利用图像技术对使用者手部运动的检测。  手势检测是指通过检测使用者在手......
  • 「云渲染科普」3dmax vray动画渲染参数怎么设置
    动画渲染一直都是占用时间最多的地方,动画帧数通常1秒在25帧或者以上,电脑通常需要对每一帧的画面分批渲染,通常本地电脑由于配置上的限制,往往无法在短时间内快速的完成渲染任务。这时“云渲染”则成为了动画渲染的主要方案,本文整理3dmaxvray动画渲染参数设置与云渲染方案希望帮......
  • iOS ARKit 中的射线检测
    射线检测简介    射线检测 Raycasting,直译为射线投射,通常我们根据它的作用称为射线检测。射线检测是在3D数字世界选择某个特定物体常用的一种技术,如在3D、VR游戏中检测子弹命中敌人情况或者从地上捡起一支枪,这都要用到射线检测,射线检测是在3D数字空间中选择虚拟物体......
  • iSpoofer iOS官方網站免費下載以及如何安裝 iSpoofer Android替代品 iSpoofer安全嗎
    當您喜歡玩PokemonGo時,您可以使用iSpoofer來獲得不錯的增強效果。iSpoofer可以輕鬆地在遊戲中添加操縱桿,甚至可以實現免費傳送。其他吸引人的功能包括IV檢查、GPS追蹤、自動行走、快速神奇寶貝捕捉技巧、增強投擲等。最重要的是,您可以獲得一張地圖,可以密切關注周圍的一......
  • iOS ARKit 三大类 ARSession ARAnchor ARFrame
    ARSessionARSession(AR会话)是ARKit中最重要的概念之一,其主要的功能是管理AR应用的状态和整个周期,是ARKitAPI的主要人口。ARSession整合了底层的所有技术并为开发者提供程序界面,这些技术包括从设备运动传感器硬件取数据、捕获摄像头图像数据并进行分析、控制虛拟场景摄像机与硬......
  • iOS ARKit 三大基础能力
    ARKit三大基础能力   ARKit整合了SLAM、计算机视觉、机器学习、传感器融合、表面估计、光学校准、特征匹配、非线性优化等大量低层技术,提供给开发者简洁易用的程序界面。ARKit提供的功能总体可以分为3个部分:运动跟踪、场景理解、渲染,1.运动跟踪运动跟踪可以实时跟......
  • iOS ARKit 显示引导示图、添加正方体
    ARKit概述2017年,在WWDC(WorldWideDevelopersConference,苹果全球开发者大会)上,苹果公司了增强现实开发套件ARKit。ARKit一推出即在科技圈引发极大关注,一方面是苹果公司在科技影响力,另一方面更重要的是ARKit在秘动端实现的堪称惊艳的AR效果。ARKit的面世,直接术带到了亿万用......