首先聲明:(僅限個人學習使用,如侵權,請通知,會刪除此貼.)
我的測試環境和工具:供參考
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:\3DMAX2014\3ds Max 2014\plugins
③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