模擬器的震動雜談~ - 模擬器

Steve avatar
By Steve
at 2017-07-30T20:52

Table of Contents

我以前就對遊戲能震動這件事情非常有興趣,尤其是個人認為在體驗上會

增色不少,所以PS的第一代震動搖桿我二話不說就買了,還買了惡靈古堡2震動

版,而果然有了震動之後那個入戲程度不可言喻,連格鬥遊戲能夠震動之後都

覺得特別有快感,想當然模擬器的日漸發展也對於原生主機的震動加入了模擬,

那些原本就沒有震動功能的呢?有機會用其他的方式加入震動功能嗎?是否能

藉由額外的輔助讓原本沒有震動的遊戲也有震動的效果呢?

答案是肯定的,2007年已經停止開發的Nebula AC模擬器就提共了這樣的

功能,只要這個模擬器抓的到能辨識的力回饋搖桿,那就能進行震動模擬,

振動方式是在config這個資料夾內加入震動包(*.ht2),以下就來談一下ht2的

撰寫方式和執行原理。

首先先確定你在電腦上的手把已經能執行震動功能,我目前換成Windows10

對於Dualshock2的震動驅動全都失效,Dualshock4用DS Windows可以藍芽驅動

也可以震動,但是舊程式都抓不到,所以以下文章雖然八九不離十,但完全是

紙上談兵的盲測...如有問題大家可以討論,但千萬別寄望我給出甚麼有效的答

案,我目前連測都測不了。

如果有人知道如何在Win10 x64下讓Dualshock2有震動效果的請不吝告知~感恩~

★抱歉這件事我自己搞錯了,剛剛突然靈光一閃試出來,我的Dualshock2

一直沒辦法有震動的原因是我換了個轉接頭,是那個轉接頭不支援震動啊,難

怪我怎麼裝驅動程式都沒有反應,剛剛翻出以前的轉接頭(總共可接2隻手把的)

裝完驅動立馬OK了,能玩震動的吞食天地二(有超超必殺的AC版)爽度果然不可

言喻~

裝完驅動後可於手把中測試震動:http://imgur.com/b8VkPIw


想測試震動的板友首先請下載微軟在1999年釋出的一個力回饋程式,它可以輸出

震動馬達的訊號以單一波型或複合波疊加的狀態輸出,從而讓震動馬達以弦波、三角

波、方波或以上三種波的線性疊加來震動,這隻程式叫做Force Editor Version 1.0

我似乎也沒找到微軟有再釋出後續版本,找的到的都是這個版本,想試的板友

可於點下方連結進行下載(我自己的GOOGLE雲端,無毒):

https://goo.gl/ZGQN98

版本聲明:http://imgur.com/s2w7Bh5

倘若這程式沒有辨識到你有震動裝置會顯示警告:http://imgur.com/a/ob44x

若已偵測到就不會有警告對話框。

Nebula裡面也可以看搖桿是否有支援:http://imgur.com/8JSG84A (無支援)

http://imgur.com/fU8vRFb (有支援)

★這隻程式抓的到的震動裝置在Nebula裡面才會有效果。

該程式打開長這樣:http://imgur.com/86QhpTb

每一大格代表1秒(1000毫秒),接著可以從上方的ICON拉出各種不同的波型,

如右圖所示:http://imgur.com/al79Ogd

以下做些基本波型的簡單的介紹,我都以四秒的長度來做範例,當然持續長度可以

隨意設定,只要把格子往右拉即可。

A.Constantforce:穩態力,不變力-->持續輸出力度相同的震動效果

B.RampUp:增強力,斜坡力-->輸出一個力度漸強的震動效果,也可調整成

RampDown這樣的減弱力,就是音軌編輯的Fadein和Fadeout。

C.Square:方波,感受上會是斷續效果,有點像是機關槍的震、震、震這樣。

D.Sine:弦波,最常見的波型之一,有上下波浪的感覺,漸大漸小間的路徑為二次

函數,爬升較為圓緩。

E.Triangle:三角波,震動會漸大而後又漸小又漸大又漸小....,和弦波類似,

不一樣的地方是爬升方式為線性式。

F.SawtoothUp:鋸齒波,三角波的特例,可以看見波型為升到最高點後陡降至0,

陡升的鋸齒波則是相反。

進階的震動表現又有彈簧效果(Spring)、摩擦力(Friction)、阻尼(Damper)、

慣性力(inertia)等四種震動表現可以選,在下拉選單中"File"--"Select Device"

可以選擇他抓到的震動裝置:http://imgur.com/xMmVoo0 (這邊是沒抓到的樣子)。

若有偵測到震動裝置就可以在清單中看見:http://imgur.com/yiuNMhc

在LilyPad中也可看見震動手把:http://imgur.com/obIybtF

震動波型是和Force Editor一樣基本波型。


設定好之後你可以指定哪個裝置來執行你配置好的震動效果,只要按F5即可震

一次循環給你體驗看看。

做好一個震動效果後即可存檔,我這邊的例子是做一個打擊效果,我希望打到

敵人會震動1.5秒左右,用弦波震動,做好後存檔成*.ffe(Force Feedback Effect),

我假設是存成Hit.ffe,請把這個檔案存在和*ht.2同樣的位置(在Nebula的config

資料夾下),接著還可以多做幾種效果,比如說Down.ffe(敵人倒地),Bow_L.ffe

(大爆炸)等等備用。

假設我們共存了Hit.ffe、Down.ffe和Bow_L.ffe三種震動效果在config資料夾下,

接著就可以開始寫ht2檔了。

ht2檔的格式非常簡單,當初我是參考了"模擬與遊戲vol3:NEBULA震動包的編制"

一文,該文說明FFE文件的震動效果對應遊戲的1.SOUND CODE 和 2.MEMORY CODE

兩種參數的啟動方式,ht2內文主要分成幾個部分:

A.首行

HIT2 Force Table V2 (Don't change, otherwise Nebula will not recognize it)

這行不能去掉,去掉就沒效果了,ht2檔以分號;當做是註解符號,";"後面的字串

都會視為註解。

B.著作者(抓來的都有這行,請勿刪除尊重原作者)

;製作者:XXXX (www.ptt.bbs)

C.遊戲名稱註解

;==WOFCH3P:吞食天地超必殺版==的震動包,此行純粹讓你註釋是哪個遊戲

D.震動對應文件

[Effect Map]
1=Hit.ffe
2=Down.ffe
3=Bow_L.ffe

這邊是震動效果的映射表,可以設定非常多組,以此寫法為例:

1就代表等一下會出呼叫Hit.ffe這個震動文件,EMU就依照該震動文件內所設定

的方式來做震動,同理2就呼叫Down.ffe...餘類推。


E.震動對應代碼


[Codes]

;打中敵人的效果1

S40 1 1

其中S代表聲音的CODE,40指具體的聲音代碼(可以查遊戲的效果音表),

S40 1 1 即指當出現聲音代碼40時,第一個震動手把出現第1種的震動效果,此效果

為Hit.ffe

S52 1 3

S52 1 3 即指當出現聲音代碼52時,第一個震動手把出現第3種的震動效果,此效果

為Bow_L.ffe

-----------------------------------------------
;BOSS DEAD
SC8 1 1
SC9 1 1
SCA 1 1
SCB 1 1
SCC 1 1
SCD 1 1
SCE 1 1
SCF 1 1

這段為某一遊戲的範本,是說BOSS死掉之後出現何種音效及對應何種震動效果

------------------------------------------------

具體來說文件裡面一般會長這樣:

HIT2 Force Table V2 (Don't change, otherwise Nebula will not recognize it)
;製作者:XXXX (www.ptt.bbs)
;==WOFCH3P:吞食天地超必殺版==的震動包

[Effect Map]
1=Hit.ffe
2=Down.ffe
3=Bow_L.ffe

[Codes]

;打中敵人的效果1

S40 1 1
S52 1 3

;BOSS死亡
SC8 1 1
SC9 1 1
SCA 1 1
SCF 1 1
.
.
.
.

--------------------------------------------------------


除了用Sound Code控制之外,還有一種用記憶體位址做控制,具體寫法如下:

;第一位玩家震動參數設定<----這邊可以讓你註明區分哪一隻手把要做何種震動

範例:

-FF82ed,2 1 3

其中-、+、=號是遊戲的記憶體位址鎖定碼,-為減少、+為數值增加、=為數值不變

故"-FF82ED"即指記憶體位址為FF82ED的數值若減小,",2"表示當減去2(16進位)的

時候,第一隻震動手把執行第3種震動效果Bow_L.ffe,",2"這個數值若寫為",F"

即是就是減去 F(15)時,第一隻震動手把執行第3種震動效果Bow_L.ffe。

+號表示對應的數值增加,=號表示對應的數值為某個特定數值,總之這條語法是說明

某數值值出現某種變化時,即可指定出現震動效果。


許多範本也如下這樣寫,聲音代碼寫法和記憶體位址寫法是可混著寫的:

;第二位玩家震動參數設置
-FF83ed,0 2 3
-FF8404,0 2 3
+FF840E,0 2 1
S1F 2 1
S43 2 3
S45 2 2

寫好後不須宣告語法結束,直接存成和ROM檔一樣的檔名即可,若不確定檔名,

就用Nebula玩一次該遊戲,設定一次搖桿配置,它自然會在config這資料夾

出現該遊戲檔名.key(按鈕配置檔),將ht2跟著*.key命名即可~

想看範本的朋友請下載這個:https://goo.gl/5UxBCi

有我之前收集來的不少ht2,幾乎都是CPS2的遊戲,因為CPS2的QSOUND把1P音效

和2P音效分開,所以可以1P震動1P的,2P震動2P的,不會說觸發一個音效代碼後

就大家一起震這樣,當然你玩單人遊戲就無此困擾啦~

Nebula的官網還有放JUKEBOX.EXE這個工具,可以讓你直接試ROM裡面的哪個音效

的SOUND CODE是甚麼,可說是十分的方便。

Nebula官網:http://nebula.emulatronia.com/

epsxe則是原來PS的遊戲那些有震動的,它就忠實對應囉,PCSX2也是。

至於更早的家用主機只有MD的gen有支援震動,它同時支援兩種震動方式,一種是

ldu,是偵測畫面出現哪個圖像就對應相對的震動效果,另一種是pdu,但是我搞了

很久從沒成功過,只要設定完,讀ROM的時候MD Gen32就會當掉,也不知道為什麼,

我有人家寫好的MD魂斗羅的震動包,就是弄不出來,所以也無法有甚麼心得可以分

享;然後一樣是Nebula出的Model 2 Emulator從0.8版以後有支援震動,但我到了

1.1a版還是找不到可以設置的選項,一方面時間也變少了,所以也沒繼續摸索啦~

其實按照ht2這種震動模式,理論上甚麼模擬器都可外掛加載震動效果的,感覺就

看作或不做而已...

★更新~Model 2 Emulator的震動搞定了,要自己改ini檔,打開emulator.ini

找這行EnableFF = 0 改成EnableFF = 1 即可,但這模擬器的震動只對賽車遊戲

有用,底下的FORCE EFFECTS PARAMETERS有各種參數,基本上可以不用動,參數

調整包括摩擦力,方向盤的力回饋等,像DAYTONA系列開到草地上會有震動,和其

他車相撞、急轉彎的力回饋等都有表現出來,至於為何只有賽車遊戲有?那是因為

在AC版就是這樣,那時的SEGA如日中天,各電玩場的最大型機台、體感機台一定是

SEGA的,那時候從初代的VR賽車(Virtua Racing)開始方向盤就都有力回饋,後來的

DAYTONA賽車或是拉力賽車等等必定有力回饋和震動,但是其他非賽車機台如VF系列

就沒有了,所以Model 2 Emulator不過是照實模擬罷了~

以上希望和喜歡震動效果的同好切磋切磋~

--

All Comments

Andy avatar
By Andy
at 2017-08-04T09:57
只能推專業了
Irma avatar
By Irma
at 2017-08-04T16:27
Zora avatar
By Zora
at 2017-08-08T04:02
強大,推!
Kumar avatar
By Kumar
at 2017-08-11T08:57
專業推
Emma avatar
By Emma
at 2017-08-15T13:05
Rebecca avatar
By Rebecca
at 2017-08-19T09:37
大推,專業
Tom avatar
By Tom
at 2017-08-23T12:47
專業推
Quanna avatar
By Quanna
at 2017-08-24T20:46
您是震動系的嗎?專業給推 ~
Queena avatar
By Queena
at 2017-08-25T23:42
大推
Ursula avatar
By Ursula
at 2017-08-26T08:47
推推
Connor avatar
By Connor
at 2017-08-28T21:51
專業好文推!!!
Irma avatar
By Irma
at 2017-09-01T06:26
強大 必須支持
Elvira avatar
By Elvira
at 2017-09-05T14:03
你跳蚤系的?
Kelly avatar
By Kelly
at 2017-09-09T00:29
好文,大推
Mason avatar
By Mason
at 2017-09-11T07:25
驚!沒想到大神出現~快拜~
Emily avatar
By Emily
at 2017-09-12T03:36
推專業震動
Olivia avatar
By Olivia
at 2017-09-15T10:11
專業好文一定必推~
Kumar avatar
By Kumar
at 2017-09-17T01:20
好猛
Daph Bay avatar
By Daph Bay
at 2017-09-19T06:01
推!
Tom avatar
By Tom
at 2017-09-20T02:38
Yuri avatar
By Yuri
at 2017-09-20T05:50
厲害
Doris avatar
By Doris
at 2017-09-23T00:14
專業

實況挑戰第一彈:星のカービィ

Jake avatar
By Jake
at 2017-07-30T13:57
※ [本文轉錄自 Old-Games 看板 #1PVN5run ] 作者: AiYohane (Ai夜羽) 看板: Old-Games 標題: [心得] 實況挑戰第一彈:星のカービィ 時間: Sun Jul 30 13:41:06 2017 大家好 雖然這個心得是2個月前寫的,不過由於意外的發現這個版 ...

CEMU存檔損毀

Yuri avatar
By Yuri
at 2017-07-29T01:33
荒野之息玩到一半電腦當機,重開機之後 遊戲內存檔的時間全變成1970/01/01 00:00 遊戲進度全回到一開始, 去CEMU的資料夾看記錄檔的編輯時間是當機之前的時間 (10:50當機,編輯時間是10:39) 所以應該沒被覆蓋。 換舊版本的CEMU讀取這些紀錄檔也一樣結果 請問各位這樣還有救嗎? 我不想 ...

(GBA/NDS) No$gba v2.8f

Quanna avatar
By Quanna
at 2017-07-28T09:19
2017.07.24 NO$GBA pronounced as No Cash GBA is a Nintendo DS / DS Lite and GameBoy Advance emulator for Windows XP, Vindows VISTA and MS-DOS. NO$GBA optio ...

(Odyssey2/Videopac) Homer v0.7

Ula avatar
By Ula
at 2017-07-28T09:12
2017.07.26 Homer is an Odyssey2 / Videopac emulator for Windows. Homer v0.7 Changelog: - Added support for Zip archives, including those with multiple r ...

關於CEMU玩大金鋼等問題~~~

Lydia avatar
By Lydia
at 2017-07-27T14:02
參看了PAINT大的文章 試都試了 結果去911wii 下載的更嚴重 進去標題直接當掉 用系統管理員身分執行 還是當掉 絕對不是KEY的問題 因為KEY錯連進都進不去 現在試著下載loadline的版本 試看看 之前爬過文章 好像也有人跟我一樣 讀到標題就進不去 我也有想過該不會是 ...