zoukankan      html  css  js  c++  java
  • [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

    时间若流水,恍惚间逝去
  • 相关阅读:
    libxml2.7.8 c++ 解析xml文件
    Head First设计模式-模板方法模式
    嵌入式开发之工具移植--openssl移植
    嵌入式开发之工具移植--wpa_suppliant工具的移植和使用
    linux下嵌入式wifi开发工具移植
    IOS面试题(英文)
    机器学习学习笔记 PRML Chapter 2.0 : Prerequisite 1
    机器学习学习笔记 PRML Chapter 2.0 : Prerequisite 2 -Singular Value Decomposition (SVD)
    CCJ PRML Study Note
    CCJ PRML Study Note
  • 原文地址:https://www.cnblogs.com/alanshreck/p/13611253.html
Copyright © 2011-2022 走看看