3dsMax制作弯曲动画导入Unity后动画丢失
問題描述
上圖是在3ds中預覽的效果,可以看見對上面的平面進行了一個bend變形操作。在輸出為下圖的FBX后,發現其他動畫還保留,唯獨bend動畫丟失。
那么應該如何保留所有動畫呢?
幾種思路,一種是找到能導出導入的方法;第二種是平面動畫改成在unity實現,兩個動畫結合起來;第三種是換個平臺重新做動畫,比如catia,但是如何導出導入尚不清楚;第四種是錄屏,然后單擊事件后播放視頻。(2021/2/9發現問題)
目前的解決方式
(2021/2/28找到了解決方法)
網上下載了MegaFiers資源包,導入Unity后可對GameObject進行彎曲操作,當然還有各種其他操作,有諸多大佬講解,不在此作為重點。
將FBX文件導入到Unity,依然只有簡單地動畫而會丟失彎曲動畫。所以保留其他動畫的同時用Unity按Unity的方式建立物體和動畫。
可以添加Bend組件,接著就可以根據需求錄制動畫了。
新出現的問題
事情并沒有這么簡單。
兩組動畫的整體性
由于普通動畫和彎曲動畫是分開來做的,所以失去了整體性。
剛導入的結構基本什么組件都沒有。
可以打開這個三角
在里面找到它的動畫,直接拖到物體上。
會發現生成了Animator組件
這和Animation還是有區別的,但是我不是很清楚。
(2021/3/3撰寫)
如何控制動畫的播放
結構動畫的控制
剛導入結構時自帶的Animator,啟動后就開始播放動畫Take 001,只播一次且不受控制。目標是實現可控制的動畫播放。
嘗試了一些方法后找到一個暫時可行的。
建立一個空狀態New State,將New State與Take 001連接如圖,設置成Bool:run切換。再使用代碼控制。更詳細的教程
效果如下
平面的彎曲動畫
可以采取類似的方式控制,即用Animator控制。
所以將之前做的Animation的Legacy取消勾選,將平面的Animation組件刪除,添加Animator組件,將之前的Skin動畫添加到Animator中,其余操作類似。
也就是說用同一組代碼可以分別實現對兩者的控制。
如何同時控制
可見,如果都顯示的話使用按鈕不能實現兩組動畫的控制
原因是按鈕疊加了。結構的開始停止兩個按鈕與平面的兩個按鈕重合了,也就是運行后分別生成了兩組、四個按鈕。
如何實現一個按鈕同時控制兩組動畫
因為兩個腳本分別控制的會生成兩組按鈕,為了使用一組按鈕實現對兩個動畫的控制,需要整合到一個腳本中。
using System.Collections; using System.Collections.Generic; using UnityEngine;public class Drawtest : MonoBehaviour {private Animator animator;private Animator childanimator;private GameObject skin;private void Start(){animator = GetComponent<Animator>();skin = GameObject.Find("Plane");childanimator = skin.GetComponent<Animator>();}private void OnGUI(){if(GUILayout.Button("開始")){animator.SetBool("run", true);childanimator.SetBool("run", true);}if (GUILayout.Button("停止")){animator.SetBool("run", false);childanimator.SetBool("run", false);}} }(2021/3/5撰寫)
總結
以上是生活随笔為你收集整理的3dsMax制作弯曲动画导入Unity后动画丢失的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Flutter 中 Card 设置圆角
- 下一篇: 基于java的人力资源管理系统_基于Ja