Unity Live2D SDK的使用方法(二)——播放动画
播放動(dòng)作動(dòng)畫(huà)
Step1 認(rèn)識(shí)動(dòng)作動(dòng)畫(huà)資源
保存模型動(dòng)作信息的文件的后綴名為.mtn。是motion(動(dòng)作)的縮寫(xiě)。
將.mtn文件全都導(dǎo)入到工程文件中。
然后如同之前加載貼圖資源的操作一樣,將所有的.mtn文件修改后綴名改為.bytes。
然后在腳本中獲取這些資源。
暴露一個(gè)數(shù)組用于存儲(chǔ)所有的資源
在Unity中,將所有的資源拖入motionFiles下即可。
Step2 載入動(dòng)畫(huà)資源
將.mtn文件全都導(dǎo)入到工程文件中。
然后如同之前加載貼圖資源的操作一樣,將所有的.mtn文件修改后綴名改為.bytes。
然后在腳本中申明一個(gè)用于存儲(chǔ)所有動(dòng)畫(huà)資源的數(shù)組變量。
在Start方法中將其實(shí)例化出來(lái),并加載資源。
motions = new Live2DMotion[motionFiles.Length]; for (int i = 0; i < motions.Length; i++) {motions[i] = Live2DMotion.loadMotion(motionFiles[i].bytes); }Step3 設(shè)置動(dòng)畫(huà)管理器
3.1 第一種方法
聲明一個(gè)動(dòng)畫(huà)管理器。
private MotionQueueManager motionQueueManager;將其實(shí)例化。
motionQueueManager = new MotionQueueManager();然后就可以控制任意動(dòng)畫(huà)開(kāi)始播放。
motionQueueManager.startMotion(motions[0]);在Update方法中,必須要去更新模型,才能看見(jiàn)效果
motionQueueManager.updateParam(live2DModel);3.2 第二種方法
同樣也是聲明一個(gè)管理器,但是是另一個(gè)管理器。
private L2DMotionManager l2DMotionManager;該管理器所控制的動(dòng)畫(huà)相較于之前一種,還可以控制動(dòng)畫(huà)播放的優(yōu)先級(jí)。
同樣,將其實(shí)例化出來(lái)。
然后我們可以創(chuàng)建一個(gè)私有方法,用于判定動(dòng)畫(huà)的優(yōu)先級(jí)。
private void StartMotion(int motionIndex,int priority) {//判定想要播放的動(dòng)畫(huà)的優(yōu)先級(jí)是否大于正在播放的動(dòng)畫(huà)的優(yōu)先級(jí)if (l2DMotionManager.getCurrentPriority() >= priority){return;}l2DMotionManager.startMotion(motions[motionIndex]); }之后,調(diào)用該方法,并在調(diào)用時(shí)寫(xiě)入該動(dòng)畫(huà)的優(yōu)先級(jí),即可進(jìn)行播放。
同樣,也需要在Update方法中更新模型。
Step4 動(dòng)畫(huà)屬性的設(shè)置
motions[0].setLoopFadeIn(false);//重復(fù)播放時(shí)是否淡入,false-不淡入 motions[0].setFadeOut(1000);//設(shè)置淡出時(shí)間,參數(shù)單位為ms,默認(rèn)為1000 motions[0].setFadeIn(1000);//設(shè)置淡入時(shí)間,參數(shù)單位為ms,默認(rèn)為1000 motions[0].setLoop(true);//設(shè)置動(dòng)畫(huà)是否循環(huán)播放總結(jié)
以上是生活随笔為你收集整理的Unity Live2D SDK的使用方法(二)——播放动画的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 苹果cms怎么一键删除所有视频
- 下一篇: C#入门学习-----图书阅读器(WPF