unity实现mmd功能(跳舞)

2023-11-09


Unity支持从两种不同类型的文件导入网格和动画:

  • 导出的3D文件格式,如.fbx或.obj。
  • 专有的3D或DCC(数字内容创作)应用程序文件,例如来自AutocdeskoB3ds Maxk@或Blender的.max和.blend文件格式。只能在创建专有文件的软件中编辑这些文件。专有文件通常无法在未经转换和导入的情况下直接由其他软件编辑。

导出的3D格式
Unity可读取.fbx、.dae(Collada)、.3ds、.dxf和.obj文件。

将pmx模型转化为fbx模型

需要工具:

  1. 用于Blender中处理模型的插件(Cats Blender Plugin),适合用于处理pmx、vrm模型。(https://github.com/absolute-quantum/cats-blender-plugin)
  2. 用于Unity,将fbx模型打包成vrm模型的的脚本(UniVRM)。(https://github.com/vrm-c/UniVRM/releases/tag/v0.68.2)

Cats插件,自身内置支持mmd(.pmx,.pmd)、fbx(.fbx)格式的模型导入。
XnaLara(.xps)、Source(.md)、VRM(.vrm)需要额外下载对应插件。

在blender中安装Cats插件并在右侧工具栏中利用它导入.pmx模型

默认显示是白色模型,可在右侧工具栏中在Misc(杂项)中添加mmd_tools赋予的着色渲染(GLSL、Shadeless)。

(如果着色不正常,例含带粉色,可以把MMD Display中的Toon Texture取消勾选)


点击Cats里的Fix model(mmd模型默认设置,非mmd模型在属性设置中取消勾选“Fix MMD Twist Bones”),它会自动化处理你的模型,并对模型本身的mesh和骨骼进行改变。

  1. 会将你的模型骨骼,重命名为适配Unity骨骼映射的英文名,并删除多余无用0权重骨骼。
  2. 会改变你的mesh网格,将使用同一张贴图的部分合并在一起,然后再将所有mesh网格合并重命名为Body。(这个功能对小白来说并没有什么影响,但对熟悉模型的人来说可能是个缺点。解决方法:Fix Model前,在属性设置中取消勾选“Combine Same Materials”)

(在自动化处理时,处理速度取决于模型的复杂程度,比如,模型的骨骼数量,面数,形态键(blendshape)等)

处理结束后, 检查骨骼的权重是否正常。
(不检查也行,一般Fix model前正常,Fix model后也不会有什么问题)

点击Start Pose Mode,开启姿态模式,然后检查骨骼权重,依次是四肢、上半身、腰部、手指。

当你发现模型没啥问题以后,点击Export Model,直接导出就好了。

将fbx模型导入,在对应的Inspector面板上的四个勾选打勾并Apply应用一下

在接下来弹出的界面中将vmd动画拖入到对应的Object栏中并点击生成相应动画的模型

vmd动画的制作

  • 利用小K网(https://xk.yunboai.com/)

(仅转到vmd只需bip)

  • 手K帧
    自己手K帧的精度更高更自然,也可以采取动捕+手修,不过动捕出来的满屏关键帧还不如直接重做orz。

新建一个动画状态机控制播放动画,将一整段动画拖入即可,然后将动画机赋值给生成出来的模型作为预制

场景中添加音乐作为舞蹈音乐

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

unity实现mmd功能(跳舞) 的相关文章

  • 找出一个点属于哪个四面体元素

    我有一个 3d 区域的四面体网格 网格由扩展名为 node 和 ele 的两个文件定义 其中包含与节点和元素相关的数据 这是 tetgen 3d Delaunay 四面体化程序 的输出文件的格式 node 文件的每一行包含节点编号以及该节点
  • unity小球跟随音乐节奏放大缩小和改变颜色

    放在小球身上 设置对应组件即可 using System Collections using System Collections Generic using Unity VisualScripting using UnityEngine
  • 【转载】【Unity】WebSocket通信

    1 前言 Unity客户端常用的与服务器通信的方式有socket http webSocket 本文主要实现一个简单的WebSocket通信案例 包含客户端 服务器 实现了两端的通信以及客户端向服务器发送关闭连接请求的功能 实现上没有使用U
  • 物理实体的 Gmsh 问题

    我有一个 geo我用 python 脚本编写的文件 这个的主要用途 geo文件的作用是构造并保存三角网格 在 gmsh 中 您可以使用物理命令标记感兴趣的实体 例如Physical Point Physical Line etc 来了 ge
  • 我可以从网格生成点云吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试从网格生成点云数据 例如 Maya 的 obj 文件 但是 我只能在互联网上找到相反的情况
  • 在python中使用VTK找到3D空间中两个圆柱体的交集

    在 python 中使用 VTK 我编写了一些代码来为我想要的对象创建一个 actor 例如对于气缸 def cylinder object startPoint endPoint radius my color DarkRed USER
  • 无论旋转如何,跟踪增强面 (ARCore) 的面网格顶点

    我正在尝试跟踪面部表情 例如扬眉 微笑 眨眼等 在 ARKit 中 我可以使用 blendShapes https developer apple com documentation arkit arfaceanchor 2928251 b
  • Unity中URP下的指数雾

    文章目录 前言 一 指数雾 雾效因子 1 FOG EXP 2 FOG EXP2 二 MixFog 1 ComputeFogIntensity 雾效强度计算 2 lerp fogColor fragColor fogIntensity 雾效颜
  • 三.js。应用 EdgesHelper 后更改网格位置

    我尝试在应用 EdgesHelper 后旋转或更改网格的位置 但它不起作用 网格保持在同一位置 没有 EdgesHelper 它工作正常 我究竟做错了什么 var mesh new THREE Mesh geometry material
  • 四边形网格划分库

    我试图找到一个用 C 编写的网格划分库 仅使用四边形网格对自定义形状进行网格划分 这是我正在寻找的算法 代码的示例 但这不是免费的并且是用 ANSI C 编写的 http members ozemail com au comecau qua
  • Three.js 加载已三角化的网格是否比使用四边形的网格性能更高?

    我读过 Three js 对所有网格面进行三角剖分 这是正确的吗 然后我意识到我使用的大多数 gltf 模型都有四面体 在 Blender 中对面进行三角测量非常容易 所以我很好奇对面进行预先三角测量是否会导致网格加载更快 提前致谢 如果您
  • U3D游戏开发中摇杆的制作(NGUI版)

    在PC端模拟摇杆 实现控制摇杆让玩家或者物体移动 以下是完整代码 using System Collections using System Collections Generic using UnityEngine public clas
  • 游戏开发常见操作梳理系列之——玩家信息的显示系统

    在游戏中 有不少游戏在左上角会出现玩家的头像和等级以及血量 这就是玩家的信息显示系统 那么这些是如何制作的呢 接下来我将讲讲代码的操作 其它操作我会在其它笔记中一一说明 敬请期待 信息的显示相当简单就是控制一些UI 然后在其它系统里面填写相
  • 游戏开发常见操作梳理之角色选择一

    进入游戏后 我们经常会进入角色选择的界面 通常是左右两个按钮可以更改角色供玩家选择 对于这种界面我们通常使用数据持久化将角色信息存储起来 接下来的笔记中 我将使用自带的数据持久化系统对其进行操作 实现角色的选择页面 后续会更新xml系列的文
  • 如何计算具有三角形面的网格的质心?

    我想根据以下描述计算网格的新质心 但我不想使用 Blender 的内置函数来计算质心 如所解释的here https blender stackexchange com questions 14294 how to recenter an
  • 如何从kinect fracetrack获取网格?

    如何获取 kinect 面部追踪网格 这是网格 https i stack imgur com aPtJt jpg https i stack imgur com aPtJt jpg 我尝试了多种方法 但无法使其发挥作用 e g http
  • Unity3D 带孔动态网格

    从两个顶点列表动态创建一个带有孔的网格 我目前正在尝试动态创建一个带有孔的网格 2D 我有一个轮廓和孔轮廓的 Vector3 顶点列表 我的问题 How would I go about merging these two lists of
  • 在 OpenGL ES 1.1 中将多个纹理绑定到一个网格

    如果我有一个网格 例如有 6 个面的立方体 每个面分别由 4 个顶点组成 总共 24 个顶点 并且我想对每个面应用不同的纹理 我该怎么做 目前 我使用 glDrawElements 一次绘制整个网格 立方体的所有 6 个面 将所有索引提供到
  • 如何使用 MATLAB 的“等值面”函数创建三角球体

    如何创建一个三角球体 其中每个三角形的面面积相同 我想要这样的东西 http imageshack us a img198 5041 71183923 png http imageshack us a img198 5041 7118392
  • 了解 Qt3D 创建的网格

    我创建了一个 Qt3D 网格 如下所示 Qt3DCore QEntity newEntity new Qt3DCore QEntity Qt3DExtras QConeMesh mesh new Qt3DExtras QConeMesh m

随机推荐

  • C#中的函数式编程:递归与纯函数(二) 学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面...

    C 中的函数式编程 递归与纯函数 二 在序言中 我们提到函数式编程的两大特征 无副作用 函数是第一公民 现在 我们先来深入第一个特征 无副作用 无副作用是通过引用透明 Referential transparency 来定义的 如果一个表达
  • 专家PID的控制算法-MATLAB实现

    专家PID的控制算法 MATLAB实现 PID控制 实际应用中多是PI控制和PD控制 就是根据系统的误差 利用比例 积分和微分计算出控制量进行控制的 PID专家控制的实质 是基于受控对象和控制规律的各种知识 利用专家经验设计一些规则并结合的
  • Python爬虫实战案例——第五例

    文章中所有内容仅供学习交流使用 不用于其他任何目的 严禁将文中内容用于任何商业与非法用途 由此产生的一切后果与作者无关 若有侵权 请联系删除 目标 采集三国杀官网的精美壁纸 地址 aHR0cHM6Ly93d3cuc2FuZ3Vvc2hhLm
  • 【ClickHouse内核】资源管理

    目录 概述 资源使用追踪机制 MemoryTracker ProfileEvents QueryProfiler 举个例子 资源隔离机制 内存隔离 CPU隔离 IO隔离 资源使用配额 Quota 机制 结论 概述 资源管理对于数据库来说是非
  • Parameter 0 of constructor in XXX required a single bean, but 3 were found:

    原因 因为在构造函数中 需要一个单一的 OrderStatus Bean 但Spring在容器中找到了三个这样的Bean 解决方式 在随机一个组件中加入一个注解 Primary Component Primary Slf4j public
  • 18650锂电池参数、充放电时间计算详解

    我们以NCR18650B举例 其参数为 额定容量 3200mAh 容量范围3250mAh 3350mAh 额定电压 3 6V 充电参数 恒流 恒压 充电电流为1625mA 充电到4 2V 需要4小时 质量 48 5g 充电温度 放电温度 存
  • 傅里叶变换公式及其推导【超详细!】

    题主本硕机械专业 自学转互联网 算法岗成功 获得阿里 字节 美团 华为等 15 offer 后续会在公众号 苏学算法 分享各类学习笔记 面试经验 感兴趣的可以关注一波 一 核心公式 时域 gt gt gt 频域 X
  • idea 类注释模板

    类注释模板如下 if PACKAGE NAME PACKAGE NAME package PACKAGE NAME end parse File Header java ClassName NAME Author name Date DAT
  • K8S 部署 SpringBoot 项目(一篇够用)

    现在比较多的互联网公司都在尝试将微服务迁到云上 这样的能够通过一些成熟的云容器管理平台更为方便地管理微服务集群 从而提高微服务的稳定性 同时也能较好地提升团队开发效率 但是迁云存在一定的技术难点 今天这篇文章主要介绍如何从0开始搭建一套基于
  • c语言程序设计

    一 c语言主要特点 1 语法设计不 太严格 软件程序自由度大 2 对变量的类型使用比较灵活 如整型和字符型数据可以通用 3 c语言具有高级语言的功能和低级语言的很多功能 可以用来编写系统软件 4 编译系统简洁 易移植等特点 例如 inclu
  • 360云盘会不会停止服务器,360云盘能否继续使用啊?

    2017 10 10 03 56 14 除非你已购买了企业云盘只要交了费就可以使用了 可用原云盘帐号登录 把原云盘内的数据一键导入企业云盘 全部 2017 10 10 03 56 14 2017 10 10 03 56 14 完善个人资料
  • Redis单机最大并发量

    redis单机最大并发量 布隆过滤器 多级缓存 客户端缓存 应用层缓存 Expires和Cache Control的区别 Nginx缓存管理 服务层缓存 进程内缓存 进程外缓存 缓存数据一致性问题的解决 引入多级缓存设计的时刻 Redis的
  • sentinelsat包介绍

    这次主要介绍sentinelsat包 包括查询条件和相关的API等 主要记录自己学习过程 首先我们需要知道欧空局ESA的数据 因为考虑数据存储等问题 会将sentinel数据从在线存档中删除 对于长期存档的数据 会出现offline情况 在
  • 编程常用英语词汇

    按字母索引 A 开头 B 开头 C 开头 D 开头 E 开头 F 开头 G 开头 H 开头 I 开头 J 开头 K 开头 L 开头 M 开头 N 开头 O 开头 P 开头 Q 开头 R 开头 S 开头 T 开头 U 开头 V 开头 W 开头
  • PHP preg_replace() 正则替换所有符合条件的字符串

    PHP preg replace 正则替换 与Javascript 正则替换不同 PHP preg replace 默认就是替换所有符号匹配条件的元素 需要我们用程序处理的数据并不总是预先以数据库思维设计的 或者说是无法用数据库的结构去存储
  • Flutter 修改默认生成的 minSdkVersion

    Flutter 修改默认生成的 minSdkVersion 问题 flutter pub get 会自动生成 android 目录 但是如果要修改 build gradle 文件里面的内容 需要每次都要手动改一下 很麻烦 解决办法 修改 f
  • 大数据毕设项目 opencv 图像识别 指纹识别 - python

    文章目录 0 前言 1 课题背景 2 效果展示 3 具体实现 3 1 图像对比过滤 3 2 图像二值化 3 3 图像侵蚀细化 3 4 图像增强 3 5 特征点检测 4 OpenCV 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升
  • 【动手学习pytorch笔记】33.Attention实现

    Attention实现 import math import torch from torch import nn from d2l import torch as d2l 带掩码的softmax 有些query是不应该看到后面的key的
  • glslViewer 介绍 (001)

    GitHub patriciogonzalezvivo glslViewer Console based GLSL Sandbox for 2D 3D shaders 起个头先 把官网的windows安装过程 step by step 化
  • unity实现mmd功能(跳舞)

    将pmx模型转化为fbx模型 将fbx模型导入 在对应的Inspector面板上的四个勾选打勾并Apply应用一下 在接下来弹出的界面中将vmd动画拖入到对应的Object栏中并点击生成相应动画的模型 vmd动画的制作 新建一个动画状态机控