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的文件名。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/705559.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一个fyne应用

第一个fyne应用 由于在写一个milvus的图形化工具&#xff0c;方便客户端使用&#xff0c;调研了一下只有这fyne的go-gui的star最多&#xff0c;比较流行&#xff0c;因此打算使用这个框架来进行milvus的工具开发。 第一个fyne应用 依赖go.mod: module fynedemogo 1.20requi…

Kafka应用Demo: 抽取消费者公共处理代码并利用redis实现多消费者实例负载分担

问题描述 在项目中使用消息中间件&#xff0c;主要为实现两个目的&#xff1a; 任务排队&#xff1a;当请求过多时&#xff0c;消费端无法同时处理&#xff0c;需要排队等待。这一点kafka采用的是"拉取消息"的模式&#xff0c;自然支持。负载分担: 这里的负载负担不…

Benedict Evans:Ways to think about AGI思考 AGI 的方法:

​Benedict Evans本文发布于2024 年 5 月 4 日 How do we think about a fundamentally unknown and unknowable risk, when the experts agree only that they have no idea? 当专家们一致认为他们一无所知时&#xff0c;我们如何看待根本上未知和不可知的风险&#xff1f; T…

JVM学习-虚拟机栈

虚拟机栈 每个线程创建时都会创建一个虚拟机栈&#xff0c;其内部保存一个个栈帧&#xff0c;对应一次次Java方法调用&#xff0c;栈是线程私有的。 生命周期: 与线程相同 作用 主管Java程序的运行&#xff0c;它保存方法的局部变量、部分结果、并参与方法的调用和返回。 …

【管理咨询宝藏104】普华永道财务管理与内控培训

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏104】普华永道财务管理与内控培训 【格式】PDF版本 【关键词】普华永道、四大、财务管理 【核心观点】 - 职能转变后&#xff0c;财务在决策支持…

亚马逊跨境电商平台优势凸显,武汉星起航解析助力卖家把握商机

在全球电商市场的激烈竞争中&#xff0c;亚马逊凭借其独特的优势和卓越的运营能力&#xff0c;成为众多卖家首选的跨境电商平台。武汉星起航作为深耕亚马逊跨境电商领域的领军企业&#xff0c;对亚马逊平台的优势有着深刻的理解和独到的见解。本文将重点探讨亚马逊跨境电商平台…

eMMC和SD模式速率介绍

概述 在实际项目开发中我们常见的问题是有人会问&#xff0c;“当前项目eMMC、SD所使用模式是什么&#xff1f; 速率是多少&#xff1f;”。这些和eMMC、SD的协议中要求的&#xff0c;要符合协议。接下来整理几张图来介绍。 eMMC 模式介绍 一般情况下我们项目中都是会支持到H…

基于SpringBoot设计模式之创建型设计模式·工厂方法模式

文章目录 介绍开始架构图样例一定义工厂定义具体工厂&#xff08;上衣、下装&#xff09;定义产品定义具体生产产品&#xff08;上衣、下装&#xff09; 测试样例 总结优点缺点与抽象工厂不同点 介绍 在 Factory Method模式中&#xff0c;父类决定实例的生成方式&#xff0c;但…

牛客NC404 最接近的K个元素【中等 二分查找+双指针 Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/b4d7edc45759453e9bc8ab71f0888e0f 知识点 二分查找&#xff1b;找到第一个大于等于x的数的位置idx;然后从idx开始往两边扩展Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、…

UnitTest / pytest 框架

文章目录 一、UnitTest框架1. TestCase使用2. TestSuite 和 TestRunner3. TestLoader4. Fixture装置5. UnitTest断言1. 登录案例 6. 参数化1. parameterized插件 7. unitTest 跳过 二、pytest 框架1. 运行方式3.读取配置文件(常用方式) 2. pytest执行用例的顺序1. 分组执行(冒烟…

ArcGIS10.X入门实战视频教程(arcgis入门到精通)

点击学习&#xff1a; ArcGIS10.X入门实战视频教程&#xff08;GIS思维&#xff09;https://edu.csdn.net/course/detail/4046?utm_sourceblog2edu 点击学习&#xff1a; ArcGIS10.X入门实战视频教程&#xff08;GIS思维&#xff09;https://edu.csdn.net/course/detail/404…

【Python从入门到进阶】54、使用Python轻松操作SQLite数据库

一、引言 1、什么是SQLite SQLite的起源可以追溯到2000年&#xff0c;由D. Richard Hipp&#xff08;理查德希普&#xff09;所创建。作为一个独立的开发者&#xff0c;Hipp在寻找一个能够在嵌入式系统中使用的轻量级数据库时&#xff0c;发现现有的解决方案要么过于庞大&…