如何在 ARCore Sceneform 中旋转节点的旋转动画

2023-12-26

据我所知,ARCore 尚不支持步行等 3D 动画,但如何为节点的旋转设置动画?

我知道我可以设置 LocalRotation 或 WorldRotation,但如何以流畅的方式连续制作此动画?


最简单的方法是使用Android 属性动画 https://developer.android.com/guide/topics/graphics/prop-animation。 Sceneform 示例“太阳系”中就是这样做的一个示例。看一眼旋转节点 https://github.com/google-ar/sceneform-android-sdk/blob/master/solarsystem/app/src/main/java/com/google/ar/sceneform/samples/solarsystem/RotatingNode.java。这将使节点绕其轴旋转。

首先,它创建一个对象动画师 https://developer.android.com/reference/android/animation/ObjectAnimator使用 LinearInterpolation 设置围绕圆的 4 个点之间的旋转。

private static ObjectAnimator createAnimator() {
    // Node's setLocalRotation method accepts Quaternions as parameters.
    // First, set up orientations that will animate a circle.
    Quaternion orientation1 = Quaternion.axisAngle(new Vector3(0.0f, 1.0f, 0.0f), 0);
    Quaternion orientation2 = Quaternion.axisAngle(new Vector3(0.0f, 1.0f, 0.0f), 120);
    Quaternion orientation3 = Quaternion.axisAngle(new Vector3(0.0f, 1.0f, 0.0f), 240);
    Quaternion orientation4 = Quaternion.axisAngle(new Vector3(0.0f, 1.0f, 0.0f), 360);

    ObjectAnimator orbitAnimation = new ObjectAnimator();
    orbitAnimation.setObjectValues(orientation1, orientation2, orientation3, orientation4);

    // Next, give it the localRotation property.
    orbitAnimation.setPropertyName("localRotation");

    // Use Sceneform's QuaternionEvaluator.
    orbitAnimation.setEvaluator(new QuaternionEvaluator());

    //  Allow orbitAnimation to repeat forever
    orbitAnimation.setRepeatCount(ObjectAnimator.INFINITE);
    orbitAnimation.setRepeatMode(ObjectAnimator.RESTART);
    orbitAnimation.setInterpolator(new LinearInterpolator());
    orbitAnimation.setAutoCancel(true);

    return orbitAnimation;
  }

接下来,它开始动画:

  orbitAnimation = createAnimator();
  orbitAnimation.setTarget(this);
  orbitAnimation.setDuration(getAnimationDuration());
  orbitAnimation.start();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 ARCore Sceneform 中旋转节点的旋转动画 的相关文章

  • 如何快速自动发送FCM或APNS消息?

    我正在开发一项后端服务 通过 FCM 或 APNS 向移动应用程序发送推送通知 我想创建一个可以在一分钟内运行的自动化测试 并验证服务器是否可以成功发送通知 请注意 我不一定需要检查通知是否已送达 只需检查 FCM 或 APNS 是否已成功
  • 类型容器“Android 依赖项”引用不存在的库 android-support-v7-appcompat/bin/android-support-v7-appcompat.jar

    我在尝试在我的项目中使用 Action Bar Compat 支持库时遇到了某种错误 我不知道出了什么问题 因为我已按照此链接中的说明进行操作 gt http developer android com tools support libr
  • 如何重试已消耗的 Observable?

    我正在尝试重新执行失败的已定义可观察对象 一起使用 Retrofit2 和 RxJava2 我想在单击按钮时重试特定请求及其订阅和行为 那可能吗 service excecuteLoginService url tokenModel Ret
  • 在 Android Studio 中,为什么我必须在模拟器中单击“运行应用程序”两次才能启动应用程序?

    在 Android Studio 中 当我按播放按钮在 Android 模拟器上安装并运行应用程序时 大约 5 10 秒后 我在屏幕底部收到一条消息 显示 安装成功 但应用程序实际上并未运行在模拟器上 我必须再次按下播放按钮 这是非常令人沮
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • 找不到处理意图 com.instagram.share.ADD_TO_STORY 的活动

    在我们的 React Native 应用程序中 我们试图让用户根据视图 组件中的选择直接将特定图像共享到提要或故事 当我们尝试直接使用 com instagram share ADD TO FEED 进行共享时 它以一致的方式完美运行 但是
  • Android 中 Kotlin 协程的正确使用方式

    我正在尝试使用异步更新适配器内的列表 我可以看到有太多的样板 这是使用 Kotlin 协程的正确方法吗 这个可以进一步优化吗 fun loadListOfMediaInAsync async CommonPool try Long runn
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 在 SQLite 中搜索时排除 HTML 标签和一些 UNICODE 字符

    更新 4 我已经成功运行了firstchar例如 但现在的问题是使用regex 即使包含头文件 它也无法识别regex操作员 有什么线索可以解决这个问题吗 更新 2 我已经编译了sqlite3我的项目中的库 我现在正在寻找任何人帮助我为我的
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 将两个文本视图并排放置在布局中

    我有两个文本视图 需要在布局中并排放置 并且必须遵守两条规则 Textview2 始终需要完整显示 如果布局中没有足够的空间 则必须裁剪 Textview1 例子 文本视图1 文本视图2 Teeeeeeeeeeeeeeeeeextview1
  • 如何将 google+ 登录集成到我的 Android 应用程序中?

    大家好 实际上我需要通过我的应用程序从 google 登录人们 现在我阅读了 google 上的文档 其中指出 要允许用户登录 请将 Google Sign In 集成到您的应用中 初始化 GoogleApiClient 对象时 请求 PL
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 使用 SQLAlchemy 进行简单验证

    我是 sqlalchemy 的新手 我正在尝试实现模型字段的简单验证 如 Django ORM 提供的那样 整数 电子邮件等的最小值和最大值 SQLAlchemy 可以开箱即用地进行这种字段验证吗 顺便说一句 我将 SQLAlchemy 与
  • Python / Matplotlib -- 按一年中的某一天列出的日期直方图

    我有一个跨越数百年的日期列表 我想制作一个包含 366 个桶的直方图 一个桶代表一年中的每一天 x 轴以清晰的方式标记 让我可以看到哪个日期是哪个日期 我预计 2 月 29 日会出现下降 例如 我制作了以下直方图 但易于阅读的 X 轴日期标
  • Java.lang.OutOfMemory Java 堆空间 JDeveloper

    我正在用 Java 编写一个应用程序 它抛出了这个错误Java lang OutOfMemory Java Heap Space JDeveloper 我知道我可以添加java Xmx512m到命令行来解决问题 但是 我需要在 JDevel
  • 在传单中绘制 sf 类型对象 [r]

    我想问一下怎么画图sf传单中的对象来自leaflet package我知道mapview package可以绘制它 但我更喜欢使用 lealfet 包 我在下面提供了示例 library leaflet library eurostat l
  • 构建Handler时,应该是.ashx还是.axd?

    假设我正在构建一个继承自的 ASP Net 类IHttpHandler 我应该将其连接到以结尾的 URL ashx 或者我应该使用 axd扩大 只要不存在命名冲突 这有什么关系吗 啊 ScottGu 说这并不重要 但是 ashx 稍微好一些
  • 删除缺失值的插值时间序列图

    我正在尝试绘制时间序列数据 但遇到一些问题 我正在使用这段代码 from matplotlib import pyplot as plt plt figure Fig plt plot data index data Colum g lin
  • Hibernate:在扩展另一个注释为 JoinedSubclass 的类的类上使用mappedBy?

    以下不起作用 Entity class Owner OneToMany mappedBy owner cascade CascadeType ALL protected Set b getBSet Entity Inheritance st
  • 找不到 Microsoft.web.Infrastruct.dll - Visual Studio 2015

    我的解决方案的许多项目的 package config 中都有这个 dll Microsoft web Infrastruct dll 没有构建错误并且 dll 正在下载到解决方案的包文件夹 我在应用程序命中的每个项目上都遇到缺少 dll
  • 无法将变量值传递给 ssis 中的存储过程

    执行SSIS包时 出现以下错误 OLE DB 源 83 错误 SQL 命令需要名为的参数 Sales person 在参数映射中找不到 SSIS Pipeline 错误 OLE DB 源在预执行阶段失败 并且 返回错误代码 0xC02070
  • 在 KeyDown 中,ShowDialog 使 SuppressKeyPress 不起作用

    在我的应用程序中 我向文本框添加了键盘快捷键 事件处理程序 一种是 Ctrl H 它显示 查找和替换 弹出窗口 在表单的 KeyDown 事件处理程序中 我检查 Ctrl H 按键 case Keys H ShowFindReplaceDi
  • 自动化工作中的工作:将 Powerpoint 项目符号文本导入 Excel 工作表

    我今天被要求自动化工作中的一项特定任务 这占用了我们大量的时间 以下是需要做的事情 如果可能的话 我将不胜感激在我的知识范围内如何做到这一点的任何帮助 实施建议 Problem 我有一个微软幻灯片软件 http en wikipedia o
  • 在将 SQLAlchemy 中的池连接交给我的应用程序代码之前,如何检查它们?

    由于各种原因 我们的数据库服务器有点不可靠 因此有时我的应用程序使用的数据库连接会从它下面消失 这些连接是与 Pylons 1 0 Web 运行时中的 PostgreSQL 数据库的 SQLAlchemy 0 6 5 连接 我想要的是某种方
  • 用Java实现3270协议

    我在使用 IBM HACL 访问使用 3270 协议的服务器时遇到了一个大问题 该库不断崩溃 而我们的 JNI 包装器实际上是一个错误修复层 针对实施不善且文档记录不充分的库 我怀疑我们也引入了新的错误 而且 在我们公司 每个人都懂Java
  • 使用 JavaScript 添加浏览器书签

    我有一个 ASP NET 网页 其中有一个按钮 单击该按钮 浏览器中应保存一个书签 当用户单击该书签时 应浏览到http google com http google com 我如何确保它适用于几乎所有标准浏览器或至少适用于 IE Mozi
  • angular2:在组件中包含第三方js脚本[重复]

    这个问题在这里已经有答案了 有没有办法将第三方 JS 脚本包含在 Angular2 组件中 而不是将其包含在 index html 中 我有一个包装数据表的表组件 它是唯一需要包含 dataTables js css 的组件 如果我能让我的
  • Vue从本地文件导入HTML

    我正在寻找一种从文件中导入 HTML 内容的方法 该文件位于 src activities 0 2 content html 这两个数字是变量 我需要做类似的事情 mounted this foo require src activitie
  • 在Python中交换大小写的脚本[重复]

    这个问题在这里已经有答案了 这个脚本应该在单词中交换大小写 但结果真的很奇怪并且没有意义 def swap case s for i in range len s if s i islower s s replace s i s i upp
  • InnoDb 比 MyISAM 更适合频繁的并发更新和插入,我这样说对吗?

    我们的网站每天有数百名访问者和数以万计的查询 因此 数据库中的某些表很少更新 有些表每分钟更新几次 有些表每秒更新约 10 次 MyISAM 使用表级锁定进行更新 而 InnoDb 使用行级锁定 所以 据我了解 对于频繁出现的表同时更新 每
  • 如何在 Angular 服务中使用 $on ?

    我已经能够让控制器使用 on 监听器 和 scope on 但我没有看到任何有关如何让服务监听事件的文档 I tried rootScope on 但这只允许一个侦听器 我想要多个服务中的侦听器 无论它们的父控制器是否在范围内 经过相当多的
  • 如何在 ARCore Sceneform 中旋转节点的旋转动画

    据我所知 ARCore 尚不支持步行等 3D 动画 但如何为节点的旋转设置动画 我知道我可以设置 LocalRotation 或 WorldRotation 但如何以流畅的方式连续制作此动画 最简单的方法是使用Android 属性动画 ht