日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

3dsMax制作弯曲动画导入Unity后动画丢失

發布時間:2024/3/7 67 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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切換。再使用代碼控制。更詳細的教程

using System.Collections; using System.Collections.Generic; using UnityEngine;/// <summary> /// /// </summary> public class Drawtest : MonoBehaviour {private Animator animator;private void Start(){animator = GetComponent<Animator>();}private void OnGUI(){if(GUILayout.Button("開始")){animator.SetBool("run", true);}if (GUILayout.Button("停止")){animator.SetBool("run", false);}} }

效果如下

平面的彎曲動畫

可以采取類似的方式控制,即用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后动画丢失的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。