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

Blender使用Rigify和Game Rig Tool基础

做动画需要的几个简要步骤:
1.建模
2.绑定骨骼
3.绘制权重
4.动画

有一个免费的插件可以处理好给引擎用:Game Rig Tool
3.6和4.0版本的 百度网盘 提取码:vju8

1.Rigify是干嘛用的? =》 绑定骨骼
2.Game Rig Tool干嘛用的? =》 修复Rigify动画导入游戏引擎的问题,如果Rigify自身修复了就不需要这个插件了,
你也可以自己手动操作,有插件为啥不用那,又不要钱

基本步骤:
1.准备好模型、插件
2.添加Rigify骨架,需要哪个添加哪个
3.调整好位置,别忘了Ctrl+A应用一下Transform,否则位置不正确,点击生成
4.做动画
5.点开Game Rig Tool面板,选择上面生成的骨架,选择修复层级选项(有的版本默认就是),再点击生成最终使用的骨架
6.烘培动画,把做好的动画烘培到最终使用的骨架上,可以选择骨骼烘培(选择最终骨架的骨骼),默认是烘焙所有骨骼
7.导出,勾选NLA,取消全部动画,不想导出某个动画,可以在NLA编辑器取消打勾,或者删掉

下面的内容不用看了,是刚发现问题的发的

导入到Unity的问题:
1.有多余的骨骼(非形变骨)
2.层级错误

这两个问题是一个问题:
1.第一个问题是因为有形变骨是非形变骨的子骨骼导致的,所以只需要把形变骨放到对应的父级形变骨下即可,Ctrl+P即可
2.第二个问题:第一个问题解决了,就没有第二个问题了

如下图是修改好的,找到这四个,放到相应的父级下即可,注意的是肩膀和上臂原来是同级的也要建立子级即可

在这里插入图片描述
如下图,把不需要的形变骨删除,否则导出会把父级无用的骨骼导出去,用到的话就放到形变骨下
在这里插入图片描述
总之就是形变骨放到相应的形变骨下
导出时,勾选仅形变骨,就会把所有形变骨和其父级导出,如下图:
在这里插入图片描述

还有一种方法:Unity模型Rig导入设置里,动画类型选择通用,也就是非人形,也没问题,唯一的问题就不能骨骼重定向,如果不需要骨骼重定向的话,通用也是没问题的,只是多了一些无用的骨骼,要求不高也是可以用的

更新:还有第三个问题:
有的形变骨竟然没有添加对应骨的约束,这个需要额外处理,还是用下面给出的插件搞起

Rigify使用教程

但是,上面的连接有一点没有说(可能版本不一样,默认就修复了),如下图,要选择修复层级这个选项,否则导出到Unity还是层级报错,不能使用人形Rig
在这里插入图片描述

自己写了个脚本,设置父子节点脚本

import bpy# 设置父级方法
def SetParent(child_bone_name, parent_bone_name, connect):# 获取骨骼child_bone = armature.data.edit_bones[child_bone_name]parent_bone = armature.data.edit_bones[parent_bone_name]# 子骨骼如果已有父级,去除父级骨骼if child_bone.parent:child_bone.parent = None# 设置父级child_bone.parent = parent_bone# 设置是否保持连接child_bone.use_connect = connect   # 进入编辑模式
bpy.ops.object.mode_set(mode='EDIT')# 根据名字获取骨架,这里名字要填对,默认Rigify生成的是rig名字,
# 如果不是,需要修改这里,或者修改骨架名字都可以
armature = bpy.data.objects['rig']# 这里的名字是Rigify形变骨默认的名字,如果名字变了,这里需要修改正确的名字
# 设置左大腿到臀部
SetParent('DEF-thigh.L','DEF-spine',False)
# 设置右大腿到臀部
SetParent('DEF-thigh.R','DEF-spine',False)
# 设置左上臂到左肩膀
SetParent('DEF-upper_arm.L','DEF-shoulder.L',False)
# 设置右上臂到右肩膀
SetParent('DEF-upper_arm.R','DEF-shoulder.R',False)
# 设置左肩膀到胸部
SetParent('DEF-shoulder.L','DEF-spine.003',False)
# 设置右肩膀到胸部
SetParent('DEF-shoulder.R','DEF-spine.003',False)# 返回物体模式
bpy.ops.object.mode_set(mode='OBJECT')

相关文章:

  • 【DouYing Desktop】
  • Midjourney新功能介绍:风格参考(Style References)详解
  • 【Springcloud篇】学习笔记十(十七章):Sentinel实现熔断与限流——Hystrix升级
  • Android PMS——ADB命令安装流程(七)
  • Redis常用数据类型--Hash
  • 只用一台服务器部署上线(宝塔面板) 前后端+数据库
  • vue基本理解
  • [网络安全] IIS----WEB服务器
  • wireshark分析数据包:追踪流
  • C语言搭配EasyX实现贪吃蛇小游戏
  • AJAX-认识URL
  • 通过Nacos权重配置,实现微服务金丝雀发布效果(不停机部署)
  • leetcode209长度最小的子数组|滑动窗口算法详细讲解学习
  • Docker 集群配置
  • 如何使用wireshark解析二进制文件
  • [译]CSS 居中(Center)方法大合集
  • 《深入 React 技术栈》
  • 30秒的PHP代码片段(1)数组 - Array
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • Android优雅地处理按钮重复点击
  • ES10 特性的完整指南
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Redis中的lru算法实现
  • Vue 2.3、2.4 知识点小结
  • windows-nginx-https-本地配置
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 从伪并行的 Python 多线程说起
  • 复杂数据处理
  • 京东美团研发面经
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端面试之闭包
  • 深度学习入门:10门免费线上课程推荐
  • 微信开放平台全网发布【失败】的几点排查方法
  • 原生Ajax
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​你们这样子,耽误我的工作进度怎么办?
  • # 达梦数据库知识点
  • #HarmonyOS:Web组件的使用
  • #预处理和函数的对比以及条件编译
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • ***监测系统的构建(chkrootkit )
  • .mysql secret在哪_MySQL如何使用索引
  • .Net 4.0并行库实用性演练
  • .net Application的目录
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET下的多线程编程—1-线程机制概述
  • .net中生成excel后调整宽度
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @RequestMapping用法详解
  • @Service注解让spring找到你的Service bean