【推荐100个unity插件】在unity快速生成3D人物自然姿势和动作,且支持按图像生成姿势—— Pose AI
文章目录
- 一、前言
- 二、插件下载安装
- 三、快速开始
- 1、自动设置角色
- 2、手动角色设置
- 3、神经网络模型
- 4、神经控制装备
- 5、场景 GUI 设置
- 6、姿态估计
- 7、姿态预览
- 四、神经网络架构
- 专栏推荐
- 完结
一、前言
PoseAI 是一款先进的基于肌肉的姿势创作工具,有助于创建动画。通过在肌肉上应用学习到的逆运动学(IK),PoseAI 根据施加在各个关节上的约束来估计身体位置,生成自然姿势和动作。
- 姿势逆运动学:使用 PoseAI 的高级逆运动学系统,从部分输入中完成全身姿势。体验实时性能,推理时间仅需几毫秒,允许在编辑时进行身体姿势估计。
- 图像到姿势:使用 PoseAI 的图像到姿势功能将 2D 图像转换为绑定姿势。在大约 1-2 秒内实现准确的姿势复制。
- 预览动画:在编辑器内直接预览动画片段,无需切换标签。使用播放头导航通过片段,查看动画的任何部分。时间轴和 ragdoll 预览都方便地在编辑器内显示。
二、插件下载安装
https://assetstore.unity.com/packages/tools/generative-ai/pose-ai-278009#description

依赖项
本资源需要安装外部包 Barracuda v3.0.0。
安装路径:Window > Package Manager > Add package by name > com.unity.barracuda


三、快速开始
PoseAI 编辑器是一款生成式 AI 工具,旨在辅助动画制作和姿态创作。该编辑器使用学习到的逆向运动学(IK)技术,基于施加于各个关节的约束来预测和估算身体位置。

1、自动设置角色

- 按钮:Auto-Setup Character
- 此按钮利用 AI 和 IK 系统自动为角色进行动画设置。它通过配置角色的必要组件和设置,简化了初始设置流程。
2、手动角色设置

- 字段:Character (Game Object)
- 允许您选择用于动画的角色游戏对象。
- 字段:Character Prefab Instance (Game Object)
- 允许您选择一个角色的预制体实例,以保持设置和测试的一致性。
- 可展开区域:Skeleton Transforms List
- 提供角色骨骼变换的详细列表,便于进行精确的控制和调整。此列表主要用于让您检查自定义角色是否包含 52 个变换。
- 按钮:Populate Skeleton Transforms
- 根据命名规则,使用角色的骨骼结构填充骨骼变换列表,使其更易于管理和编辑骨骼配置。此方法对命名敏感。
3、神经网络模型

- 字段:Neural Network Models (NN List)
- 显示可用的神经网络模型数量。可根据动画的复杂度和需求进行调整。
4、神经控制装备

- 按钮:Neural + IK
- 激活神经控制装备,同时使用神经网络预测和逆向运动学,实现全面的动画控制。
- 按钮:IK Only
- 仅使用逆向运动学激活控制装备,不使用神经网络预测。
- 关节控制按钮
- Hips, Head, Left Arm, Right Arm, Left Leg, Right Leg
- 用于切换特定关节的神经控制和 IK 控制的独立按钮。这允许对动画过程进行细粒度控制,可以独立启用或禁用每个关节的 AI 驱动预测。当前激活的 AI 功能状态也会通过材质更新进行视觉反馈。
- 全局控制按钮
- 按钮:All - 同时为所有关节启用神经和 IK 控制。
- 按钮:None - 禁用所有关节的神经和 IK 控制。
- 骨骼调整按钮
- 按钮:Fix Skeleton - 根据神经和 IK 预测应用修复,校正骨骼的任何错位或问题。
- 按钮:Reset Skeleton - 将骨骼重置到其默认状态,移除所有已应用的神经或 IK 调整。
5、场景 GUI 设置

-
滑块:Snap Speed
- 调整姿态调整过程中骨骼吸附的速度。值越高吸附越快。值越低则会使用球面线性插值缓慢地将四元数移动到目标位置。如果您的显卡性能较低,请增加此值。
-
复选框:Show Bone Labels
- 切换场景中骨骼标签的显示,便于识别和操作。
-
颜色设置
- Selected Color - 用于高亮显示已选骨骼或关节的颜色。
- IK Controlled Color - 用于高亮显示 IK 控制的骨骼或关节的颜色。
- AI Controlled Color - 用于高亮显示 AI 控制的骨骼或关节的颜色。
-
姿态队列管理

- 按钮:Add Pose to Queue - 将当前姿态添加到动画队列中。
- 按钮:Delete Pose Queue - 删除当前动画队列中的所有姿态。
- 按钮:Generate Animation Asset - 根据队列中的姿态生成动画资源。
-
当前姿态帧与帧间隔
- Current Pose Frame - 显示当前姿态帧的索引。
- Frame Interval (s) - 设置捕捉姿态的时间间隔(以秒为单位)。
6、姿态估计

- 字段:Input Image (Texture 2D)
- 允许您选择一张用于姿态估计的图片。此图片可以是任何分辨率。请注意:请确保导入的图片已设置为可读且 NPOT。在内部,图片将被缩放为 1:1,图片的宽高比越接近 1:1,效果越好。
- 按钮:Generate Pose from Image
- 根据选定的输入图片生成一个姿态。请注意,如果图片的宽高比不是 1:1,它将被缩放以适应方形框架,这可能会影响结果。

- 根据选定的输入图片生成一个姿态。请注意,如果图片的宽高比不是 1:1,它将被缩放以适应方形框架,这可能会影响结果。
7、姿态预览
-
字段:Pose Clip
- 允许您选择要预览的动画片段。
-
滑块:Playback Speed
- 调整预览窗口中动画的播放速度。请注意,这并非实际动画速度的精确表示,它是基于内部设置的帧间时间间隔计算的。
-
Animation Preview Window

- 显示选定的动画片段,允许您视觉评估生成的动画。此功能使用 Models 文件夹中名为
RagdollAnimationPreview.fbx的预制体,并改变其姿态以在编辑器中显示。
- 显示选定的动画片段,允许您视觉评估生成的动画。此功能使用 Models 文件夹中名为
四、神经网络架构
系统使用前馈网络预测肢体位置,并使用 ResNet 进行姿态预测。前馈神经网络由全连接层与 ReLU 激活函数交错组成。
架构如下:
- 输入层:
- 网络的输入被传递到第一个 Gemm(通用矩阵乘法)层。
- 第一个 Gemm 层(全连接层):
- 该层在输入和大小为 128×4 的权重矩阵 B 之间执行矩阵乘法,然后添加一个大小为 128 的偏置向量 C。
- 权重矩阵 B 在乘法前进行转置。
- 第一个 ReLU 激活层:
- 第一个 Gemm 层的输出通过 ReLU(线性整流单元)激活函数,应用逐元素非线性变换。
- 第二个 Gemm 层(全连接层):
- ReLU 激活的输出被馈送到另一个 Gemm 层。
- 该层将输入乘以大小为 128×128 的权重矩阵 B,并添加一个大小为 128 的偏置向量 C。
- 权重矩阵 B 在乘法前再次转置。
- 第二个 ReLU 激活层:
- 第二个 Gemm 层的输出通过另一个 ReLU 激活函数。
- 输出 Gemm 层(全连接层):
- 第二个 ReLU 激活的输出被馈送到最终的 Gemm 层。
- 该层执行与大小为 204×128 的权重矩阵 B 的矩阵乘法,并添加一个大小为 204 的偏置向量 C。
- 权重矩阵 B 在乘法前进行转置。
- 输出:
- 网络的最终输出具有固定的形状,系统会根据输入切换不同的神经网络来协调运动。
专栏推荐
| 地址 |
|---|
| 【unity游戏开发入门到精通——C#篇】 |
| 【unity游戏开发入门到精通——unity通用篇】 |
| 【unity游戏开发入门到精通——unity3D篇】 |
| 【unity游戏开发入门到精通——unity2D篇】 |
| 【unity实战】 |
| 【制作100个Unity游戏】 |
| 【推荐100个unity插件】 |
| 【实现100个unity特效】 |
| 【unity框架/工具集开发】 |
| 【unity游戏开发——模型篇】 |
| 【unity游戏开发——InputSystem】 |
| 【unity游戏开发——Animator动画】 |
| 【unity游戏开发——UGUI】 |
| 【unity游戏开发——联网篇】 |
| 【unity游戏开发——优化篇】 |
| 【unity游戏开发——shader篇】 |
| 【unity游戏开发——编辑器扩展】 |
| 【unity游戏开发——热更新】 |
| 【unity游戏开发——网络】 |
完结
好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!

