動(dòng)畫編輯器
在三沙等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作按需制作網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),營(yíng)銷型網(wǎng)站建設(shè),外貿(mào)營(yíng)銷網(wǎng)站建設(shè),三沙網(wǎng)站建設(shè)費(fèi)用合理。1.使用編輯器來(lái)創(chuàng)建編輯動(dòng)畫
(1)創(chuàng)建一個(gè)節(jié)點(diǎn)
(2)往節(jié)點(diǎn)里添加動(dòng)畫組件cc.Animation
(3)編輯 動(dòng)畫剪輯器制作 AnimClip
動(dòng)畫剪輯就是一份動(dòng)畫的聲明數(shù)據(jù),我們將它掛在到Animation組件上
就能夠?qū)⑦@份動(dòng)畫數(shù)據(jù)應(yīng)用到節(jié)點(diǎn)上。
(4)把動(dòng)畫剪輯設(shè)置到Animtion里面去
2.動(dòng)畫編輯器的使用
然后直接點(diǎn)擊新建AnimaClip,并且保存好.
自動(dòng)生成了可訪問(wèn)的動(dòng)畫列表.這個(gè)組件可以帶多個(gè)這樣的.
把它拖動(dòng)到Default Clip就是 選擇自動(dòng)
播放或者 調(diào)用play時(shí)的Clip
Play On Load是否在運(yùn)行游戲后自動(dòng)播放默認(rèn)的動(dòng)畫Clip
Sample采樣 60就是一秒鐘的幀數(shù)
那這樣的話 他要1秒鐘才能執(zhí)行完 60幀
如果改成30 那他這個(gè)1秒鐘 就是30幀
Speed 播放速度,大于1加快,小魚1變慢
wrapMode是播放模式
3.動(dòng)畫編輯器的原理
(1)在不同的時(shí)刻可以調(diào)整節(jié)點(diǎn)以及孩子節(jié)點(diǎn)的不同屬性的值,
然后創(chuàng)建出補(bǔ)間動(dòng)畫:
假如我們有一個(gè)物體要從A點(diǎn)移動(dòng)到B點(diǎn),我們?cè)陂_(kāi)始的
時(shí)間插入給個(gè)位置,在結(jié)束的時(shí)間插入給個(gè)位置.
動(dòng)畫編輯器就會(huì)自動(dòng)的補(bǔ)間這段距離 動(dòng)畫.
(2)節(jié)點(diǎn)條動(dòng)畫的屬性:
位置,縮放,旋轉(zhuǎn),大小,顏色,透明度,錨點(diǎn),扭曲.
假如我們要這個(gè)紅色的塊 從A到B, 在1秒鐘內(nèi)
選擇要編輯的點(diǎn)擊Add property添加屬性
a添加一個(gè)position屬性
b在0.00幀 插入一個(gè)位置屬性
c拖動(dòng)到你想要結(jié)束的時(shí)間,然后在添加一個(gè)位置屬性
d 拖動(dòng)這個(gè)節(jié)點(diǎn) 有一個(gè)虛線
e這藍(lán)色的就是動(dòng)畫編輯器自動(dòng)補(bǔ)間動(dòng)畫
f拖動(dòng)時(shí)間軸 就能看到動(dòng)畫了
透明度屬性怎么用呢?還是一樣在開(kāi)始和結(jié)束位置插入屬性
他就生成補(bǔ)間動(dòng)畫。
在對(duì)應(yīng)的結(jié)束時(shí)間軸 可視化的改變屬性即可
4.wrapMode來(lái)選擇播放模式
(1)Loop 不停循環(huán)的執(zhí)行這個(gè)動(dòng)畫
(2)PingPong 循環(huán) 順著播一次 反著播一次
(3)Reverse 反著播一次
(4)LoopReverse 循環(huán)的反著播放
(5)PingPongReverse 循環(huán) 先反著播 然后順著播
5.補(bǔ)間動(dòng)畫是可以 調(diào)整的
點(diǎn)擊一下虛線他就變粗了
然后再點(diǎn)擊一下就有一個(gè)編輯拖拽的點(diǎn) 這樣就能編輯曲線了
6.幀動(dòng)畫 SpriteFrame
由一張一張的精靈組成動(dòng)畫
直接拖動(dòng)精靈幀會(huì)自動(dòng)生成節(jié)點(diǎn)并且?guī)в芯`組件
選擇這個(gè)節(jié)點(diǎn) 第一個(gè)幀我們要插上這個(gè)圖的屬性
選擇spriteFrame
添加關(guān)鍵幀
拖動(dòng)在修改一個(gè)
點(diǎn)擊對(duì)應(yīng)的 然后修改你要顯示的精靈幀 就OK啦
7.Animation組件 在代碼中使用
首先第一步你還是要獲得這個(gè)組價(jià),用編輯器關(guān)聯(lián)或者代碼獲取。
onLoad :function() { //獲取掛在Animation組件的節(jié)點(diǎn) 并獲取動(dòng)畫組件 this.anim = this.node.getChildByName("anim") .getComponent(cc.Animation);Animation 重要屬性:
(1)defaultClip:默認(rèn)的動(dòng)畫剪輯
(2)currentClip:當(dāng)前播放的動(dòng)畫剪輯
Animation組件主要方法:
(1)play([name,[start_time]]),播放指定的動(dòng)畫,如果沒(méi)有指定就播放
默認(rèn)的動(dòng)畫.
name就是這個(gè)
start_time 就是從哪個(gè)時(shí)間開(kāi)始 默認(rèn)是0
返回AnimationState
start: function() { //開(kāi)始時(shí)間 默認(rèn)就是從0開(kāi)始 this.anim.play("anim_class"); }, 如果不指定名字 那么他 使用默認(rèn)的 AnimaClip start: function() { //開(kāi)始時(shí)間 默認(rèn)就是從0開(kāi)始 this.anim.play(); },(2)playAdditive 和play一樣,(不會(huì)停止當(dāng)前播放的動(dòng)畫)
如果沒(méi)有指定動(dòng)畫, 則播放默認(rèn)動(dòng)畫.
(3)stop(name)停止 指定的動(dòng)畫,
如果沒(méi)指定名字就停止當(dāng)前播放的動(dòng)畫.
pause/resume: 暫停和喚醒動(dòng)畫.
(4)getClips:返回?cái)?shù)組里帶的AnimationClip數(shù)組
//獲取數(shù)組、組輸出名字 var clps = new cc.AnimationClip(); clps = this.anim.getClips(); for(var i=0;i
Animation 播放事件:
play:開(kāi)始播放 stop;停止播放 pause:暫停播放時(shí) resume:恢復(fù)播放時(shí)
lastframe:假如動(dòng)畫循環(huán)次數(shù)大于1,當(dāng)動(dòng)畫播放到最好一幀時(shí)
finished:動(dòng)畫播放完成時(shí)
//監(jiān)聽(tīng)動(dòng)畫事件 第一個(gè)參數(shù)就是事件類型 this.anim.on("play",function(){console.log("開(kāi)始播放")}.bind(this));8.在動(dòng)畫里觸發(fā)代碼
(1)插入一個(gè)事件到動(dòng)畫里
(2)編輯這個(gè)時(shí)間觸發(fā)的函數(shù)
(3)遍歷當(dāng)前動(dòng)畫組件所掛節(jié)點(diǎn)上的所有腳本,根據(jù)這個(gè)名字來(lái)觸發(fā)函數(shù)
首先選擇事件 然后點(diǎn)擊添加事件 然后出現(xiàn)一個(gè)小白塊 雙擊打開(kāi)
寫函數(shù)名 然后如果有參數(shù) 就手動(dòng)添加就行
類型也是可選的
這個(gè)函數(shù)的名稱是這個(gè)動(dòng)畫組件所掛的節(jié)點(diǎn)上的,
任意組件的代碼接口. 這時(shí)候你這個(gè)動(dòng)畫組件掛的節(jié)點(diǎn)
必須有個(gè)腳本組件,里面有這個(gè)處理函數(shù)才行了
骨骼動(dòng)畫
spine骨骼動(dòng)畫工具
1:骨骼動(dòng)畫:把動(dòng)畫打散,通過(guò)工具,調(diào)骨骼的運(yùn)動(dòng)來(lái)形成動(dòng)畫
2:spine是一個(gè)非常流行的2D骨骼動(dòng)畫制作工具 由專業(yè)美術(shù)人員制作
3:spine 導(dǎo)入3個(gè)文件
(1)png文件 :動(dòng)畫的"骨骼"的圖片集
(2)atlas文件 每個(gè)骨骼在圖片集里面的位置,大小.
(3)json文件:骨骼動(dòng)畫的anim控制文件,以及骨骼位置信息等
這個(gè)文件在cocos 目錄下 tests\cpp-tests
4.使用骨骼動(dòng)畫 只要直接拖動(dòng)到場(chǎng)景或者添加一個(gè)空節(jié)點(diǎn)添加骨骼動(dòng)畫組件
為什么使用骨骼動(dòng)畫呢?
如果一個(gè)動(dòng)畫每一幀都做成一個(gè)精靈,那這樣就會(huì)比較占資源.
那比如一個(gè)角色他行走的動(dòng)畫是固定的,我們把他的手腳身體拆出來(lái),
使用工具讓他在播動(dòng)畫的時(shí)候,每個(gè)手腳的位置都編輯好,這樣的話
我們用一張圖資源的情況下, 可以做出動(dòng)畫,這樣做就比較節(jié)省資源.
Animation:選擇默認(rèn)播放的動(dòng)畫
Loop是否循環(huán)播放
Premultiplied Alpha 是否啟用貼圖預(yù)乘
關(guān)閉 啟用
Debug Bones 顯示骨骼
5.sp.Skeleton
1:sp.Skeleton:控制面板屬性
Skeleton Data:骨骼的控制文件 json文件
Default Skin:默認(rèn)皮膚
Animation:正在播放的動(dòng)畫
Loop:是否循環(huán)播放
Permnliplied Alpha是否啟用貼圖預(yù)乘
TimeScale:播放動(dòng)畫的事件比例系數(shù) 值越大 播放速度越快
Debug Slots:是否顯示Slots調(diào)試信息
Debug Bone: 是否顯示Bone調(diào)試信息
2.sp.Skeleton:重要方法:Skeleton是以管道的模式來(lái)播放動(dòng)畫,
管道用整數(shù)編號(hào),管道可獨(dú)立播放動(dòng)畫 Track
(1)clearTrack(trackIndex);清理對(duì)應(yīng)Track的動(dòng)畫
(2)clearTracks(); 清楚所有Track動(dòng)畫
(3)setAnimation(trackIndex,"動(dòng)畫名字",is_loop)
清楚管道所有動(dòng)畫,再重新播放
(4)addAnimation(trackIndex,"動(dòng)畫名",is_loop);往管道添加一個(gè)動(dòng)畫
6.再代碼里使用動(dòng)畫
首先還是要獲得骨骼組件 然后創(chuàng)建3個(gè)按鈕讓他出現(xiàn)不同的狀態(tài)、
比如說(shuō) 跑 跳躍 開(kāi)槍
直接把他綁定到 組件上
給3個(gè)按鈕綁定事件 并設(shè)置播放動(dòng)畫
cc.Class({ extends: cc.Component, properties: { ske_anim: { type: sp.Skeleton, default: null, }, }, onLoad: function(){ //再這里就有一個(gè)類似隊(duì)列的東西 來(lái)播放動(dòng)畫 //如果往隊(duì)列管道里添加幾個(gè)動(dòng)畫,他會(huì)順序播放 //播放入場(chǎng)動(dòng)畫 this.ske_anim.setAnimation(0,"walk",true); this.ske_inedx = 1; }, //跑 anim_run:function(){ //清理動(dòng)畫播放管道,管道是用索引來(lái)表示的 //this.ske_anim.clearTracks();//清理所有播放管道的動(dòng)畫 //this.ske_anim.clearTrack(0);//按照索引來(lái)清理掉 this.ske_anim.clearTrack(0); //將要播放的動(dòng)畫 設(shè)置進(jìn)去 //這里會(huì)把管道清空 //第一個(gè)參數(shù)是管道索引 第二個(gè)是動(dòng)畫名字 第三是否循環(huán) this.ske_anim.setAnimation(0,"run",false); //播放完后 繼續(xù)播放走的 動(dòng)畫 //將這個(gè)動(dòng)畫以排隊(duì)的方式假如到管道 this.ske_anim.addAnimation(0,"walk",true); }, //跳 anim_jump:function(){ this.ske_anim.clearTrack(0); this.ske_anim.setAnimation(0,"jump",false); his.ske_anim.addAnimation(0,"test",true); }, //射擊 anim_shoot:function(){ this.ske_anim.clearTrack(0); this.ske_anim.setAnimation(0,"shoot",false); his.ske_anim.addAnimation(0,"run",true); }, });7.動(dòng)畫監(jiān)聽(tīng)事件
setStartListener:設(shè)置動(dòng)畫開(kāi)始播放的事件
setEndListener:設(shè)置動(dòng)畫播放完成會(huì)后的事件
setCompleteListener:設(shè)置播放一次循環(huán)結(jié)束后的事件
this.ske_anim.setStartListener(function(){ console.log("開(kāi)始播放"); }); this.ske_anim.setCompleteListener(function(){ console.log("播放完成"); });另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。