当前位置: 首页 > news >正文

Wallpaper壁纸制作学习记录13

骨骼物理模拟

Wallpaper Engine还允许您为人偶变形骨骼配置某些物理模拟。选择骨骼时,点击编辑约束来配置骨骼这些属性。

警告

请记住,物理模拟可能会根据用户的最大FPS设置略微改变其行为。 Wallpaper Engine编辑器将始终以高帧速率渲染。您可以将壁纸应用于桌面,并在Wallpaper Engine设置中将FPS限制设置为10-15,以查看壁纸在更严格的FPS规则下的表现。

骨骼物理学实例

 这里将使用武士实例来展示骨骼物理的两种不同类型的实现。 下方连接提供了武士素材的下载地址:https://docs.wallpaperengine.io/samples/samurai_tutorial.zip

绳索物理

在第一个示例中,将向附加到武士角色剑上的绳索添加物理模拟。为了实现这一点,需要打开操控人偶变形动画的骨骼步骤,并选择连接武士手和绳子底部的根骨骼的骨骼:

 然后,我们点击右侧的编辑约束按钮,打开骨骼约束菜单。在这种情况下,启用刚体物理模拟选项并按如下方式对其进行配置:

  • 物理旋转:启用。我们希望骨骼能够旋转。
  • 旋转摩擦:12
  • 旋转惯性:20
  • 物理平移:不启用,我们不希望骨骼移动。
  • 已启用重力:启用,我们希望重力将绳索向下拉。
  • 骨骼末端质量:20
  • 重力方向:90 - 值为90表示重力向下拉。
  • 骨骼末端前倾角:90 - 角度确定重力和移动如何影响骨骼。配置后,检查更改此值后从骨骼上脱落的圆圈结尾的棕色参考线。以验证方向。
  • 限定旋转:启用 - 将其设置为-180 和 + 180以确保防止任何过渡旋转。

您会注意到,向前的角度在骨骼预览中变得可见,由末端由圆圈的棕色线显示,确保它指向正确的方向(在本例中为:重力方向)。

 这就是启用绳索骨骼的物理特性所需的全部内容。您实际上不需要为骨骼本身设置动画,而是应该为父骨骼(在本例中为手)设置动画。骨骼将动态跟随并模拟物理。对于您的示例,您可能需要调整上面的值,但您可以使用上面的值作为基准,然后根据特定的用例调整它们。

披风物理

接下来,我们将使用物理模拟为一系列骨骼制作动画。这里将以武士的披风为例,因为它跨越多个骨骼,这些骨骼都专门移动披风的布料:

具体来说:我们正在处理沿披风存在的四个骨骼,如下图所示,它们已经完全配置:

 披风上的前三个骨骼已配置使用弹簧物理模拟,而左侧的最后一个骨骼已配置使用刚体物理模拟。这不一定是最好的解决方案,但认为在这种情况下,结果看起来不错。您可以尝试将骨骼于刚性和弹簧模拟混合结合在一起,并查看行为如何变化。

提示

请记住,链接多个弹簧模拟骨骼将转移它们的弹性运动,并且更容易导致不稳定的运动。

配置骨骼

所有骨骼在很大程度上都保持默认设置。这里启用了限定旋转,并将其配置为最小值-20和最大值+20,以确保斗篷移动不会太过剧烈。披风的第二个骨骼(右侧)也在默认设置下启用了重力,以模拟一点向下的气流。其他元素的重力已被禁用,因为如果所有运动都来自武士的动画,它看起来会更好。您可以近一步尝试,并将重力方向设置为180(表示向左),例如,您可以使用它来模拟强烈的侧向风。

配置骨骼末端前倾角

在上面的示例中,你可以看到斗篷上的所有骨骼都有一个向前的角度,由末端有圆圈的棕色线条表示。向前的角度指向下一块骨头很重要,你可以看到棕色的圆圈总是围绕这下一块骨头。

然而,有一个重要的例外,那就是斗篷上的最后一块骨头。您可以看到棕色圆圈的末端朝向斗篷的尖端。必须通过更改骨骼末端前倾角直到前向角度指向正确的方向。由于前倾角的工作原理,这可能有点棘手。请务必检查最后一个棕色圆圈是否指向角色或对象的的外侧尖端。输入的值实质上是Wallpaper Engine推断的默认方向的偏移量。

为斗篷制作动画

与绳索示例不同,我们还向所有物理模拟的披风骨骼添加了轻微的运动动画,并且不完全依赖披风的纯物理。来自斗篷动画和物理模拟的运动将被合并。这使得我们能够创建更逼真的斗篷,而无需创建非常精确的动画,因为我们只需依靠动态模拟来为斗篷添加任何逼真的细节。

骨骼约束

当您在人偶变形骨架中选择骨骼时,您可以点击“骨骼约束”来查看特定骨骼的高级选项。

您有两个主要选项,您可以首先在两者之间做出决定:

弹簧物理模拟:启用骨骼的弹性模拟。骨骼将像弹簧一样工作,并始终尝试返回其默认位置。

刚体物理模拟:启用骨骼的拖动模拟,骨骼将充当可以拖动的物体,并且将保持其最后的位置。

骨骼约束选项

物理旋转:启用骨骼旋转的动态模拟。这在大多数情况下都很有用。

旋转刚度(仅限弹簧):骨骼尝试返回其默认旋转的强度。增加此值将使弹簧更坚固且弹性更小,降低此值将使弹簧松散且反应性降低。

旋转摩擦:每帧减少多少旋转运动。您可以增加此值以减少抖动运动。

旋转惯性:这会减少动画移动对骨骼的影响程度。增加此值将使骨骼对快速动画的反应较少。

物理平移:启用骨骼位置的动态模拟。如果动画的目标是对象的扭曲,或者如果对象被分隔到不同的空间,这将非常有用。

平移刚度(仅弹簧):骨骼尝试返回其默认位置的强度。增加此值将使弹簧更坚固且弹性更小,降低此值将使弹簧松散且反应性降低。

平移摩擦:每帧减少多少平移运动。您可以增加此值以减少抖动运动。

平移惯性:这减少了动画移动对骨骼的影响程度。增加此值将使骨骼对快速动画的反应减少。

最大距离:允许骨骼移动的最大举例。

已启用重力:启用此选项将使骨骼对重力做出反应。它会尝试重力方向移动,就像它悬浮在空气中一样。

骨骼末端质量:较高的质量将使骨骼对重力的反应更强烈,而不是对动画的运动做出反应。

重力方向:这是重力的方向。

骨骼末端大小: 这允许您覆盖骨骼的模拟权重与骨骼中心之间的距离。较大的大小将使骨骼对某些动画的反应性降低,而较小的大小将使其更具反应性。 如果将其保留位0并别骨骼只有一个子骨骼,则会动态设置大小以匹配与子骨骼的距离。将此值设置位除0以外的任何值将覆盖大小。您可以通过查看橙色圆圈与刚刚编辑的骨骼的距离来查看编辑器中的大小。

骨骼末端前倾角:这可让您覆盖尖端的角度。默认情况下,末端将朝向子骨骼的方向(如果有),否则它将沿X轴朝向骨骼的默认向前方向。在任一情况下,您都可以使用此选项更改此方向。此选项将偏移应用于当前方向。

限定旋转:使用此选项可以限制骨骼在任一方向上的最大旋转。这对于将骨骼引导到所需方向并防止其旋转180度非常有用。

最小角度:允许旋转的最小角度。默认情况下,此值为-180度。

最大角度:允许旋转的最大角度。默认情况下,这是180度。

限定扭矩:启用此选项可以限制施加到骨骼的最大旋转力。您可以使用此选项来防止骨骼由于非常快的动画而无法不规则地旋转。

最大扭矩:允许地最大力,任何大于此的力都将限制为最大值。

创建形状动画

操控变形动画还允许您更改人物的实际形状,这可用于创建详细的面部动画和其他类型的动画,如果您希望在其中对纹理本身进行详细调整。

创建混合形状

混合变形的总体思路是定义几何体的替代排列,您可以在动画中过渡该排列。例如,您可以调整角色面部的几何图形,使眼睛看起来是闭着的。

首先,转到操控变形动画的"几何"设置如果您尚未点击锁定几何图形以进行顶点编辑按钮,您首先选哟这样做,因为如果您对几何体进行进一步编辑,混合变形将中断。如果需要,使用编辑拓扑按钮微调自动生成的几何图形。

 在编辑混合形状部分中,点击添加按钮以创建新的混合变形。几何体中的每个点现在将都变得可移动,将与形状动画相关的所有点调整到其最终位置。例如:您可以将眼睛上方的几何体向下移动,使眼睛看起来是闭着的。

创建表情

在下一步中,您需要创建一个表情。表达式是多个混合变形的集合。如果只有一个混合变形,只需将其设置为值即可。如果您有多个混合变形,请以您希望稍后再特定动画中控制它们的方式将它们混合在一起。如果希望某个混合变形在表达式期间仅部分显示,也可以设置间歇值,例如:0.5。

为表情制作动画

在最后一步中,转到现有动画或为人偶创建新动画。在动画视图中未选择骨骼时,您可以像使用任何其他属性一样为表情创建时间轴动画。注意不能选中单一骨骼,必须不选择骨骼才能显示。

相关文章:

Wallpaper壁纸制作学习记录13

骨骼物理模拟 Wallpaper Engine还允许您为人偶变形骨骼配置某些物理模拟。选择骨骼时,点击编辑约束来配置骨骼这些属性。 警告 请记住,物理模拟可能会根据用户的最大FPS设置略微改变其行为。 Wallpaper Engine编辑器将始终以高帧速率渲染。您可以将壁纸…...

Visual Studio 2022安装教程

1、下载网址 Visual Studio 2022 IDE安装网址借助 Visual Studio 设计,具有自动完成、构建、调试、测试功能的代码将与 Git 管理和云部署融为一体。https://visualstudio.microsoft.com/zh-hans/vs/ 点击图片所示 双击运行 2、安装 点击C桌面开发(右边…...

std__invoke 的使用

std__invoke 的使用 文章目录 std__invoke 的使用1. std::invoke 的功能2. 语法3. 使用场景1. 调用普通函数2. 调用成员函数3. 调用成员函数(通过指针或引用)4. 调用函数对象(仿函数)5. 调用 Lambda 表达式 4. std::invoke 的优势…...

2501d,d.109

原文 2.109.0带来了15个主要更改和26个修复的Bugzilla问题.非常感谢39位贡献者,是他们使2.109.0变成可能. 更改编译器 1,[下一版]现在,为类型实例的成员设置别名是个错误 2,添加位字段内省功能 3,添加了从CTFE写入消息的__ctfeWrite 4,现在-verrors也限制弃用警告 5,dtoh为e…...

1、蓝牙打印机环境搭建

本项目采用stm32f103c8T6芯片,通过库函数实现打印功能,并配置有小程序蓝牙通信上位机。 1、创建文件夹目录 core文件夹存放核心库文件 LIB文件夹存放标准库函数文件 这里可以删减,用不到的可以不要。 obj存放编译后的文件 project存放项目…...

Axure RP11安装学习

安装: 官网下载地址:Axure RP - UX Prototypes, Specifications, and Diagrams in One Tool 设置自己的安装目录,一步步安装即可。 汉化: 汉化包下载地址: 链接: https://pan.baidu.com/s/1eIRoGkVqAY3u3I27lgDJ6A…...

axios和fetch的实现原理以及区别,与XMLHttpRequest的关系,并结合react封装统一请求示例

Axios 和 Fetch 对比及统一请求封装 1. Axios 基础用法 1.1 安装和引入 // 安装 npm install axios// 引入 import axios from axios;1.2 基本请求方法 // GET 请求 axios.get(/api/users).then(response > console.log(response.data)).catch(error > console.error…...

矩阵运算提速——玩转opencv::Mat

介绍:用Eigen或opencv::Mat进行矩阵的运算&#xff0c;比用cpp的vector或vector进行矩阵运算要快吗? 使用 Eigen 或 OpenCV 的 cv::Mat 进行矩阵运算通常比使用 std::vector<int> 或 std::vector<double> 更快。这主要有以下几个原因&#xff1a; 优化的底层实现…...

C++软件设计模式之模板方法模式

模板方法模式是面向对象软件设计模式之一&#xff0c;其主要意图是在一个方法中定义一个算法的骨架&#xff0c;而将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下重新定义算法的某些特定步骤。 动机 在软件开发中&#xff0c;常常会遇到这样的情…...

神经网络的初始化方式都有哪些?

一、概念 神经网络的初始化是深度学习中的一个关键步骤&#xff0c;它指的是在训练开始前为神经网络的权重和偏置设置初始值。合适的初始化方法可以加速模型的收敛&#xff0c;提高训练效果&#xff0c;甚至影响模型的最终性能。当然&#xff0c;目前我们使用Torch、TensorFlow…...

const成员函数

在c中经常看到这样的声明&#xff1a; class A{ ... int fun1() const; //const成员函数 int fun2() const; //const成员函数private: int a; //属于状态 static int b; //不属于状态&#xff0c;属于类 } 这个const关键字声明了这个函数是const成员函数&#xff0c;con…...

物理知识1——电流

说起电流&#xff0c;应该从电荷说起&#xff0c;而说起电荷&#xff0c;应该从原子说起。 1 原子及其结构 常见的物质是由分子构成的&#xff0c;而分子又是由原子构成的&#xff0c;有的分子是由多个原子构成&#xff0c;有的分子只由一个原子构成。而原子的构成如图1所示。…...

车载通信架构 --- 智能汽车通信前沿技术

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...

Flutter中添加全局防护水印的实现

随着版权意识的加强&#xff0c;越来越多的应用开始在应用内部增加各种各样的水印信息&#xff0c;防止核心信息泄露&#xff0c;便于朔源。 效果如下&#xff1a; 在Flutter中增加全局水印的方式&#xff0c;目前有两种实现。 方案一&#xff0c;在native层添加一个遮罩层&a…...

BGP(Border Gateway Protocol)路由收集器

全球 BGP&#xff08;边界网关协议&#xff09;路由收集器的分布情况以及相关数据。以下是主要的信息解读&#xff1a; 地图标记&#xff1a; 每个绿色点代表一个路由收集器的位置。路由收集器分布在全球不同的地区&#xff0c;覆盖了五大区域&#xff1a; ARIN&#xff08;美…...

【DAGMM】直接跑tip

1.from sklearn.externals import joblib 版本高 joblib没有 直接pip install joblib&#xff0c;然后 import joblib 2.AttributeError: module ‘tensorflow’ has no attribute ‘set_random_seed’ # tf.set_random_seed(args.seed)#tf<2.0 tf.random.set_seed(args.s…...

vscode中调用deepseek实现AI辅助编程

来自 Python大数据分析 费弗里 1 简介 大家好我是费老师&#xff0c;最近国产大模型Deepseek v3新版本凭借其优秀的模型推理能力&#xff0c;讨论度非常之高&#x1f525;&#xff0c;且其官网提供的相关大模型API接口服务价格一直走的“价格屠夫”路线&#xff0c;性价比很高…...

AI大模型语音识别转文字

提取音频 本项目作用在于将常见的会议录音文件、各种语种音频文件进行转录成相应的文字&#xff0c;也可从特定视频中提取对应音频进行转录成文字保存在本地。最原始的从所给网址下载对应视频和音频进行处理。下载ffmpeg(https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-…...

可由 (5V) 单片机直接驱动的模块

可由 &#xff08;5V&#xff09; 单片机 直接驱动的模块 1. 传感器类 元器件描述温度传感器DS18B20&#xff08;数字温度传感器&#xff09;光强传感器光敏电阻&#xff08;通过 ADC 读取&#xff09;红外传感器红外接收模块&#xff08;如 VS1838&#xff09;超声波传感器HC…...

vue使用树形结构展示文件和文件夹

1. 树形结构显示 显示文件夹和文件&#xff1a;使用 el-tree 组件展示树形结构&#xff0c;文件夹和文件的图标通过 el-icon 进行动态显示。文件夹使用 Folder 图标&#xff0c;文件使用 Files 图标。节点点击&#xff1a;点击树形节点后&#xff0c;会将选中的节点保存到 sel…...

PHP框架+gatewayworker实现在线1对1聊天--聊天界面布局+创建websocket连接(5)

文章目录 聊天界面布局html代码 创建websocket连接为什么要绑定&#xff1f; 聊天界面布局 在View/Index目录下创建index.html html代码 <div id"chat"><div id"nbar"><div class"pull-left">与牛德胜正在聊天...</div…...

LinuxUbuntu打开VSCode白屏解决方案

解决方法是 以root权限打开VSCode sudo /usr/share/code/code --no-sandbox --unity-launch...

在 ESP 上运行 AWTK

AWTK 基于 esp 的移植。 测试硬件平台为 ESP32-S3-Touch-LCD-4.3&#xff0c;其它平台请根据实际平台自行调整。 安装下载工具 建议下载离线版本 ESP IDF v5.3.2 下载代码 git clone https://github.com/zlgopen/awtk-esp.git cd awtk-esp git clone https://github.com/zlg…...

硬件工程师面试题 21-30

把常见的硬件面试题进行总结&#xff0c;方便及时巩固复习。其中包括网络上的资源、大佬们的大厂面试题&#xff0c;其中可能会题目类似&#xff0c;加强印象即可。 更多硬件面试题&#xff1a;硬件工程师面试题 1-10硬件工程师面试题 11-20 21、单片机最小系统需要什么&#x…...

开源架构的容器化部署优化版

上三篇文章推荐&#xff1a; 开源架构的微服务架构实践优化版&#xff08;New&#xff09; 开源架构中的数据库选择优化版&#xff08;New&#xff09; 开源架构学习指南&#xff1a;文档与资源的智慧锦囊&#xff08;New&#xff09; 我管理的社区推荐&#xff1a;【青云交社区…...

Qt使用CMake编译项目时报错:#undefined reference to `vtable for MainView‘

博主将.h文件和.cpp文件放到了不同的文件目录下面&#xff0c;如下图所示&#xff1a; 于是构建项目的时候就报错了#undefined reference to vtable for MainView&#xff0c;这个是由于src/view目录下的CMake无法自动moc头文件导致的&#xff0c;需要手动moc include/view目录…...

python学习笔记—12—

1. 布尔类型 (1) 定义 (2) 比较运算符 (3) 代码演示 1. 手动定义 bool_1 True bool_2 False print(f"bool_1的内容是&#xff1a;{bool_1}, 类型是&#xff1a;{type(bool_1)}") print(f"bool_2的内容是&#xff1a;{bool_2}, 类型是&#xff1a;{type(bool…...

==和===的区别,被坑的一天

在 JavaScript 中&#xff0c; 和 都用于比较两个值&#xff0c;但它们有一个重要的区别&#xff1a; 1. (宽松相等运算符) 进行比较时&#xff0c;会 自动类型转换&#xff08;也叫做强制类型转换&#xff09;&#xff0c;即如果比较的两个值的类型不同&#xff0c;JavaScr…...

基于 GPUTasker 的 GPU 使用情况钉钉推送机器人实现

引言 https://github.com/cnstark/gputasker 随着 AI 模型的广泛应用&#xff0c;GPU 成为团队中最重要的资源之一。然而&#xff0c;如何实时监控 GPU 的使用情况并及时通知团队是一个值得关注的问题。为了更好地管理显卡资源&#xff0c;本文基于 GPUTasker&#xff0c;实现了…...

Python自学 - 函数初步(内置函数、模块函数、自定义函数)

1 Python自学 - 函数初步(内置函数、模块函数、自定义函数) 1.1 内置函数 几乎所有的编程都会提供一些内置函数&#xff0c;以便完成一些最基本的任务&#xff0c;Python提供了丰富的内置函数&#xff0c;熟悉内置函数可以给工作带来极大便利。   Python官方的内置函数介绍网…...