久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

幻世錄Ⅰ靜態(tài)修改—進階篇(二)

 勤奮不止 2022-02-22

入門篇SHAPEDEF章節(jié)中,我們知道了游戲如何讀取角色的地圖動畫的資源,,但這還不夠,,眾所周知,幻世錄的一大游戲特色就是戰(zhàn)斗特寫,,所以這次我們再來看看角色的戰(zhàn)斗特寫是如何定義的,。

在幻一中,所有角色的戰(zhàn)斗動畫都定義在ANIMAL.TXT文件中,;用HSLPATCH或HSLSTAR則保存在HslData1.txt或HslStar1.txt中,,在SHAPEDEF模塊的下邊;用htt則保存在9animal.txt中,。標簽名稱是animal(動畫明明是animation,,開發(fā)人員卻用了動物一詞,還真是惡趣味= =),。

動畫模塊包含了三部分:戰(zhàn)斗特寫(就是物理攻擊的動畫),、魔法特寫(施法前播放的動畫)和特殊技特寫(使用特殊技前播放的動畫)。和SHAPEDEF一樣,,動畫模塊的code值也和角色對應,,游戲在播放動畫時會根據(jù)角色的code自動查找。

入門篇的數(shù)據(jù)模塊一樣,,動畫模塊的所有功能都是通過屬性來描述的,;但和入門篇不同的是,,動畫模塊的數(shù)據(jù)格式更復雜,這也是將其歸到進階篇的原因,。我們先看下原版雷歐納德的動畫數(shù)據(jù):

  

圖中紅框部分是戰(zhàn)斗特寫,,藍框部分是特殊技特寫,因為初始的雷沒有魔法,,所以這里沒有魔法特寫部分,。三部分的屬性名稱都差不多,只是魔法的屬性前面會有“m_”作為前綴,,而特殊技的前綴的是“s_”,。魔法和特殊技的動畫是可以互通的,如果角色沒有魔法數(shù)據(jù),,在釋放魔法時會播放特殊技的動畫,,反之亦然,如果兩者都沒有則不會播放(比如雜兵),。

動畫模塊的特殊性就在于它的action部分,,這個屬性的值是多段的(逗號分隔),而且段數(shù)不固定,,多少個都可以,,完全看心情;且每個animal可以有多個action,,這些action的數(shù)據(jù)最后也會拼接到一起,,形成一個大數(shù)組,就是說同樣的數(shù)據(jù),,你分成兩個action寫和分成三個action寫效果是一樣的,。(action前面加s_表示特殊技的action,加m_表示魔法的action,,數(shù)據(jù)格式都是一樣的),。

比如上圖中的

action = aniInsertAttackFlash,-90,-120,aniSetShape,3,aniDelay,30

就可以寫成

action = aniInsertAttackFlash,-90,-120

action = aniSetShape,3

action = aniDelay,30

我管這種形式的數(shù)據(jù)叫邏輯數(shù)據(jù),它們雖然也是一系列的數(shù)值,,但是很多數(shù)值是有功能含義的,并不是簡單的數(shù)字,,我們暫且叫它邏輯值,;有的邏輯值需要一些參數(shù),所以在它們后面會跟一些普通數(shù)值作為參數(shù),。邏輯數(shù)據(jù)是由邏輯值和參數(shù)值兩部分組合而成的,,一般邏輯值告訴程序要做什么,而后面跟的數(shù)值表達要做到什么程度,。后面還有很多這種形式的數(shù)據(jù),,想要深入研究修改的同學一定好好理解,。

動畫模塊的屬性:

  • code數(shù)值型,動畫的唯一標識,,必須與對應角色的code相同,。

  • k_action:數(shù)值型,戰(zhàn)斗動畫的角色朝向,,會影響光效及挨打時位移的方向,。

  • fh_shape:字符串,光效圖片的文件名,。

  • shape字符串,,攻擊動畫第一幀圖片的文件名。

  • number數(shù)值型,,戰(zhàn)斗動畫的幀數(shù),。

  • action邏輯數(shù)據(jù)戰(zhàn)斗動畫的腳本,。

  • s_shape字符串,,特殊技動畫第一幀圖片的文件名。

  • s_number數(shù)值型,,特殊技動畫的幀數(shù),。

  • s_action邏輯數(shù)據(jù)特殊技動畫的腳本,。

  • m_shape字符串,,魔法動畫第一幀圖片的文件名。

  • m_number數(shù)值型,,魔法動畫的幀數(shù),。

  • m_action邏輯數(shù)據(jù)魔法動畫的腳本,。

每幀圖片的加載方式和SHAPEDEF是一樣的,,先通過shape屬性確定第一幀,然后通過number屬性將編號依次遞增,,加載全部資源,。動畫圖片也是shp格式,存放在animal路徑中,,命名方式為Pxxx_xxx.SHP,,第一個xxx代表角色編號,后面的xxx,,最高位代表戰(zhàn)斗還是技能(0為戰(zhàn)斗,,1或2為魔法或特殊技),低兩位代表第幾幀,。

邏輯數(shù)據(jù)中的邏輯值一般都用宏表示,,animal模塊的宏聲明在ANIMAL.H中,,其中只有部分是用在物理攻擊動畫中的,還有一部分是特殊技攻擊的,,后面再講,,現(xiàn)在先列出目前用得到的:

  • aniDelay:等待,即什么都不做,,用來控制節(jié)奏,,有1個參數(shù),表示等待多少幀(1秒60幀),。

  • aniSetAddSpeed:增加動畫位移速度,,即角色在畫面中做橫向或縱向位移,有4個參數(shù),,具體用法還沒完全吃透,,可參考初始緹娜的動畫數(shù)據(jù)。

  • aniSetSubSpeed:降低動畫位移速度,,即aniSetAddSpeed的反操作,,同樣是4個參數(shù)。

  • aniSetStopSpeed:停止動畫位移,,沒有參數(shù),。

  • aniSetShape:切換幀,連續(xù)調用可實現(xiàn)逐幀播放動畫的效果,,有1個參數(shù),,表示切換到第幾幀(從0開始算)。

  • aniSetZoom:縮放動畫,,原版中初始雷特使用此功能實現(xiàn)放大效果,,有1個參數(shù),表示縮放倍率(最好用16進制表示,,高4為表示整數(shù)部分,,低4位表示小數(shù)部分)。

  • aniSetXYDisp:使動畫做位移,,和改變速度的區(qū)別是,,動畫瞬間移動到指定點,沒有移動過程,,有2個參數(shù),,分別代表目標點的X和Y坐標。

  • aniInsertAttackFlash:播放攻擊光效,,光效圖片定義在fh_shape屬性中,有2個參數(shù),,分別代表光效坐標距角色動畫的X和Y方向上的距離,。

  • aniShadowBG:屏幕變暗,,釋放技能時會通過該邏輯營造放大招的氛圍,一般后面都會緊跟著播放角色特寫,,無參數(shù),。

  • aniMoveToCenter:將特寫(中間那個一屏寬的)移動到屏幕中心,無參數(shù),。

  • aniInsertCastObject:插入特寫(兩邊的小動畫),,有5個參數(shù),具體用法還沒完全吃透,。

還是以第一張圖為例,,我們看下雷的action:第一個數(shù)據(jù)“aniDelay,12”,表示等待12幀,;第二個數(shù)據(jù)“aniSetShape,1”,,表示將動畫切換到第一幀;第三個數(shù)據(jù)是“aniDelay,8”,,再等待8幀,;再往后是“aniSetShape,2”,表示動畫切換到第二幀,;后面“aniDelay,3”,,等待三幀;第二行第一個數(shù)據(jù)“aniInsertAttackFlash,-90,-120”,,表示播放光效(就是那道劍影),,坐標距離角色(x=-90,y=-120);后面略……

所以這段腳本的作用其實就是從頭開始播放雷的攻擊動畫,,并穿插播放光效,。雷的攻擊動畫有4幀(還有1幀是挨打動作),除去開始的第0幀,,一共要切換3次,,中間要間隔一點點時間,以便玩家能用肉眼看出變化過程,。下圖是雷的所有攻擊動作:

  

從左至右依次是第0~3幀

再看下s_action:“aniSetXYDisp,-640,0”是將角色特寫(就是下面這張圖)移動到(-640,0)點,;“aniShadowBG”是將背景變暗;“aniMoveToCenter”是將特寫移動到屏幕中央,;“aniInsertCastObject,-160,-150,2,6,6”是插入兩邊的小動畫,。特寫之所以有7張圖,是因為有一個小動畫有5幀,。

  

*動畫模塊的數(shù)據(jù)是不會存入存檔中的,,所以可以隨時修改隨時生效(當然你還是得重啟游戲)。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多