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

u3d的ab文件注意事项

//----------------LoadAllAB.cs---------------------

using System.Collections;using UnityEngine;namespace System.IO{public class LoadAllAB : MonoBehaviour{    //读取本地string path = "Assets/Actors/lznh/ab/animation/t_bl/";// Use this for initializationvoid Start(){//开始罗列目录内的文件if (Directory.Exists(path)){DirectoryInfo directoryInfo = new DirectoryInfo(path);FileInfo[] fileInfos = directoryInfo.GetFiles("*", SearchOption.AllDirectories);// Debug.Log(fileInfos.Length);for (int i = 0; i < fileInfos.Length;i++ ){if (fileInfos[i].Name.EndsWith(".meta")){continue;}// Debug.Log("Name:" + fileInfos[i].Name);//开始读取目录内的文件AssetBundle ab = AssetBundle.LoadFromFile(path + "/" + fileInfos[i].Name);// 遍历所有object模型object[] objs = ab.LoadAllAssets();//遍历所有UnityEngine.Object模型//UnityEngine.Object [] objs = ab.LoadAllAssets();//遍历所有模型foreach (UnityEngine.Object obj in objs){//  输出所有模型Instantiate(obj);}}}}}}


//----------------BuildAB.cs--------------------------

using System.IO;using UnityEditor;using UnityEngine;public class BuildAB : MonoBehaviour{//[MenuItem("AssetBundle/Package (Default)")][MenuItem("Assets/Build AssetBundles")]static void BuildAllAssetBundles(){string assetBundleDirectory = "Assets/AssetBundles";if (!Directory.Exists(assetBundleDirectory)){Directory.CreateDirectory(assetBundleDirectory);}BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.None, BuildTarget.StandaloneWindows);}}

-------------虚幻四使用的步骤-------------------
u3d导出ab包,输出skin蒙皮fbx。
首先我们使用LoadAllAB.cs导入所有的ab包,然后使用u3d自带的fbxExporter导出带skin蒙皮权重的fbx文件,注意一定要勾选导出skin蒙皮。
Tfbx的根骨骼要用原来夜神里面的角色资源名称。因为后续动作文件的根也是这个名字,去掉(clone)这部分。确认和skin名字不重复。

ab文件在u3d成功导入后的fbx时候,(我们叫它”Tpose的fbx“,简称Tfbx),在hierarchy改根骨骼为夜深模拟器里的角色资源码,比如M110005,生成Tfbx后再改为本身的文件名。这样,根骨骼都为M110005了,确认和skin名字不重复。

导入虚幻四才不会报错。
多组件身体部位的skin导入及合并。
如果碰到的是身体分组件,比如头肩,手,身,腿,脚。这种的,在第一次导入fbx的时候选择把所有骨骼都转为dummy物体,然后另存为max文件,然后再把这些max文件合并成一个文件,选择删除旧的重名物体,这样,所有的组件的skin都公用一个dummy的骨骼树了,再次输出为把dummy转换为bone骨骼)
Tfbx在u3d中生成ab文件,得到animator动画控制器,和动作片段一起输出Afbx文件。

然后这个Tfbx生成的预制体prefabs直接改ab名字,生成新的带animator的ab文件,改名为M110005,和动作片段animationClip的ab文件一起选择用assectsStudio导出动作Afbx文件。这个根骨骼是以新带animator的ab文件名命名的(因为目前还没有直接读取ab文件里的动画能力)
存在Tfbx和Afbx得尺寸不一样得情况。

看具体情况,有可能这个Tfbx的比例可能比动画Afbx文件的大100倍。所以要缩小为1%。才和动画文件Afbx一致,有点坑。

所以在虚幻四里导入动作文件要放大100倍。或者Tfbx文件缩小100倍。

---------u3d使用的步骤-----------------------

而在u3d中使用就很简单了,因为所有u3d的角色的根骨骼都是用文件名为根,所以不存在root根骨骼名不一致问题。也就不存在和skin蒙皮模型文件名一样导致出错。

而且这个skin在不同动画文件里不一样都没关系!它只要层级和主骨骼树(也就是cs的骨骼链)一致就行,骨骼树一致的就可以映射到动作,不一致的就不能映射到动作。

所以只需要加载几个不同的动画Afbx,加载第一个Afbx的模型。其他Afbx的动作,根本不再需要Tfbx了。

以下是动画映射成功的两个文件,Tfbx的mesh和bip_body一级,父级是bp_root
 


动画Afbx是mesh和bp_root一级,父级是Tfbx的文件名。

相关文章:

u3d的ab文件注意事项

//----------------LoadAllAB.cs--------------------- using System.Collections;using UnityEngine;namespace System.IO{public class LoadAllAB : MonoBehaviour{ //读取本地string path "Assets/Actors/lznh/ab/animation/t_bl/";// Use this for initiali…...

Go微服务开源框架kratos的依赖注入关系总结

该文章为学习开源微服务框架kratos的学习笔记&#xff01;官方文档见&#xff1a;简介 | Kratos Kratos 一套轻量级 Go 微服务框架&#xff0c;包含大量微服务相关框架及工具。 一、Kratos 项目结构简介 通过 Kratos 工具生成的 Go工程化项目模板如下&#xff1a; applicati…...

Linux 第三十二章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…...

手机号码的正则表达式

手机号码的正则表达式会根据不同的国家/地区有所不同&#xff0c;因为每个国家/地区都有自己特定的手机号码格式。但是&#xff0c;我可以为你提供一个通用的正则表达式模板&#xff0c;并给出一些具体国家/地区的例子。 通用模板 一个基本的手机号码正则表达式模板可能如下所…...

机器学习入门介绍

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 目录 三大方向机器学习产生的原因机器如何学习…...

一文说通用户故事点数是什么?

一文说通用户故事点数是什么&#xff1f; 第26期&#xff1a;一文说通用户故事点数是什么&#xff1f; 用户故事点数是一种采用相对估算法进行估算的一种工具&#xff0c;一般采用斐波那契数列表征用户故事里说的大小&#xff0c;采用0 1 2 3 5 8 13这样的一些数字来表征用户…...

GAME101-Lecture07学习

前言 今天主要讲shading&#xff08;着色&#xff09;。在讲着色前&#xff0c;要先讲图形中三角形出现遮挡问题的方法&#xff08;深度缓存或缓冲&#xff09;。 先采样再模糊错误&#xff1a;对信号的频谱进行翻译&#xff08;在这期间会有频谱的混叠&#xff09;&#xff…...

【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”

看到这句话的时候证明&#xff1a;此刻你我都在努力~ 加油陌生人~ 个人主页&#xff1a; Gu Gu Study ​​ 专栏&#xff1a;一步一步了解Java 喜欢的一句话&#xff1a; 常常会回顾努力的自己&#xff0c;所以要为自己的努…...

ICSE docker related research

ICSE 2024 Empirical Study of the Docker Smells Impact on the Image Size Docker 气味对镜像大小影响的实证研究 Docker 是一种广泛采用的打包和部署应用程序的工具&#xff0c;它利用 Dockerfile 来构建镜像。然而&#xff0c;创建最佳的 Dockerfile 可能具有挑战性&…...

【C++】学习笔记——多态_1

文章目录 十二、继承8. 继承和组合 十三、多态1. 多态的概念2. 多态的定义和实现虚函数重写的两个特殊情况override 和 final 3. 多态的原理1. 虚函数表 未完待续 十二、继承 8. 继承和组合 我们已经知道了什么是继承&#xff0c;那组合又是什么&#xff1f;下面这种情况就是…...

C++map容器关联式容器

Cmap 1. 关联式容器 vector、list、deque、forward_list(C11)等STL容器&#xff0c;其底层为线性序列的数据结构&#xff0c;里面存储的是元素本身&#xff0c;这样的容器被统称为序列式容器。而map、set是一种关联式容器&#xff0c;关联式容器也是用来存储数据的&#xff0…...

TS-抽象类和静态成员

目录 1&#xff0c;抽象类1&#xff0c;为什么需要抽象类2&#xff0c;抽象成员3&#xff0c;设计模式-模板模式 2&#xff0c;静态成员1&#xff0c;什么是静态成员2&#xff0c;设计模式-单例模式 1&#xff0c;抽象类 1&#xff0c;为什么需要抽象类 有时&#xff0c;某个…...

SharePoint 使用renderListDataAsStream方法查询list超过5000时的数据

问题&#xff1a; 当SharePoint List里的数据超过5000时&#xff0c;如果使用常用的rest api去获取数据&#xff0c;例如 await this.sp.web.lists.getByTitle(Document Library).rootFolder.files.select(*, listItemAllFields).expand(listItemAllFields).filter(listItemA…...

2024042001-计算机网络 - 物理层

计算机网络 - 物理层 计算机网络 - 物理层 通信方式带通调制 通信方式 根据信息在传输线上的传送方向&#xff0c;分为以下三种通信方式&#xff1a; 单工通信&#xff1a;单向传输半双工通信&#xff1a;双向交替传输全双工通信&#xff1a;双向同时传输 带通调制 模拟信号…...

通过java将数据导出为PDF,包扣合并单元格操作

最近项目中需要将查询出来的表格数据以PDF形式导出&#xff0c;并且表格的形式包含横向行与纵向列的单元格合并操作&#xff0c;导出的最终效果如图所示&#xff1a; 首先引入操作依赖 <!--导出pdf所需包--><dependency><groupId>com.itextpdf</groupId&…...

Java内存模式以及volatile关键字的使用

1.Java内存模型 &#xff08;1&#xff09;Java 内存模型&#xff08;Java Memory Model&#xff0c;简称 JMM&#xff09;&#xff0c;它是一个抽象的概念&#xff0c;JMM是和多线程相关的&#xff0c;它是一组规范&#xff0c;描述了一组规则&#xff0c;定义了多线程对共享…...

每日5题Day3 - LeetCode 11 - 15

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;11. 盛最多水的容器 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int maxArea(int[] height) {//这道题比较特殊&#xff0c;因为两边是任意…...

路由器、交换机和网卡

大家使用VMware安装镜像之后&#xff0c;是不是都会考虑虚拟机的镜像系统怎么连上网的&#xff0c;它的连接方式是什么&#xff0c;它ip是什么&#xff1f; 路由器、交换机和网卡 1.路由器 一般有几个功能&#xff0c;第一个是网关、第二个是扩展有线网络端口、第三个是WiFi功…...

腾讯开源混元DiT文生图模型,消费级单卡可推理

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接…...

shell脚本基础(if/else结构)

命令是双向选择语句&#xff0c;当用户执行脚本时如果不满足if后的表达式也会执行else后的命令&#xff0c;所以有很好的交互性。其结构为&#xff1a; if expression1 then command … command else command … command fi vim ifelse_exam.sh #ifelse_exam.sh #!/bin/bashec…...

5大核心功能解密:douyin-downloader抖音下载器实战指南

5大核心功能解密&#xff1a;douyin-downloader抖音下载器实战指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp…...

中山专用展示柜灯具,打造完美商品展示效果

在灯具销售领域&#xff0c;商品展示效果的好坏直接影响着销售业绩。一个好的展示柜不仅能保护灯具&#xff0c;更能通过巧妙的设计和布局&#xff0c;将灯具的优点充分展现出来&#xff0c;吸引顾客的目光。而中山作为中国著名的灯饰之都&#xff0c;其专用展示柜灯具更是有着…...

千问3.5-2B镜像免配置优势解析:supervisor自恢复+健康检查+7860端口标准化

千问3.5-2B镜像免配置优势解析&#xff1a;supervisor自恢复健康检查7860端口标准化 1. 千问3.5-2B镜像核心价值 千问3.5-2B是Qwen系列的小型视觉语言模型&#xff0c;专为图片理解与文本生成任务优化设计。这个开箱即用的镜像解决了传统AI模型部署中最让人头疼的三个问题&am…...

Meta2d.js完整指南:5步掌握专业级2D可视化引擎开发

Meta2d.js完整指南&#xff1a;5步掌握专业级2D可视化引擎开发 【免费下载链接】meta2d.js The meta2d.js is real-time data exchange and interactive web 2D engine. Developers are able to build Web SCADA, IoT, Digital twins and so on. Meta2d.js是一个实时数据响应和…...

忍者像素绘卷微信小程序开发:生成图水印添加与版权保护机制实现

忍者像素绘卷微信小程序开发&#xff1a;生成图水印添加与版权保护机制实现 1. 项目背景与需求分析 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站&#xff0c;它融合了忍者文化与16-Bit复古游戏美学&#xff0c;为用户提供独特的创作体验。随着用户生成内容…...

Port-Hamiltonian建模在ROS2中的实战:用Python实现双机器人能量交换仿真

Port-Hamiltonian建模在ROS2中的实战&#xff1a;用Python实现双机器人能量交换仿真 当两个机器人在协作搬运物体时&#xff0c;它们的能量如何通过接触点传递&#xff1f;当一群无人机编队飞行时&#xff0c;如何数学描述它们之间无形的能量交互&#xff1f;这正是Port-Hamilt…...

Pylint魔法方法验证:10个技巧确保特殊方法符合Python规范的终极指南

Pylint魔法方法验证&#xff1a;10个技巧确保特殊方法符合Python规范的终极指南 【免费下载链接】pylint Its not just a linter that annoys you! 项目地址: https://gitcode.com/gh_mirrors/pyl/pylint Python开发者们&#xff0c;你是否曾为魔法方法&#xff08;dund…...

SP140 ESC遥测驱动库:曼彻斯特编码与单线UART嵌入式解析

1. OpenPPG_SP140_ESC 库深度解析&#xff1a;面向电动动力系统的嵌入式ESC遥测驱动开发指南1.1 项目定位与工程价值OpenPPG_SP140_ESC 是一个专为 SP140 电子调速器&#xff08;ESC&#xff09;设计的 Arduino 兼容库&#xff0c;其核心价值不在于通用电机控制&#xff0c;而在…...

VSCode插件离线安装的隐藏技巧:如何批量安装.vsix文件提升效率

VSCode插件离线批量安装实战指南&#xff1a;企业级效率提升方案 在团队协作或企业内网环境中&#xff0c;开发者常面临VSCode插件安装的困境——无法访问官方市场、重复下载耗时、版本管理混乱。传统单个.vsix文件安装方式在需要部署数十个插件时&#xff0c;效率低下到令人抓…...

什么是GEO优化(生成式引擎优化)?一文讲透

# 什么是GEO优化&#xff08;生成式引擎优化&#xff09;&#xff1f;一文讲透GEO优化即生成式引擎优化&#xff0c;是面向豆包等AI大模型平台的新型营销优化方式&#xff0c;是AI时代企业抢占流量新入口的核心营销手段。沈阳锦恒智联信息科技有限公司是辽宁本地专业的GEO优化服…...