【问题标题】:How can I use Rive animations in a WPF / XAML project?如何在 WPF / XAML 项目中使用 Rive 动画?
【发布时间】:2022-01-07 00:16:18
【问题描述】:

我有一个 *.rive 文件,我想在我的 WPF 应用程序中使用它,就像加载微调器一样。

有任何方法可以使用图像、媒体元素等在 WPF 中使用 rive 文件。

需要转成gif吗?

【问题讨论】:

  • 首先,请告诉我们RIV 文件到底是什么。我在任何主要的文件类型数据库中都找不到任何提及或描述。例如fileinfo.com/search
  • Rive 是 Rive Inc. 的实时交互式设计和动画工具。使用 Rive 编辑器创建基于矢量的运动图形,以响应不同的状态和用户输入。 Rive 允许您通过动画混合、插值和反向运动学创建高级时间线动画。使用状态机在动画之间转换。当我们将其导出为 .riv 时,它会生成一个带有此扩展名的文件。更多...(defold.com/extension-rive)
  • rive 不是riv
  • 如果它是基于矢量的,您可以使用路径和形状以及情节提要动画在 WPF 中重新创建它。我不知道此文件类型的 nuget 包或本机支持。
  • @Bizhan 是的,这是我在阅读 Rive 时的第一个想法,我想知道如果 Rive 只是又一个矢量动画软件,那么它作为一个品牌是如何工具,然后我阅读了他们的技术文档,发现他们的真正价值在于向宿主程序公开结构化动画 - 这样您就可以轻松用更少的手工操作完成things like this

标签: c# wpf xaml gif rive


【解决方案1】:

简答:你不能

  • Rive 不仅仅是一个动画工具,而是一个动画框架,需要为不同类型的主机专门编写runtime
  • Rive's documentation says they only have first-party support 为:
    • Web(和第一方 React 包装器)。
    • iOS、Android、Flutter、Tizen
    • 反应原生
    • “C++”
  • 请注意缺少 WPF、XAML、WinUI、UWP、Jupiter、Silverlight、WinForms 等。
    • 微软在 2021 年的桌面开发者故事肯定是有趣,不是吗?
      • 自 Windows 7 以来,MS 一直没有清晰一致的桌面故事,这令人沮丧,and still awful

我注意到“C++”不是一个平台,只是一种语言,所以他们这样描述它很奇怪。无论如何,their C++ runtime 附带了一个 renderer for Skia,它并没有多大用处

长答案:你可以,如果你想努力的话

  1. 克隆并构建他们的 C++ 运行时。
  2. 用您自己创建的新渲染器替换 Skia 渲染器,以某种方式渲染到 WPF。
    • 可以在 WPF 中托管 Skia,但它是一个不透明的表面:WPF 不会直接渲染 Rive 动画的结构和内容,这会导致效率低下。
    • 另外,我认为 WPF仍然停留在 DirectX 9 上,Rive 中的某些功能可能会受益于 DX12。
  3. 剩下的就是读者的练习。

【讨论】:

    猜你喜欢
    • 2021-07-15
    • 1970-01-01
    • 2021-11-11
    • 2021-03-17
    • 2021-08-02
    • 1970-01-01
    • 2012-04-19
    • 2022-08-03
    • 2021-02-26
    相关资源
    最近更新 更多