[Unity3D] 如何将飞飞游戏资源提取并加载到uinty3d中

首先声明:(仅限个人学习使用,如侵权,请通知,会删除此贴.)

 我的测试环境和工具:供参考

      Atools

      3dsmax 2014

      unity3d 2019.3

      台服飞飞客户端(2020年8月下的,没玩过几天号就封了233,大概猜测v20或v21版本),

前言,

从国外飞飞论坛了解到

可以用unity里的资源管理类加载自定义文件格式并转换(AssetPostprocessor类)...不太懂,有技术的大佬可以搞一下.

如果你跟我一样是小白,往下看吧.

放一张国外大佬重置飞飞Uinty版 FlyFF For Uinty3D 

羡慕啊,学习吧...

第一步:准备工具

  ①:Atools   

     法国大佬开发的,不过现在github都被删了,你懂的...

      (飞飞素材编辑器.能编辑地形,模型,UI等,也可输出obj,dae,ani,飞飞三大主要文件:.o3d模型,.chr骨骼,.ani动作动画,当然还有dds材质) 

      使用方法:

      将atools解压到台服飞飞或任意飞飞客户端目录即可   

      链接:https://pan.baidu.com/s/1mDJEai_Q69thVTgbPr6lWQ
      提取码:p42b

  ②3DSMAX

    (用于将Atools导出的.dae格式文件转化为fbx文件,dae文件没有dds纹理素材,需要手动拖入)

    当然你得需要dae导入插件:

    根据自己的版本下载对应版本插件即可

    选择Release_开头的

    感谢@iblackly 大佬寻找的全系列(maya,3dsmax全版本)dae导入插件,可比某cxdn收费的全多了,而且还免费!

    地址连接:

      下载地址

    插件安装位置:

    D:3DMAX20143ds Max 2014plugins

    

  Unity3D任意版本(使用Chan模型请使用2018以上)

    ④飞飞客户端

    建议使用v15版本纯净客户端或v15纯净服务端,因为Atools开发大佬据说是用的v15服务端做的依托,生成的编辑工具

    其他版本的服务端或客户端也可以提取,只是报错当当当较多,所以我们以报错少的端为主,所以自己试吧

    找不到没关系,台服飞飞也没问题,报错较少

  

第二步:转换格式

  ①查找模型与导出模型dae

  打开客户端的目录  或 服务端的/Resource文件夹将Atools工具里的所有文件扔进去

  下图为Atools解压后的所有文件

  扔进去后,在客户端或服务端根目录中打开ModelEditor.exe,会当当当的弹错,确定即可,不影响使用

  打开后是这样的↓

  

  然后点击软件的左上角file→open找到你的客户端或服务端的model文件夹里的任意o3d模型

  

 打开之后按照下方箭头操作,(下图的√选项,Refleot反射及以下属性自己勾上点确定可以看到效果,自己选择要不要勾选,并不影响导出效果)

 还有右侧的动作任意一个双击播放动作

   目前只研究到每次保存一个动作和模型,所以你选择什么动作,保存后就是什么动作

 

设置完成后,点击file→save保存到一个任意位置,比如桌面

选择3dfile名称改为xxx.dae保存

②导入3DSMAX

首先打开3dsmax,确保你已经装了fbx导入插件和dae导入插件

先打开3DSMAX

将dae文件推入3dsmax,注意是拖入不是导入,此时会弹出一个选择框

第一个是fbx导入插件,装了才会有

第二个是dae导入插件,装了才会有(请看前言,有下载地址)

如果你是跟我一样的3DSMAX2014使用第二个有时会闪退,你可以使用第一个模式即可

此时的模型拥有骨骼和你刚才选中的一个动画,点播放可以查看

但是动画播放不正常,因为模型动画是50帧,而3DSMAX是100帧,需要更改一下

具体按照下方数字操作...

1打开曲线编辑器

2全选模型

3可以看到动画帧率

4点击时间配置

5修改结束时间为你的动画总长,确定即可

这里忘记说了,记得导出时勾选嵌入的媒体!!!

②导入贴图dds

选中模型,将客户端或服务端model中查找到的相同名称的dds拖入模型上即可拥有贴图

示例:在客户端或服务端model目录搜索你的模型名称就能搜到相同名称的dds贴图

③导出为fbx模型

注意类型选择FBX格式

第三步:导入unity

  将FBX模型拖入Assets文件夹(666就是我导出的模型文件)

  

  此时可以将模型666直接拖入scene场景中

  修改一下scale不然看不见特别小

  

  但是黑乎乎的看不到材质,此时我们需要修改下预制件的属性

  我也不是很懂这个shader,我把uinty自带的shader试了个便都不能看清楚模型

  于是我去商店下了个chan模型,因为她的shader可以使飞飞模型显示出来,网上搜了一下好像是说没有双面渲染导致的...

  下载完之后导入即可,当然如果你有更好的解决方案,记得告诉我一下...

  

  导入之后我们选择刚才导入的飞飞模型,点开名称选择骨骼找到shader选择chan的选择双面渲染Clothing double sided

  此时你会发现模型变得高亮且清晰不在透明.完美~

  

 第四步:创建动画控制器并添加动画

  ①创建动画控制器Animator controller

  右键Assest→create→Animator controller

  

  ②给游戏对象添加Animator动画播放组件

  

  

  添加完Animator后将刚才创建的动画控制器扔进Controller中

  然后双击打开动画控制器添加新状态

  

  点击新创建的状态修改名称和关联动作

  

所有操作完成,接下来我们看一下动态效果GIF吧

希望可以帮助到想提取飞飞模型的朋友们.

  

2020年9月6日修改

-如果想要同一个模型的多个动作怎么办?

  那就多提取几次,然后导入unity,

  点击新导入的模型,点击新动作 按 Ctrl+D 即可分离动作

关于使用Chan的Shader导致模型颜色失真过于艳丽的解决方案

从网上找到一个大佬写的文章,大家可以去看一下文章并复制下shader

在这里感谢一下大佬的shader,很好用~

-怎么使用Shader代码?

  Assest文件夹右键create→Shader

  创建完成后改下名称,然后双击打开文件,将大佬写的代码复制进去,

  修改下名称和你的文件名一致即可

  选中模型后找到shader选择刚才创建的shader

  最后修改途中四张贴图为你的模型贴图就大功告成了!

  

原来使用chan的双面渲染shader图

改成文中大佬的shader后,颜色失真问题完美解决,请忽略后面乱飞的HPMP和线条...

2020年9月12日更新

导出的模型可能存在的问题

1动画播放时位置发生偏移(坐标发生改变)

2动作异常(模型动作怪异等)

暂时发现这两个问题

解决方法:

导入3DMAX时将坐标XY都归零(这很重要,Z轴不需要变化,因为它负责上下移动)

如图:

选中物体,坐标XY轴输入0即可

然后导入unity后将以下两点按照图里对应设置

Rig里将Animation Type 选择为 Gencric通用模式 点 Applay应用

点Animation 将 Anim.Compression 压缩模式改为Off 关闭优化 应用

2020年9月17日更新问题

①导入3DMAX坐标XY归0时可能会出现两个模型(一个模型,一个阴影全黑)

这个时候删除黑色阴影模型,在手动将模型对其0位置,此时你不能输入0X 0Y 会出现偏移,因为归零只能将阴影归零

不建议删除黑色阴影模型,因为删除后导出会丢失MeshCollider,请自行选择是否删除

coll就是MeshCollider,抖动隐藏它就行了

②模型导入unity后可能会出现抖动现象

请看此贴:https://www.cnblogs.com/alanshreck/p/13684392.html

还有如果像完全恢复模型的色彩与外观跳过,请见shader修改为sprites/Default即可,

当然有的模型会出现看不到正面脸的问题,那只能切换到双面渲染shader了...除非你自己会写shader

时间若流水,恍惚间逝去
原文地址:https://www.cnblogs.com/alanshreck/p/13611253.html