【技術共有】マイクラ用キーコード表

クライアント/サーバーMODの開発に関する話題、技術交換はこちらで。質問は質問フォーラムへお願いします。
  • (PostNo.76700)

【技術共有】マイクラ用キーコード表

投稿記事by takanasayo » 2013年1月30日(水) 15:30

KeyBindingなどで使えるキーコード表。
主要MODのキー割り当ても載せているので、キー変更時の参考にもなるかと思います。
※全MODのキー割り当てを載せるのは不可能ですので、載ってない物は各自補完して下さい。
※キーボードの種類によりキーコード(定数)とキー名の相関性が異なる場合があるので注意して下さい。
公式Wiki - キーコード表も非常に参考になります。
マイクラ用キーコード表 108配列キーボード準拠
キー名定数intマイクラの設定
EscKEY_ESCAPE1ゲームメニュー(変更不可)
F1KEY_F159GUI非表示/表示(変更不可)
F2KEY_F260スクリーンショット撮影(変更不可)
F3KEY_F361デバッグ表示(変更不可)
F4KEY_F462
F5KEY_F563視点切り替え(変更不可)
F6KEY_F664
F7KEY_F765
F8KEY_F866視点移動速度切り替え(変更不可)
F9KEY_F967
F10KEY_F1068
F11KEY_F1187フルスクリーン切り替え(設定不可)
F12KEY_F1288
1KEY_12スロット1選択(変更不可)
2KEY_23スロット2選択(変更不可)
3KEY_34スロット3選択(変更不可)
4KEY_45スロット4選択(変更不可)
5KEY_56スロット5選択(変更不可)
6KEY_67スロット6選択(変更不可)
7KEY_78スロット7選択(変更不可)
8KEY_89スロット8選択(変更不可)
9KEY_910スロット9選択(変更不可)
0KEY_011
AKEY_A30左へ移動
BKEY_B48
CKEY_C46Rei's Minimap & CutAll
DKEY_D32右へ移動
EKEY_E18インベントリ
FKEY_F33
GKEY_G34DigAll
HKEY_H35
IKEY_I23
JKEY_J36
KKEY_K37
LKEY_L38
MKEY_M50Rei's Minimap & MineAll
NKEY_N49
OKEY_O24
PKEY_P25PickupWidely
QKEY_Q16捨てる
RKEY_R19
SKEY_S31後退
TKEY_T20チャット
UKEY_U22
VKEY_V47
WKEY_W17前進
XKEY_X45Rei's Minimap
YKEY_Y21
ZKEY_Z44Rei's Minimap
TabKEY_TAB15プレイヤーリスト
EnterKEY_RETURN28
左ShiftKEY_LSHIFT42スニーク & SpawnChecker(変更不可)
左CtrlKEY_LCONTROL29OptiFine & SpawnChecker(変更不可)
左WindowsキーKEY_LWIN219※使用非推奨
左AltKEY_LMENU56
右ShiftKEY_RSHIFT54SpawnChecker(変更不可)
右CtrlKEY_RCONTROL157SpawnChecker(変更不可)
右WindowsキーKEY_RWIN220※使用非推奨
右AltKEY_RMENU184
アプリケーションキーKEY_APPS221
無変換KEY_NOCONVERT123
スペースキーKEY_SPACE57ジャンプ
-KEY_MINUS12
^KEY_APOSTROPHE40
\KEY_BACKSLASH43
@KEY_GRAVE41
BackSpaceKEY_BACK14
[KEY_LBRACKET26
;KEY_EQUALS13
:KEY_SEMICOLON39
]KEY_RBRACKET27
,KEY_COMMA51
.KEY_PERIOD52
/KEY_SLASH53チートコマンド(変更不可)
バックスラッシュKEY_NONE0
PrintScreen/SysRqKEY_SYSRQ183
ScrollLockKEY_SCROLL70※使用非推奨
Pause/BreakKEY_PAUSE197
HomeKEY_HOME199
EndKEY_END207
InsertKEY_INSERT210
DeleteKEY_DELETE211
PageUpKEY_PRIOR201
PageDownKEY_NEXT209
KEY_UP200SpawnChecker
KEY_DOWN208SpawnChecker
KEY_LEFT203
KEY_RIGHT205
NumLockKEY_NUMLOCK69※使用非推奨
テンキー /KEY_DIVIDE181
テンキー *KEY_MULTIPLY55
テンキー -KEY_SUBTRACT74SpawnChecker
テンキー +KEY_ADD78SpawnChecker
テンキー 0KEY_NUMPAD082
テンキー 1KEY_NUMPAD179
テンキー 2KEY_NUMPAD280
テンキー 3KEY_NUMPAD381
テンキー 4KEY_NUMPAD475
テンキー 5KEY_NUMPAD576
テンキー 6KEY_NUMPAD677
テンキー 7KEY_NUMPAD771
テンキー 8KEY_NUMPAD872
テンキー 9KEY_NUMPAD973
テンキー .KEY_DECIMAL83
F13KEY_F13100108キーには無い
F14KEY_F14101108キーには無い
F15KEY_F15102108キーには無い
KEY_AT145108キーには無い
KEY_AX150108キーには無い
KEY_CIRCUMFLEX144108キーには無い
KEY_COLON146108キーには無い
KEY_NUMPADCOMMA179108キーには無い
KEY_NUMPADENTER156108キーには無い
KEY_NUMPADEQUALS141108キーには無い
KEY_POWER222108キーには無い
KEY_SLEEP223108キーには無い
KEY_STOP149108キーには無い
KEY_UNDERLINE147108キーには無い
KEY_UNLABELED151108キーには無い
KEY_YEN125108キーには無い
KEYBOARD_SIZE256108キーには無い
半角/全角KEY_KANJI148※使用不可
変換KEY_CONVERT121※使用不可
カタカナKEY_KANA112※使用不可
CapsLockKEY_CAPITAL58※使用不可

※マークの付いているキーは押すとデフォルトの動作が優先されるため、マイクラ内でフックしきれていないものです。
※この表は108配列キーボードを基準としています。他の配列について情報をお持ちの方は返信にて表追記お願いします。

未定義コード
下記のキーコードは定義されていないため、これら値に設定することで、擬似的にそのキーバインドを無効にできます。
ただし独自のキーを持つキーボードはこれらのキーコードを使う事もあるため注意が必要です。

84-86、89-99、103-111、113-120、122、124、126-140、142-143、152-155、
158-178、180、182、185-196、198、202、204、206、212-218、224-255
最後に編集したユーザー takanasayo [ 2013年2月02日(土) 05:08 ], 累計 10 回
アバター
takanasayo
ID:77b01001
ラピスラズリ収集家
 
記事: 954
登録日時: 2012年7月26日(木) 04:00
お住まい: 石の中にいる

  • (PostNo.76703)

キー関連Tips

投稿記事by takanasayo » 2013年1月30日(水) 15:43

GUIでキー変更
ModLoader.registerKey でキーを登録すると、GUIからキー変更可能になります。
コード: 全て選択
public void load()
{
    KeyBinding key = new KeyBinding("key.sample", 41);  //@キー
    ModLoader.registerKey(this, key, false);  //第三引数をtrueにすると押しっぱなしで連打状態になる
    ModLoader.addLocalization("key.sample", "button name");  // GUIのボタン名設定(英語)
    ModLoader.addLocalization("key.sample", "ja_JP", "表示名");  // GUIのボタン名設定(日本語)
}

GUIから変更可能にした場合、変更状態はマイクラ側で保存されます。

設定ファイルとGUI変更は両方同時に設定しないようにしましょう。
両方設定していると、設定ファイルでの設定がGUI側の設定で上書きされるので無意味です。


キーコード 0
キーコードの 0 にはキーが設定されています(バックスラッシュ)
設定ファイルなどからキーを使用不可にできるようにするには、-1 を使いましょう。


設定ファイルからキー変更させる場合の注意点
バニラで変更不可になっているキーのコードが設定された場合の回避コードは書いておいた方がいいです。
予期せぬエラーが出る場合があります。
アバター
takanasayo
ID:77b01001
ラピスラズリ収集家
 
記事: 954
登録日時: 2012年7月26日(木) 04:00
お住まい: 石の中にいる

  • (PostNo.76726)

Re: キー関連Tips

投稿記事by NurseAngel » 2013年1月30日(水) 18:54

takanasayo さんが書きました:
コード: 全て選択
    KeyBinding key = new KeyBinding("key.sample", 41);  //@キー



キーコードはLWJGLなので、特に理由がなければ数値ではなくキーコードで設定した方がわかりやすいと思われます。
http://www.lwjgl.org/javadoc/constant-values.html#org.lwjgl.input.Keyboard.CHAR_NONE

コード: 全て選択
    import org.lwjgl.input.Keyboard;
    KeyBinding key = new KeyBinding("key.sample", Keyboard.KEY_GRAVE);  //@キー


コンフィグでsampleKey = "K"みたいに設定できるようなMODもあるようですが、そこまでやるかは作者次第ってことで。
NurseAngel
ID:22eb7573
石炭掘り
 
記事: 205
登録日時: 2012年3月17日(土) 21:38

  • (PostNo.76739)

Re: 【技術共有】マイクラ用キーコード表

投稿記事by sakohiti » 2013年1月30日(水) 20:00

※重箱や横槍みたいなものになってしまってすみません。

AT互換機用のキーボードだと、F13キーからF15キーは実装されていないので使用非推奨キーです。
一応現在でも、Macintoshなどで実装されている例はあります。
# 表に108キーとあるので、takanasayo さんの基準はMacintoshなのでしょうか。(自分はAT互換機を基準にしています)

AT互換機用のキーボードでも、101(US)/106(JIS)系のフル配列キーボードならば関係ありませんが
省スペースキーボードやノートPCのキーボードの場合に該当することがある問題として
「キーボードに実装されていないことが多いキー」や
「両手を使わないと操作できない実装になってしまっていることが多いキー」というものがあります。

「キーボードに実装されていないことが多いキー」としては
右Ctrlキー、右Shiftキー、右Altキー、右Windowsキーです。
これは左右に同等の機能のキーが実装されているから、左側だけあればいいだろうということのようです。

「両手を使わないと操作できない実装になってしまっていることが多いキー」とは
キーボード左下にある(ことがほとんど)のFnキーと、キーボード右側のキーとの組み合わせ操作になっているキーのことです。
マイクラだとマウスから手を離して操作する必要があり、やや不便です。
Insertキー、Homeキー、Endキー、PageUpキー、PageDownキー
NumLockキー、PrintScreenキー、ScrollLockキー、Pauseキーあたりが該当することが多いです。
# Deleteキーがこれに該当している場合もありますが、かなり稀なので気にする必要はないと思います。

加えてWindows 8仕様?になっているキーボードでは
F1キーからF12キーがマルチメディア等のショートカットキーとしての機能が割り振られていて
Fnキーとの同時押しでF1キーからF12キーとして機能するようになっている場合があります。
# これの目立った採用例としては、IdeaPadのキーボードです。
# 同時期のThinkPadと部品共用と思われる機種でも、IdeaPadだけそういう実装にして差別化しようとした影響かもしれませんが。


キーコード表で例に挙げられているものとしては
右Ctrlキーと右Shiftキーが「SpawnChecher(変更不可)」になっていますが
上記に該当するキーボードを使っている場合には導入してもそのキーを使う操作ができないということになるというわけです。

ソフト製作者が、ハードウェアメーカー側の都合で勝手に改変している部分まで考慮して作る必要があるのか
という意見もあると思いますが
現実問題としてそういったものがあるんだということを考慮してもらえると
使わせていただく側としては助かります。

---
ついでに書くと、101(US)系配列と106(JIS)系配列では記号のキーの配置に違いが多いです。
101(US)系配列を基準とすると、106(JIS)系配列では
別のキーコードに割り振られた(単独押しだったものがShiftキー併用で別のキーを押す必要がある)ものや
同じキーコードを返すキーの物理的な配置を動かしたものがかなりあります。
# これに関しては、101(US)系配列と欧州向けの102系配列群でも同様の問題がありますが・・・

いずれにしてもビジネスソフトであればあまり問題にならないのですが
マイクラのようにShiftキー単独押しに機能が割り振られている場合には
Shiftキー併用での入力に問題が出る場合もあるのであまり使わないほうがよいかもしれません。
sakohiti
ID:bcb2ea5d
 

  • (PostNo.76764)

Re: キー関連Tips

投稿記事by takanasayo » 2013年1月30日(水) 21:56

NurseAngel さんが書きました:キーコードはLWJGLなので、特に理由がなければ数値ではなくキーコードで設定した方がわかりやすいと思われます。

ソースの可読性の話であれば、GUIで変更可能にしている時点でどっちでもいいと思われます。
少なくとも私は、@キーを数字で書いても定数名で書いてもわかりにくいという点では変わらないです。@キーがどれに該当するのかわからなくて自分でキーコード表示MOD作って調べたので。
可読性で言うなら、覚えてる人にしかわからない定数名よりも、コメントの記載を推奨します。



sakohiti さんが書きました:AT互換機用のキーボードだと、F13キーからF15キーは実装されていないので使用非推奨キーです。

あ、すいません。普通に書き忘れです。
書き忘れなんですが、非推奨キーの意味が曖昧になっていたので、修正しました。
配列によって実装されないだけのキーは非推奨ではないです。


sakohiti さんが書きました:~全略~

これは私か、MOD製作者か、はたまたMOD利用者か、誰に宛てて書いたものでしょう?
デフォルトキーが使用不可でも、GUI上で変更できるなら問題は出ないと思うのですが。

それとこのトピックは使用キーの重複回避や設定変更時の使用可能キーなどを調べるための参考資料です。
上記の問題についてこのトピック上で注意すべき部分はありますか?
実際問題として未使用キーが割り当てられていても変更不可能でない限り問題ではないと思います。
変更不可能による問題はMOD側の問題なので、このトピックではなく直接製作者に言うべきだと思います。
アバター
takanasayo
ID:6b3015ec
ラピスラズリ収集家
 
記事: 954
登録日時: 2012年7月26日(木) 04:00
お住まい: 石の中にいる

  • (PostNo.76813)

Re: キー関連Tips

投稿記事by NurseAngel » 2013年1月31日(木) 01:06

takanasayo さんが書きました:ソースの可読性の話であれば、GUIで変更可能にしている時点でどっちでもいいと思われます。

どちらかというと、可読性というより抽象化とかの話です。
41ってのはKeyboardで定義されてるだけの値なので、明日いきなり42に変わったりするかもしれません。
そんなときでもKEY_GRAVEで指定しとけば安心。

まあGUIで変更可能な時点でそんな細かいところどうでもいいってのは全くもってそのとおりですが。
NurseAngel
ID:22eb7573
石炭掘り
 
記事: 205
登録日時: 2012年3月17日(土) 21:38

  • (PostNo.76828)

Re: キー関連Tips

投稿記事by takanasayo » 2013年1月31日(木) 02:47

NurseAngel さんが書きました:どちらかというと、可読性というより抽象化とかの話です。
41ってのはKeyboardで定義されてるだけの値なので、明日いきなり42に変わったりするかもしれません。

それはその通りかもしれませんが、Javaはコンパイル時にコード最適化を行うので、どっちで設定していようと変わったら既存のコードで問題出ますよ?
そんな下位互換を損なう変更がなされることは皆無だと思いますが。
例)
 sample2.class で static final b = 2、
 sample1.class で static final a = 1 の時、
 sample.class で c = sample1.a + sample2.b と定義してコンパイルすると、
 コンパイル時に c = 3 に変換されてコンパイルされる。

実行時に不具合が出る可能性のある技術的な話ならともかく、これは記法に対する思想的な話なので、少なくともこのトピックで言及すべき範疇ではないと思います。

特に理由が無い限り~するべき、という事ですが、私には特に(実のある)理由もないのにそれをする必要性はどこにあるのか?という感じです。
ビジネスシーンでの新人教育ならともかく、趣味でやってるマイクラのModdingで、それをやってないModderに対して推奨するメリットがあるようには思えません。
逆に初心者の低レベルな質問が増えるデメリットしかないように思います。
アバター
takanasayo
ID:6b3015ec
ラピスラズリ収集家
 
記事: 954
登録日時: 2012年7月26日(木) 04:00
お住まい: 石の中にいる

  • (PostNo.76847)

Re: 【技術共有】マイクラ用キーコード表

投稿記事by miyabi » 2013年1月31日(木) 09:25

ソースコードを公開する場合に限りますが、可読性の観点から言えば、定数の方が見やすいかなぁ…とは思います。
VBではキーコードは定数を使ってます。数字指定はネット上の情報を見ても、普通は無い感じ
マイクラサーバを立てる前に、PCの基礎知識を身につけましょう。
サーバ管理補助ツール MCSC(Windows専用) の開発をしたり、Minecraft Modding Wikiの管理したりしてます。
アバター
miyabi
ID:502afd69
ブタ飼い
 
記事: 6793
登録日時: 2011年8月07日(日) 14:35
お住まい: さいたまさいたまさいたま!

  • (PostNo.76860)

Re: 【技術共有】マイクラ用キーコード表

投稿記事by takanasayo » 2013年1月31日(木) 12:53

miyabi さんが書きました:ソースコードを公開する場合に限りますが、可読性の観点から言えば、定数の方が見やすいかなぁ…とは思います。
VBではキーコードは定数を使ってます。数字指定はネット上の情報を見ても、普通は無い感じ

この辺は好みの問題もあるのかなぁとか。

自分が何で数字にこだわってるのかちょっと自問してましたが、なんとなく答えが分かりました。
マイクラで設定ファイルからキーコードを変更する際には数字でしか指定できないからだと思います。
Moddingよりも先にそっちで、キーコード=数字で慣れてしまったのが原因かなと。

それも考えるとマイクラに限っては数字で統一して扱った方が分かりやすいんじゃないでしょうか?
このトピック自体はModderだけでなく、ユーザーの利用も想定してますし。
アバター
takanasayo
ID:6b3015ec
ラピスラズリ収集家
 
記事: 954
登録日時: 2012年7月26日(木) 04:00
お住まい: 石の中にいる

  • (PostNo.76861)

Re: 【技術共有】マイクラ用キーコード表

投稿記事by miyabi » 2013年1月31日(木) 13:46

takanasayo さんが書きました:それも考えるとマイクラに限っては数字で統一して扱った方が分かりやすいんじゃないでしょうか?
このトピック自体はModderだけでなく、ユーザーの利用も想定してますし。

ソースコードだけぱっと見た時に、定数なら「あぁ、ここでキーコード渡してるんだな」程度の話ですので、
統一性という意味では、そうかもしれませんね。
ただ、マイクラのModding以外でも…とかまで考えると、これまた難しい問題です。
とりあえず、個人的には定数があるなら、定数を使った方がわかりやすいはず、という意見を添えておきます。
マイクラサーバを立てる前に、PCの基礎知識を身につけましょう。
サーバ管理補助ツール MCSC(Windows専用) の開発をしたり、Minecraft Modding Wikiの管理したりしてます。
アバター
miyabi
ID:218fcc02
ブタ飼い
 
記事: 6793
登録日時: 2011年8月07日(日) 14:35
お住まい: さいたまさいたまさいたま!

  • (PostNo.77192)

Re: 【技術共有】マイクラ用キーコード表

投稿記事by takap » 2013年2月02日(土) 03:05

主要Modのキー割り当ても掲載されていて便利ですね!
利用させていただきます。

ぬるま湯Modderの私は入力補完を利用しているのでKEY_***の定数派です。
が,Keyboardクラスの定数名はUSキーボード基準(?)らしく,
日本語キーボード上のキーと定数名が噛み合ってない箇所があるので
定数派は注意が必要ですね(特に右手小指の守備範囲あたり)。
takanasayoさんも仰っていますが,@キー(KEY_GRAVE)も名前からそれと分からないし...

参考にならないかもしれませんが,私が使っている日本語Appleキーボードでは
「:」を押すとKEY_NONEが入力されたり,「^」がKEY_EQUALSだったりします。

えぇ,私もつい最近ハマったんです...
最後に編集したユーザー takap [ 2013年2月02日(土) 08:28 ], 累計 1 回
takap
ID:9f6d6c61
石掘り
 
記事: 75
登録日時: 2012年5月05日(土) 00:04

  • (PostNo.77198)

Re: 【技術共有】マイクラ用キーコード表

投稿記事by takanasayo » 2013年2月02日(土) 05:04

takap さんが書きました: 

情報どうもです。
確認のために色々調べてたら、更に素晴らしいページを見つけてしまいました。

http://www.minecraftwiki.net/wiki/Key_codes

公式Wikiにあったとは・・・
早速トップ記事にもリンクを貼っておきます。
アバター
takanasayo
ID:b0387b19
ラピスラズリ収集家
 
記事: 954
登録日時: 2012年7月26日(木) 04:00
お住まい: 石の中にいる

  • (PostNo.299722)

Re: 【技術共有】マイクラ用キーコード表

投稿記事by anatawa12 » 2017年4月04日(火) 19:17

すこしMacModderから追記要請
各AltキーのところをAlt/optionに変えたら、macModderにとってはみやすいと思います。、
korisan112主催の実況鯖の鯖主になる予定
東方好き(にわかにはいる様な)
東方スキンで活動中
anatawa12
ID:b9a12401
木を殴ってる
 
記事: 25
登録日時: 2016年8月06日(土) 12:40


Return to 開発関連

x