本發(fā)明涉及動(dòng)畫(huà)控制領(lǐng)域,尤其涉及一種使用虛擬三維動(dòng)畫(huà)控制游戲機(jī)械手臂的方法。
背景技術(shù):
傳統(tǒng)控制機(jī)械手臂時(shí),會(huì)通過(guò)大量復(fù)雜的單片機(jī)嵌入式程序算法,使機(jī)械手臂運(yùn)動(dòng)平滑,手臂的運(yùn)動(dòng)軌道也是基于機(jī)械手臂的電機(jī)的旋轉(zhuǎn),具體運(yùn)動(dòng)軌跡轉(zhuǎn)化到電機(jī)的運(yùn)動(dòng)特別抽象,使最終運(yùn)動(dòng)效果特別機(jī)械和死板。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種使用虛擬三維動(dòng)畫(huà)控制游戲機(jī)械手臂的方法,包括的步驟有:
第一步,使用動(dòng)畫(huà)編輯軟件編輯手臂動(dòng)畫(huà):
遵循骨骼規(guī)律,設(shè)計(jì)游戲角色手臂關(guān)節(jié),共設(shè)計(jì)五個(gè)關(guān)節(jié),分別是腕關(guān)節(jié)、一號(hào)指關(guān)節(jié)、二號(hào)指關(guān)節(jié)、肘關(guān)節(jié)、肩關(guān)節(jié);關(guān)節(jié)滿足與機(jī)械手臂的同比尺寸,關(guān)節(jié)處可以通過(guò)動(dòng)畫(huà)編輯軟件修改歐拉角來(lái),形成整個(gè)手臂的不同姿態(tài);導(dǎo)出fbx格式文件;
第二步,解析動(dòng)畫(huà):
使用動(dòng)畫(huà)編輯軟件解析fbx格式文件中動(dòng)畫(huà)的幀率和每幀的關(guān)節(jié)的四元數(shù);
第三步,動(dòng)畫(huà)采樣和數(shù)據(jù)傳輸:
設(shè)置60Hz幀率為動(dòng)畫(huà)采樣頻率,
采樣方式,根據(jù)公式:
k=(t-t1)/(t2-t1)
Q=Q(t1)*(1-k)+k*Q(t2)
t:當(dāng)前播放時(shí)間;
t1:當(dāng)前播放位置左邊最鄰近關(guān)鍵幀時(shí)間;
t2:當(dāng)前播放位置右邊最鄰近關(guān)鍵幀;
Q:關(guān)鍵幀的四元數(shù);
Q(t1):t1時(shí)刻關(guān)鍵幀的四元數(shù);
Q(t2):t2時(shí)刻關(guān)鍵幀的四元數(shù);
將采樣數(shù)據(jù),包括當(dāng)前幀的所有關(guān)節(jié)標(biāo)識(shí)和所有關(guān)節(jié)的采樣四元數(shù),傳輸給機(jī)械手臂控制單元;
第四步,機(jī)械手臂控制單元計(jì)算歐拉角:
機(jī)械手臂控制單元接收到數(shù)據(jù)后,將根據(jù)數(shù)據(jù)和關(guān)節(jié)標(biāo)識(shí),將每個(gè)關(guān)節(jié)的四元數(shù)解算為歐拉角的翻滾角φ、俯仰角θ、航向角ψ;公式分別為:
θ=arcsin[2(wy-zx)];
w、x、y、z為四元數(shù)的四個(gè)分量;
第五步,機(jī)械手臂控制單元控制電機(jī)帶動(dòng)機(jī)械手臂:
機(jī)械手臂控制單元根據(jù)解得的歐拉角控制機(jī)械手臂的電機(jī),電機(jī)帶動(dòng)機(jī)械手臂完成指定動(dòng)作。
進(jìn)一步,所述的動(dòng)畫(huà)編輯軟件為3dmax或Maya。
進(jìn)一步,所述的第三步的數(shù)據(jù)傳輸方式為串口、網(wǎng)絡(luò)、藍(lán)牙中的一種。
本發(fā)明的有益效果是:本發(fā)明所述的一種使用虛擬三維動(dòng)畫(huà)控制游戲機(jī)械手臂的方法,操作簡(jiǎn)單,可以使機(jī)械手臂得動(dòng)作更加逼真。
附圖說(shuō)明
附圖1為所述的游戲角色手臂關(guān)節(jié)設(shè)計(jì)圖。
具體實(shí)施方式
以下將結(jié)合本發(fā)明的實(shí)施例參照附圖進(jìn)行詳細(xì)敘述。
一種使用虛擬三維動(dòng)畫(huà)控制游戲機(jī)械手臂的方法,包括的步驟有:
第一步,使用動(dòng)畫(huà)編輯軟件編輯手臂動(dòng)畫(huà):
遵循骨骼規(guī)律,設(shè)計(jì)游戲角色手臂共設(shè)計(jì)五個(gè)關(guān)節(jié),分別是腕關(guān)節(jié)1、一號(hào)指關(guān)節(jié)2、二號(hào)指關(guān)節(jié)3、肘關(guān)節(jié)4、肩關(guān)節(jié)5;關(guān)節(jié)滿足與機(jī)械手臂的同比尺寸,關(guān)節(jié)處可以通過(guò)動(dòng)畫(huà)編輯軟件修改歐拉角來(lái),形成整個(gè)手臂的不同姿態(tài);導(dǎo)出fbx格式文件;
第二步,解析動(dòng)畫(huà):
使用動(dòng)畫(huà)編輯軟件解析fbx格式文件中動(dòng)畫(huà)的幀率和每幀的關(guān)節(jié)的四元數(shù);
第三步,動(dòng)畫(huà)采樣和數(shù)據(jù)傳輸:
設(shè)置60Hz幀率為動(dòng)畫(huà)采樣頻率,
采樣方式,根據(jù)公式:
k=(t-t1)/(t2-t1)
Q=Q(t1)*(1-k)+k*Q(t2)
t:當(dāng)前播放時(shí)間;
t1:當(dāng)前播放位置左邊最鄰近關(guān)鍵幀時(shí)間;
t2:當(dāng)前播放位置右邊最鄰近關(guān)鍵幀;
Q:關(guān)鍵幀的四元數(shù);
Q(t1):t1時(shí)刻關(guān)鍵幀的四元數(shù);
Q(t2):t2時(shí)刻關(guān)鍵幀的四元數(shù);
將采樣數(shù)據(jù),包括當(dāng)前幀的所有關(guān)節(jié)標(biāo)識(shí)和所有關(guān)節(jié)的采樣四元數(shù),傳輸給機(jī)械手臂控制單元;
第四步,機(jī)械手臂控制單元計(jì)算歐拉角:
機(jī)械手臂控制單元接收到數(shù)據(jù)后,將根據(jù)數(shù)據(jù)和關(guān)節(jié)標(biāo)識(shí),將每個(gè)關(guān)節(jié)的四元數(shù)解算為歐拉角的翻滾角φ、俯仰角θ、航向角ψ;公式分別為:
θ=arcsin[2(wy-zx)];
w、x、y、z為四元數(shù)的四個(gè)分量;
第五步,機(jī)械手臂控制單元控制電機(jī)帶動(dòng)機(jī)械手臂:
機(jī)械手臂控制單元根據(jù)解得的歐拉角控制機(jī)械手臂的電機(jī),電機(jī)帶動(dòng)機(jī)械手臂完成指定動(dòng)作。
進(jìn)一步,所述的動(dòng)畫(huà)編輯軟件為3dmax或Maya。
進(jìn)一步,所述的第三步的數(shù)據(jù)傳輸方式為串口、網(wǎng)絡(luò)、藍(lán)牙中的一種。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。