作者oginome (荻野目洋子)
看板Emulator
标题模拟器的震动杂谈~
时间Sun Jul 30 20:52:00 2017
我以前就对游戏能震动这件事情非常有兴趣,尤其是个人认为在体验上会
增色不少,所以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不过是照实模拟罢了~
以上希望和喜欢震动效果的同好切磋切磋~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 218.166.75.90
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Emulator/M.1501419126.A.4BB.html
1F:推 emulators: 只能推专业了 07/30 21:59
2F:推 Jay915: 推 07/30 22:22
3F:推 AllenTang: 强大,推! 07/30 22:26
4F:推 hipposman: 专业推 07/30 22:50
5F:推 paint: 推 07/30 23:57
6F:推 segaboy: 大推,专业 07/31 01:07
7F:推 if4: 专业推 07/31 01:56
8F:推 ffv111: 您是震动系的吗?专业给推 ~ 07/31 02:18
9F:推 gfneo: 大推 07/31 06:30
10F:推 kashin: 推推 07/31 12:39
11F:推 conpo: 专业好文推!!! 07/31 18:42
12F:推 luckyexcel: 强大 必须支持 08/01 10:26
※ 编辑: oginome (122.121.143.184), 08/01/2017 14:46:41
13F:推 BillyJr: 你跳蚤系的? 08/01 20:49
14F:推 kaoen: 好文,大推 08/02 11:07
15F:→ oginome: 惊!没想到大神出现~快拜~ 08/02 16:55
16F:推 yummypixza: 推专业震动 08/03 01:30
17F:推 EDGE: 专业好文一定必推~ 08/03 22:10
18F:推 xiue: 好猛 08/03 23:26
19F:推 playlive: 推! 08/09 03:50
20F:推 KisarazuCats: 推 08/15 07:58
21F:推 yyoklove01: 厉害 08/16 21:07
22F:推 ADHI: 专业 08/17 09:31