3d游戲中鞭子系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及視頻圖像處理技術(shù),尤其涉及一種3D游戲中鞭子系統(tǒng)的制作方法。
【背景技術(shù)】
[0002] 現(xiàn)有3D游戲中,鞭子是游戲角色經(jīng)常使用的武器,而做為柔軟的武器鞭子,在3D 游戲制作時,一般都是由美術(shù)預(yù)先根據(jù)技能動作制作固定的鞭子動畫。但是,由于鞭子動畫 都是與角色技能動作匹配的,角色有多少種鞭子技能,就要制作多少種相應(yīng)的鞭子動作,這 無疑增加了美術(shù)的工作量,不夠靈活。
[0003] 本發(fā)明從力學(xué)的角度去模擬鞭子的物理運動過程,從而實現(xiàn)可供3D游戲直接使 用的帶物理運動的實時程序化鞭子系統(tǒng)。
【發(fā)明內(nèi)容】
[0004] 為了解決現(xiàn)有技術(shù)存在的不足,本發(fā)明的目的在于提供一種3D游戲中鞭子系統(tǒng) 的制作方法,從力學(xué)的角度去模擬鞭子的物理運動過程,從而實現(xiàn)帶物理運動的實時程序 化鞭子系統(tǒng),供3D游戲直接使用。
[0005] 為實現(xiàn)上述目的,本發(fā)明提供的3D游戲中鞭子系統(tǒng)的制作方法,包括以下步驟:
[0006] 1)將創(chuàng)建的多根骨骼首尾相連,并獲取骨骼的運動基礎(chǔ)數(shù)據(jù);
[0007] 2)在運動過程中,對每根骨骼進行單獨的受力分析,更新速度和加速度的信息;
[0008] 3)獲取骨骼的位置信息,修正鞭子的形狀和位置。
[0009] 進一步地,步驟1)所述的骨骼的運動基礎(chǔ)數(shù)據(jù)包括:當(dāng)前骨骼的位置、與當(dāng)前骨 骼相連的下根骨骼的位置、當(dāng)前骨骼所在位置所對應(yīng)的地面的高度、當(dāng)前骨骼的旋轉(zhuǎn)角度、 當(dāng)前骨骼相對于上一根骨骼角度的改變值,以及當(dāng)前骨骼的旋轉(zhuǎn)的角速度。
[0010] 進一步地,所述步驟2)是對每根骨骼的受力大小、加速度、速度、時間,以及角度 信息進行受力分析,并進行更新。
[0011] 進一步地,步驟3)所述獲取骨骼的位置信息,是根據(jù)當(dāng)前骨骼的角度、速度和加 速度,獲取與當(dāng)前骨骼相連的下一根骨骼相對于當(dāng)前骨骼的方向向量、下一根骨骼的位置, 以及下一根骨骼在世界坐標(biāo)系中的位置。
[0012] 更進一步地,步驟3)所述修正鞭子的形狀和位置是根據(jù)每一根骨骼與地面的碰 撞反饋修正鞭子的形狀和位置,如果骨骼的位置低于地面,則把骨骼位置強制性放在地面 以上。
[0013] 本發(fā)明的3D游戲中鞭子系統(tǒng)的制作方法,可根據(jù)角色手腕的運動自動計算鞭子 的運動軌跡,并且鞭子會與地面產(chǎn)生碰撞產(chǎn)生形變,操作靈活便捷;在制作3D游戲時,美工 不必再單獨為每一套鞭子技能動作制作相應(yīng)的鞭子動畫,大大減少了美工的工作量,大大 節(jié)省了鞭子技能的制作成本。
[0014] 本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實施本發(fā)明而了解。
【附圖說明】
[0015] 附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,并與本發(fā)明的 實施例一起,用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0016] 圖1為根據(jù)本發(fā)明的3D游戲中鞭子系統(tǒng)的制作方法流程圖;
[0017] 圖2為根據(jù)本發(fā)明的3D游戲中鞭子甩動過程效果圖一;
[0018] 圖3為根據(jù)本發(fā)明的3D游戲中鞭子甩動過程效果圖二。
【具體實施方式】
[0019] 以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實 施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0020] 圖1為根據(jù)本發(fā)明的3D游戲中鞭子系統(tǒng)的制作方法流程圖,下面將參考圖1,對本 發(fā)明的3D游戲中鞭子系統(tǒng)的制作方法進行詳細描述。
[0021] 首先,在步驟101,把整根鞭子抽象成一組頭尾相接連接在一起的若干根骨骼以及 附著在骨骼上的蒙皮,對鞭子運動的模擬即簡化為對這些骨骼的運動軌跡的模擬,骨骼上 附著的部分會因為蒙皮技術(shù)而自動跟著骨骼運動。
[0022] 每根骨骼與運動相關(guān)基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)如下:
[0024] 上式中:
[0025] vec3Pos為當(dāng)前骨骼點的位置;
[0026] veC3P〇SNeXt為與當(dāng)前骨骼相連的下根骨骼的位置;
[0027] fHeight為當(dāng)前骨骼所在位置所對應(yīng)的地面的高度;
[0028] fAngle為當(dāng)前骨骼的旋轉(zhuǎn)角度;
[0029] fAngleChange為當(dāng)前骨豁相對于上一根角度的改變值;
[0030] fV為當(dāng)前骨骼的旋轉(zhuǎn)的角速度。
[0031] 在步驟102,在鞭子運動過程中,對當(dāng)前骨骼進行單獨的受力分析,并進行更新:
[0032]
[0033] 上式中,
[0034] fF為當(dāng)前骨骼的受力大小;
[0035] fA為當(dāng)前骨骼的加速度;
[0036] fV為當(dāng)前骨骼的速度;
[0037] fT為當(dāng)前骨骼的時間;
[0038] fAngle為當(dāng)前骨骼的角度。
[0039] 從上式中可以看出,當(dāng)骨骼角度為零時,即當(dāng)前骨骼與上根骨骼和下根骨骼連成 一條直線時,骨骼受力最小,加速度最小,但是此時速度最大。
[0040] 在步驟103,根據(jù)當(dāng)前骨骼的角度,計算出與當(dāng)前骨骼相連的下根骨骼的位置信 息。
[0042] 上式中,
[0043] Vec3DirCurrent為下根骨骼相對于當(dāng)前骨骼的方向向量;
[0044] vec3PosNext為下根骨豁的位置;
[0045] vec3PosNextWorld為下根骨豁的位置在世界坐標(biāo)系中的位置。
[0046] 在步驟104,根據(jù)下根骨骼的位置信息,檢測下一根骨骼同地面的碰撞,重復(fù)步驟 102和步驟103,直至檢測完所有骨骼同地面的碰撞,根據(jù)碰撞反饋來修正鞭子的形狀和位 置。
[0048] 上式中,fHeight為當(dāng)前骨骼的下根骨骼所在位置的地面高度。
[0049] 從上式可以看出,當(dāng)下根骨骼所在位置低于地面高度時,要把骨骼位置放到地面 上,然后把新的鞭子位置轉(zhuǎn)換回鞭子模型空間,然后根據(jù)鞭子不會伸縮的特性重新更新這 根骨骼的位置,最后把新的數(shù)據(jù)重新保存到骨骼的數(shù)據(jù)結(jié)構(gòu)中。
[0050] 從上述過程可以看出,每一幀實際計算的是當(dāng)前骨骼的下根骨骼的位置,即數(shù)據(jù) 機構(gòu)中VeC3P〇SNeXt的值,而當(dāng)前骨骼的位置是從上根骨骼的數(shù)據(jù)結(jié)構(gòu)中直接獲得。
[0052] 圖2為根據(jù)本發(fā)明的3D游戲中鞭子甩動過程效果圖一,圖3為根據(jù)本發(fā)明的3D 游戲中鞭子甩動過程效果圖二,如圖2和3所示,本發(fā)明的3D游戲中鞭子在甩動過程中,根 據(jù)角色手腕的運動自動計算鞭子的運動軌跡;鞭子會與地面產(chǎn)生碰撞,并且會產(chǎn)生形變,更 加生動、形象。
[0053] 本發(fā)明的3D游戲中鞭子系統(tǒng)的制作方法,首先將鞭子抽象成若干根首尾相接的 骨骼,每根骨骼是最基本的運動單位,然后在運動過程中,對每根骨骼進行單獨的受力分 析,更新速度和加速度的信息,然后計算鞭子每根骨骼的位置信息,把每根骨骼的位置都與 地面高度做比較,如果骨骼的位置低于地面,則把骨骼位置強制性放在地面以上,從而實現(xiàn) 了可供3D游戲直接使用的帶物理運動的實時程序化鞭子系統(tǒng)。
[0054] 本領(lǐng)域普通技術(shù)人員可以理解:以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用 于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領(lǐng)域的技術(shù)人員 來說,其依然可以對前述各實施例記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進 行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含 在本發(fā)明的保護范圍之內(nèi)。
【主權(quán)項】
1. 一種3D游戲中鞭子系統(tǒng)的制作方法,其特征在于,所述方法包括以下步驟: 1) 將創(chuàng)建的多根骨骼首尾相連,并獲取骨骼的運動基礎(chǔ)數(shù)據(jù); 2) 在運動過程中,對每根骨骼進行單獨的受力分析,并進行更新; 3) 獲取骨骼的位置信息,修正鞭子的形狀和位置。2. 根據(jù)權(quán)利要求1所述的3D游戲中鞭子系統(tǒng)的制作方法,其特征在于,步驟1)所述的 骨骼的運動基礎(chǔ)數(shù)據(jù)包括:當(dāng)前骨骼的位置、與當(dāng)前骨骼相連的下根骨骼的位置、當(dāng)前骨骼 所在位置所對應(yīng)的地面的高度、當(dāng)前骨骼的旋轉(zhuǎn)角度、當(dāng)前骨骼相對于上一根骨骼角度的 改變值,以及當(dāng)前骨骼的旋轉(zhuǎn)的角速度。3. 根據(jù)權(quán)利要求1所述的3D游戲中鞭子系統(tǒng)的制作方法,其特征在于,所述步驟2)是 對每根骨骼的受力大小、加速度、速度、時間,以及角度信息進行受力分析,并進行更新。4. 根據(jù)權(quán)利要求1所述的3D游戲中鞭子系統(tǒng)的制作方法,其特征在于,步驟3)所述獲 取骨骼的位置信息,是根據(jù)當(dāng)前骨骼的角度、速度和加速度,獲取與當(dāng)前骨骼相連的下一根 骨骼相對于當(dāng)前骨骼的方向向量、下一根骨骼的位置,以及下一根骨骼在世界坐標(biāo)系中的 位置。5. 根據(jù)權(quán)利要求1所述的3D游戲中鞭子系統(tǒng)的制作方法,其特征在于,步驟3)所述修 正鞭子的形狀和位置是根據(jù)每一根骨骼與地面的碰撞反饋修正鞭子的形狀和位置,如果骨 骼的位置低于地面,則把骨骼位置強制性放在地面以上。
【專利摘要】一種3D游戲中鞭子系統(tǒng)的制作方法,包括以下步驟:將創(chuàng)建的多根骨骼首尾相連,并獲取骨骼的運動基礎(chǔ)數(shù)據(jù);在運動過程中,對每根骨骼進行單獨的受力分析,更新速度和加速度的信息;獲取骨骼的位置信息,修正鞭子的形狀和位置。本發(fā)明的制作方法,可根據(jù)角色手腕的運動自動計算鞭子的運動軌跡,并且鞭子會與地面產(chǎn)生碰撞產(chǎn)生形變,操作靈活便捷;在制作3D游戲時,美工不必再單獨為每一套鞭子技能動作制作相應(yīng)的鞭子動畫,大大減少了美工的工作量,大大節(jié)省了鞭子技能的制作成本。
【IPC分類】G06T13/20
【公開號】CN105321195
【申請?zhí)枴緾N201510382226
【發(fā)明人】劉建國
【申請人】蘇州蝸牛數(shù)字科技股份有限公司
【公開日】2016年2月10日
【申請日】2015年7月2日