RealityKit - 为 ModelEntity 的不透明度设置动画?

2023-11-23

通过设置材质的颜色model的财产ModelEntity,我可以改变对象的不透明度/alpha。但如何将其动画化呢?我的目标是使对象具有完全不透明度的动画,然后让它们淡入设定的不透明度,例如 50%。

With SCNAction.fadeOpacity on a SCNNode in SceneKit,这特别容易。

let fade = SCNAction.fadeOpacity(by: 0.5, duration: 0.5)
node.runAction(fade)

An Entity符合HasTransform,但这只允许您对比例、位置和方向进行动画处理。与淡入或淡出之类的材质动画无关。如果您创建一个用于动画隐藏或显示的行为,则效果在 RealityComposer 中,但似乎没有类似的东西HasTransform提供动画不透明度的功能。

我一直在文档中寻找一些东西,我的下一个想法本质上是创建一个自定义动画来替换这种行为,但它似乎应该可用,但我只是没有找到它。


我使用不同的技术对其进行了测试,并得出了悲伤的结论:您无法在 RealityKit 框架中对材质的不透明度进行动画处理,因为RealityKit materials don't support animation at runtime(现在我希望)。让我们一起等待RealityKit的重大更新吧。

这是您可以用于测试的代码

(arView.alpha财产只是工作):

import UIKit
import RealityKit

class ViewController: UIViewController {

    @IBOutlet var arView: ARView!

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        arView.alpha = 1.0 
        opacityAnimation()
    }

    func opacityAnimation() {

        UIView.animate(withDuration: 5.0,
                         animations: {

            self.arView.alpha = 0.0
        })
    }
}

并使用此代码片段以确保动画无法正常工作

(没有动画过程,只是赋值):

import UIKit
import RealityKit

class ViewController: UIViewController {

    @IBOutlet var arView: ARView!
    let tetheringAnchor = AnchorEntity(world: [0,0,0])
    var material = SimpleMaterial()
    let mesh: MeshResource = .generateSphere(radius: 0.5)
    var sphereComponent: ModelComponent? = nil

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        material.metallic = .float(1.0)
        material.roughness = .float(0.0)
        material.baseColor = .color(.red)

        sphereComponent = ModelComponent(mesh: mesh,
                                    materials: [material])

        tetheringAnchor.components.set(sphereComponent!)
        arView.scene.anchors.append(tetheringAnchor)

        opacityAnimation()
    }

    func opacityAnimation() {

        UIView.animate(withDuration: 5.0,
                         animations: {

            self.material.metallic = .float(1.0)
            self.material.roughness = .float(0.0)
            self.material.baseColor = .color(.green)

            self.sphereComponent = ModelComponent(mesh: self.mesh,
                                             materials: [self.material])

            self.tetheringAnchor.components.set(self.sphereComponent!)
            self.arView.scene.anchors.append(self.tetheringAnchor)
        })
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RealityKit - 为 ModelEntity 的不透明度设置动画? 的相关文章

  • Xcode 错误 - 架构 x86_64 的未定义符号?

    我正在运行 Swift 4 和 Xcode 9 beta 我收到此错误 但我不知道如何解决它 我什至不知道这是什么意思 Undefined symbols for architecture x86 64 T0So22AVCapturePho
  • 我们能否检测用户是否通过主页按钮或锁定按钮离开而没有监听 darwin 通知?

    我最近向应用程序商店提交了一个新的二进制文件并将其发送以供审核 但它立即被拒绝并显示以下消息 不支持的操作 不允许应用程序监听设备锁定通知 经过一番挖掘后 我发现我们无法使用 com apple springboard lockstate
  • 如何向 UIView 添加大小调整手柄?

    我试图根据用户请求在运行时动态创建视图 UIImageView 和 UITextView 然后允许用户移动它们并调整它们的大小 除了调整大小之外 我的一切都工作得很好 我尝试使用捏合手势识别器 但发现它对于我想要的东西来说太笨拙了 因此 我
  • Swift 3 中的 JSON 解析

    有没有人能够找到一种在 Swift 3 中解析 JSON 文件的方法 我已经能够返回数据 但在将数据分解为特定字段时我没有成功 我会发布示例代码 但我已经尝试了很多不同的方法但没有成功 并且没有保存任何代码 我想要解析的基本格式是这样的 提
  • Swift 中的柯里函数

    我想创建一个返回柯里函数的函数 如下所示 func addTwoNumbers a Int b Int gt Int return a b addTwoNumbers 4 b 6 Result 10 var add4 addTwoNumbe
  • Swift Codable 将空 json 解码为 nil 或空对象

    这是我的代码 class LoginUserResponse Codable var result String var data LoginUserResponseData var mess String public class Log
  • 如何防止Apple Watch进入睡眠状态?

    我们正在开发一个 Apple Watch 项目 但如果不被打扰 手表就会进入睡眠状态 有什么办法可以阻止它进入睡眠状态吗 据我所知和有关该主题的其他搜索 目前还没有api可通过编程方式启用或禁用 Apple Watch 的睡眠模式
  • 所需框架与静态库

    构建现代框架 https developer apple com videos play wwdc2014 416 says 每个应用程序都有自己的自定义框架副本 https stackoverflow com a 15262463 242
  • 在 Swift 中使用 CommonCrypto 解密时出现问题

    我在一家Swift only加密 解密Extension for String and NSData 并且 crypt 部分的工作基于 Zaph 在链接问题中提供的答案 在 Swift 中使用 CCCrypt CommonCrypt 时出现
  • 为什么我的视图仍然以横向呈现?

    我的视图是由导航控制器控制的 因此我将导航控制器支持的方向设置为明确的纵向和纵向UpSideDown 这可以工作 但是如果调用视图时前一个视图处于横向状态 它将以横向方式呈现并保持横向状态 直到设备旋转 如何防止这种情况发生 这是我的代码
  • Swift C 回调 - Swift 类指针的 takeUnretainedValue 或 takeRetainedValue

    我有一些UIView or UITableViewCell 里面我有 C 回调 例如 CCallback bridge self observer data gt Void in let mySelf Unmanaged
  • 在视图控制器之间传递数据使用从嵌入导航控制器的视图到 tabbarcontroller 的 Segue

    我有两个视图 我想将数据从一个视图传递到下一个视图 第一个视图是我想要传递给下一个视图的数据的地方 我们称之为SourceViewController 然而SourceViewController嵌入在一个NavigationViewCon
  • 在 swrevealcontroller 之前实现登录屏幕

    我刚刚开始学习 IOS 开发 我已经按照给定的在线教程成功实现了 SWRevealViewController 一切都按预期工作 然后 我决定添加一个登录屏幕 这将是应用程序运行时用户看到的第一个页面 我采取的步骤如下 将 UIViewCo
  • 如何快速更改按钮图像?

    我正在开发一个有按钮的应用程序 该按钮没有文本 图像或背景 所以我想做的就是在viewDidLoad函数中给它一个图像 这就是我所拥有的 IBOutlet var tapButton UIButton override func viewD
  • 如何使用正则表达式将字符串分成相同字符的组?

    我有一个这样的字符串 var string AAAAAAABBBCCCCCCDD 并喜欢将字符串分割成这种格式的数组 same characters gt same group 使用正则表达式 Array AAAAAAA BBB CCCCC
  • Swift - 选择值后隐藏 pickerView

    我发现了类似的问题 他们的答案很有帮助 但我坚持最后一件事 我试图在点击字段时显示 pickerView 然后选择数据时 我希望 pickerView 隐藏 我可以从 pickerView 获取数据来隐藏 但是 pickerView 后面仍
  • iOS 11 安全区域布局指南向后兼容性

    启用安全区域布局指南是否与 iOS 11 以下版本兼容 我设法使用新的安全区域布局指南并保持与 iOS 9 和 iOS 10 的向后兼容性 编辑 正如 NickEntin 的评论所指出的 此实现将假定存在状态栏 但在 iPhone X 的横
  • Swift 中带圆角的 NSWindow

    我想要一个圆角的窗户 但我在每个角落都有一个白点 Code let effect NSVisualEffectView frame NSRect x 0 y 0 width 0 height 0 effect blendingMode be
  • 将 Xcode 的测试类助理编辑器与 Swift 类结合使用

    在 Xcode 中工作时 在助理编辑器中提取单元测试用例通常会很好 目前 我一直在手动选择测试文件 但我看到助理编辑器有一个选项Test Classes 我试图让这个选项自动提取我的测试文件 但我似乎无法让它工作 是否需要某种配置 它不适用
  • 在 Swift 中自动移动 UISlider

    我想在按下按钮时将 UISlider 从 minValue 循环移动到 maxValue 并在再次按下按钮时将其停止在当前位置 我想使用 Swift 我遇到的主要问题是函数 slider setValue 太快了 我希望动画更慢 IBAct

随机推荐

  • 自动回显 IPython 中赋值语句的结果 [重复]

    这个问题在这里已经有答案了 有没有办法让 IPython 自动回显赋值语句的结果 例如 在MATLAB 结束不带分号的赋值语句会打印赋值结果 而在语句末尾放置分号会抑制任何输出 gt gt b 1 2 b 3 gt gt b 1 2 gt
  • 在 Python 中口头格式化数字

    pythonistas 如何将数字打印为单词 就像 Common Lisp 代码的等价物 3 gt format t r 1e25 nine septillion nine hundred and ninety nine sextillio
  • Hadoop Yarn:如何使用 Spark 限制资源的动态自分配?

    在我们在 Yarn 下运行的 Hadoop 集群中 我们遇到了一个问题 一些 聪明 的人能够通过在 pySpark Jupyter 笔记本中配置 Spark 作业来消耗更大的资源块 例如 conf SparkConf setAppName
  • 为什么 TypedReference 是在幕后?它是如此快速和安全......几乎是神奇的!

    警告 这个问题有点异端 宗教程序员总是遵守良好的实践 请不要阅读它 有谁知道为什么使用类型化参考如此沮丧 隐含地 由于缺乏文档 我发现它有很大的用途 例如当通过不应该是泛型的函数传递泛型参数时 当使用object如果您需要值类型 则可能会过
  • 将 LINQ-to-SQL 谓词组合成单个谓词

    之前的一个问题 递归地 将 LINQ 谓词组合成单个谓词 与此类似 但我实际上问了错误的问题 那里的解决方案满足了所提出的问题 但实际上并不是我需要的 但它们是不同的 诚实的 给定以下搜索文本 keyword1 keyword2 keywo
  • 将行旋转为列 Firebird 2.5

    序列 table1 id Description 1 Proj x 2 Settlers 3 Bank 4 Newiest table2 id table1Id value alternate value 1 1 12 null 1 4 6
  • 从您的网站中删除 WWW 前缀

    当作为 URL 的一部分输入 www 前缀时 Stack Overflow 和其他网站 如何删除它 是重定向 重写还是其他什么 更新 我特别想知道 IIS 6 的上下文 在 Apache 上 它看起来像这样 在 htaccess 文件内 R
  • 在三星 Galaxy 设备上同时访问前置和后置摄像头

    我知道这个问题以前曾被问过 但已经过去很长时间了 再次问这个问题是为了收集任何新的技巧 想法 方法 我需要同时访问前置摄像头和后置摄像头 到目前为止 我已经尝试使用 android 相机 API 实现 双摄像头 Jens 设计 和camer
  • 高级比较和交换 (CAS) 功能?

    我想记录哪些高级 即 C 不是内联汇编器 函数或宏可用于比较和交换 CAS 原子原语 例如 x86 上的 WIN32 有一系列函数 InterlockedCompareExchange in the lt intrin h gt heade
  • Elastic Beanstalk 自定义 AMI 看不到环境变量

    由于一些大型软件包的要求 我正在为 Elastic Beanstalk 使用自定义 AMI 当我通过 SSH 访问 EC2 实例时 我的应用程序无法使用任何环境变量 在 Elastic Beanstalk Web 控制台设置中指定 我在生产
  • 获取异步方法主体中的当前任务实例

    如果我有一个像这样的异步方法体 public async Task GetSomething await SendText hi await SendImage bla bmp 当等待开始时 如何在将任务对象返回给用户之前获取任务对象 ie
  • React Fontawesome 没有 free-brands-svg-icons,因此无法显示社交媒体图标

    我可以在 React 网页上使用社交媒体图标吗 import library from fortawesome fontawesome svg core import FontAwesomeIcon from fortawesome rea
  • 悬停在另一个元素上时隐藏元素

    我知道可以在JavaScript 但是我正在寻找解决方案CSS 我有三个div div hide 默认应该是可见的 show 应该是隐藏的 当我将鼠标悬停在 main 上时 hide 应该隐藏 show 应该可见 div show 工作正常
  • 是否有浏览器支持输入元素的 form 属性?

    HTML5 规范允许与形式相关的元素参考他们的联系
  • Spring Boot应用程序启动后立即关闭

    我目前正在开发一个包含 Spring 框架的项目 一切都按方面进行 但有一个问题 当我尝试在笔记本电脑上启动应用程序时 它在启动后立即关闭 它在其他所有机器上都可以工作 所以这个问题只发生在我的笔记本电脑上 也许您知道什么会导致这个问题 我
  • 如何重新安装已安装的 Eclipse 插件?

    如何将 Eclipse 插件从一个 Eclipse 安装 删除 或 复制 到另一个安装 例如 我安装了两个 eclipse 其中一个安装了一个插件 但我没有安装程序 也不容易在线获得 是否可以在我的其他版本的 eclipse 上安装此插件
  • 在浏览器中显示word/pdf/excel等文件。 (ASP.NET、C#.NET 2008)

    我有一个需要在浏览器中显示 Pdf Word 文档 任何版本 或 Excel 的要求 类似于GMAIL的功能 我怎样才能实现这个目标 我正在使用 Asp net 代码隐藏为 C 申请时间是2008年 Try 如何使用 ASP NET 和 V
  • 如何在使用相对 URL 时更改 http/https 协议

    协议相关 URLaren t我在寻找什么 我正在寻找一种绝对指定协议 http 与 https 同时保持 url 相对主机名的方法 给定一个相对 URL 例如 SearchForStuff 我希望能够指定不同的协议 https 与 http
  • 如何在 Linux 上使用 GCC 编译 C 和 Gtk+?

    我搜索了又搜索 但没有得到我真正想要的信息 有人可以尽可能完整地 从根本上解释一下在 Linux 上使用 GCC 用 C 语言编写时 Gtk 代码是如何编译的吗 有些东西像反引号 c99 和 o 文件我根本不理解 我也非常感谢任何学习 Gt
  • RealityKit - 为 ModelEntity 的不透明度设置动画?

    通过设置材质的颜色model的财产ModelEntity 我可以改变对象的不透明度 alpha 但如何将其动画化呢 我的目标是使对象具有完全不透明度的动画 然后让它们淡入设定的不透明度 例如 50 With SCNAction fadeOp