SAND STORM

朝ぼらけ

2009年10月28日

Lithtech engine – scancode

Filed under: 未分類 — Tags: , — sajin @ 17:43

PC gameでB級臭の濃厚なgameといえばMONOLITHが開発し安いlicense料金で貸し出した初代Lithtech engine(1.0~Talon)を使った作品群だろう。

描写は最高でもNOLF程度であるものの、意外な良作もあればとんでもないB級作品有りとその内容はvarietyに富んでおり、マイクロマウスなどがかなりの数を日本で出版したためやったことがある人も多いのではないだろうか。

B級の気軽さから、見た目にあまりこだわらないFPS gamerの友というべきLithtech作品群だが、初期のLithtech engineを使用したgameの英語版を日本語版Windowsで動かすと、optionで設定してもkeybindが全く反映されないという致命的欠陥がある。

具体的には

  • Blood II
  • Die Hard: Nakatomi Plaza
  • Navy SEALs 1/2
  • No One Lives Forever
  • Western Desperado

などがそうで、Monolithの代表的な作品も含まれる。

この問題は日本のdistributorが出した日本版などでは大概問題なく(硫黄島・日本語版NOLFなど。BLOOD2はpatch適用後異常)、またAVP2など世界市場で売ることを前提に作ったものには独自に対応しているものもある。

基本的な症状は、game内のkey customize optionから設定しても反映されないことで、さらにBlood 2は、最初期に出されたのでNumpad/Arrow key/SHIFT/CTRLをbindした瞬間不正終了するという重篤な症状を発する。

この症状はdriverを英語仕様(101/102)に変えても無駄なので、対策としては直接autoexec.cfgを弄るしかない。具体的にはinstallしたfolderにあるautoexec.cfgを開き,

rangebind “##keyboard” “##76” 0.000000 0.000000 “Run”

上の文の##の後に対応するkeyboardのScan Cordを割り当てていく。

※これに用いられているScancodeは独自のnumber割り当てであり、普通のkeyboradのScancordを当てても駄目なので下の表を元に入力する。


[Keyboard]

0 未調査 50 M 100 150
1 ESC 51 < 101 151
2 1 52 > 102 未調査 152
3 2 53 ? 103 未調査 153
4 3 54 Right Shift 104 未調査 154
5 4 55 Num* 105 未調査 155
6 5 56 Left Alt 106 未調査 156 NumEnter
7 6 57 Space 107 未調査 157 Right CTRL
8 7 58 Caps Lock 108 未調査 158-180
9 8 59 F1 109 未調査 181 Num/
10 9 60 F2 110 未調査 182
11 0 61 F3 111 未調査 183 Pause
12 62 F4 112 未調査 184-196
13 63 F5 113 未調査 197 Pause
14 BS 64 F6 114 未調査 198
15 TAB 65 F7 115 未調査 199 Home
16 Q 66 F8 116 未調査 200
17 W 67 F9 117 未調査 201 PageUp
18 E 68 F10 118 未調査 202
19 R 69 NumLock 119 未調査 203
20 T 70 Scroll Rock 120 未調査 204
21 Y 71 Num7 121 未調査 205
22 U 72 Num8 122 未調査 206
23 I 73 Num9 123 未調査 207 End
24 O 74 Num- 124 未調査 208
25 P 75 Num4 125 未調査 209 PageDown
26 [ 76 Num5 126 未調査 210 Insert
27 ] 77 Num6 127 未調査 211 Del
28 Enter 78 Num+ 128 未調査 212
29 Ledt CTRL 79 Num1 129 未調査 213
30 A 80 Num2 130 未調査 214
31 S 81 Num3 131 未調査 215
32 D 82 Num0 132 未調査 216
33 F 83 Num. 133 未調査 217
34 G 84 134 未調査 218
35 H 85 135 未調査 219 Left Win
36 J 86 136 未調査 220 Right Win
37 K 87 F11 137 未調査 221 App key
38 L 88 F12 138 未調査
39 ; 89 139 未調査
40 : 90 140 未調査
41 91 141 未調査
42 Left Shift 92 142 未調査
43 _ 93 143 未調査
44 Z 94 144 未調査
45 X 95 145 未調査
46 C 96 146 未調査
47 V 97 147 未調査
48 B 98 148 未調査
49 N 99 149 未調査

※enabledevice “##keyboard”の上にAddActionとして定義してあるものしか設定できない。逆に言えばoptionからbindできないものでもAddActionにあればbindできる(特殊な道具など)。またbind不可能な番号や変更不可能なもの(ESC=MENUなど)を入れるとその項目は消える。

[mouse]

mouseも

rangebind “##mouse” “##3” 0.000000 0.000000 “Fire1”
rangebind “##mouse” “##4” 0.000000 0.000000 “Jump”
rangebind “##mouse” “##5” 0.000000 0.000000 “Fire2”

といった形で

“##mouse” “##3″行で Leftbutton
“##mouse” “##4″行で Rightbutton
“##mouse” “##5″行で middlebutton

への割り当てを指定できる。

rangebind “##mouse” “##z-axis” -255.000000 -0.100000 “”PrevWeapon” 0.100000 255.000000 “”NextWeapon”

wheel Up/Downは上の行。BLOOD2などLithtech1.0は対応してない。使いたい場合は別KEYでBIND→X_wheelなどの外部Toolで置き換え

rangebind “##mouse” “##x-axis” 0.000000 0.000000 “Axis1”
scale “##mouse” “##x-axis” 0.0015
rangebind “##mouse” “##y-axis” 0.000000 0.000000 “Axis2”
scale “##mouse” “##y-axis” 0.0015

scale行のx-axis/y-axis後の数値はそれぞれ縦横のmouse移動量。optionからの設定だと雑なので思い通りにならないことが多いが、mouseSensitivityと合わせてこれで調整すれば縦横別々に好きなように調整可。

[Tups]

rangebind “##keyboard” “Home” 0.000000 0.000000 “Activate”

・Scancodeを数値入力しなくても、上のように1-9,A-Z,”右 Shift””左 Ctrl”などASCIIを直接記入すれば認識されるものがある。これはNOLF日本語版などで調べ、それを他のgameに当てはめればわかる


USBキーボードのキーコード
MicroSoft – key Support, keyboard Scan codes, and Windows


関連記事

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment


sand-storm.net