leopardgeckoのブログ

Macの関連事項など

Planckキーボードのキーマップ。

はじめに

Planckはファームウェアの書き換えでキーマップを変更できますが、設定ファイルはC言語で書かれているために単にキーを入れ替えるだけではなくある程度複雑な動作も可能になります。

色々試してみましたので、それらの機能をフィーチャーしたキーマップファイルを公開してみます。

ここからダウンロードしてください。

主な特徴

1)デフォルトレイヤーはMac用。ほぼ普通のQWERTY配列のまま。LowerキーとRaiseキーは英数・かなキーとしても使える。このレイヤーはiPadiPhoneなどiOS機にも使える。

2)Windows用のデフォルトレイヤーも用意。Adjustレイヤーから適宜切り替え可能。PlanckはWindowsではJIS配列のキーボードとして認識されるが、レジストリを書き換えたりせずにそのままの状態でMacと同じUS配列のキーボードとして使える設定にした。LowerキーとRaiseキーは無変換・変換キーとしても使える。

3)Lowerは主に数字入力とファンクションキーのレイヤー。テンキー様の配列もあり。

4)Raiseは主に記号入力とメディアキーのレイヤー。

5)移動とマウス操作用のFunctionレイヤーを追加。ポインターの移動速度は三段階で調節可能。Escキーの長押しでFunctionレイヤーがonになる。

6)LowerとRaiseはFunctionレイヤーからロックできる。Lowerをロックすればテンキーとして使えるので数値入力が楽。

7)LED対応。LowerとRaiseをオンにすればLEDが光り、それぞれのレイヤーで光るパターンが違う。

8)サウンド対応。レイヤーをロック・ロック解除したりAdjustキーを押したりするとそれぞれ対応した音が鳴る。

9)マクロ出力(一つのキーで文字列を出力できる)。

 

 LEDとサウンドの動作はこんな感じです。

解説(?)

配列はすでに皆さんお好きなようにカスタマイズしているでしょうから、配列はともかくとして機能の部分で参考になるところがあればと思い公開してみました。zip形式での配布になったのは、keymap.cだけでは機能が再現できないため、config.hとrules.mkも含める必要があったからです。

私が知る限りPlanckの説明としての主な新出事項は、WindowsでJIS配列として認識された場合にUS配列として使える方法だろうと思います。キーマップの単純な置き換えでも一応は使えるのですが、それのみではシフトキーを押しながら「;」や「'」をタップした時の記号の置き換えはできません。そこでその二つのキーに特殊な処置を加えました。

(実はこの二つのキーに限らずシフトキーの動作も含めて全てのキーを一括してJISからUSに変換できる方法もあるのですが、Planckでは数字や記号を別のレイヤーで入力するやり方が一般的なためシフトキーの操作を考慮する必要性があまりないのでここでは省略します。PreonicやGH60などの独立した数字キーがあるキーボードでJISをUSに変換したい方がもしおられたらご一報ください)

マウスキーを使っている人はあまりいないようですが、補助的な使い方には良いかもしれません。スクロールホイールはちょっとスクロールしたい時や横スクロールをしたい時など意外と使えます。

様々な条件によって動作が変わるようになっています。ここがQMK Firmwareの醍醐味だろうと思います。例えばデフォルトのレイヤーの違い、レイヤーがロックされているかどうかの違い、シフトキーが押されているかどうかの違いなどを判定してそれに対応した動作になります。その辺りは個人的に結構苦労しました。

タップダンス(二回タップで動作が変わるなど)も試してみたのですが、タップの判定が結構シビアで使いにくいと感じたのであえてここでは触れません。

最後に

何せド素人が書いたソースコードですからとんでもない間違いがあるかもしれませんが、何かの参考になれば幸いです。

Planckキーボードのスイッチとキーキャップ。

あれからPlanckを色々いじっている最中ですが、記録も兼ねて現時点でのスイッチとキーキャップの状況を書いておくことにします。この手のキーボードは個人の好みが反映される度合いが強すぎて内容をそのまま流用できることはあまりないと思うのですが、何かの点が参考になれば幸いです。

 

とりあえずキースイッチはこんな感じで。

f:id:leopardgecko:20171010111834j:plain

スイッチはすべてGateronのもので、基本はご覧の通りの赤軸です。修飾キーとして使うキーは小指で押しっぱなしにしても楽になるように、赤軸よりもさらに軽いGateronの白軸(Clear軸)に変えてみました。また、一番下の段の並びはまだ慣れずに押し間違いも多いので、LowerとRaiseキーは茶軸に変えて、さらにバネは白軸のものを入れてみました。これが意外といい感じで、重さは白軸と同じですがタクタイル感があるので押し間違いがあれば気がつきます。

さらに一番下の左から二番目のキーはキーボードの配列を変えるなど特殊な機能のレイヤーに移動するキーに設定して、これのみを重くてクリッキーな緑軸にしてみました。うっかり誤爆すると面倒なことになるキーなので、両隣の白軸とは重さも感触も全く異なるキーを選びました。

軸やバネはスイッチをはんだ付けした後でもトップカバーを外せば交換できます。実際私は最初は全部赤軸で作ったのですが、後から軸とバネを上記のように交換しています。カバーの外し方については「cherry mx open」などのキーワードで検索すればスイッチを簡単に分解できる動画が色々見つかりますので参考にしてみてください。道具はダイソーでも売っている先が細いピンセットがあれば十分で、特殊な工具は必要ありません。作業自体も一度やり方がわかれば意外と簡単なものです。

スイッチを分解できるようになると軸とバネの組み合わせが自由になりますから、Gateronの白軸用のバネと茶軸を組み合わせて軽いタクタイルのスイッチを作ったり、黒軸用のバネに青軸を組み合わせて重いクリッキーなスイッチを作ることもできます。

ちなみにGateronのボディにCherry MX純正の軸を入れることもできるのですが、中身は微妙に違いがあるようです。Cherry MX純正の青軸をGateronに入れてみたところ例のカチカチ音があまりしなくなりました。茶軸などのタクタイルタイプでは違いはほとんど感じられませんでした。

 

キーキャップはたまたま余っていたCherry Profileのものを流用して、LowerとRaiseキーだけクリアタイプに変えてみました。クリアのキーキャップはCherry MXのテスターを買ったらついてきたものです。

f:id:leopardgecko:20171010112310j:plain

なぜこの二つだけクリアなのかというと、ここにLEDを仕込んだからです。発光させるとこうなります。

f:id:leopardgecko:20171010112508p:plain

気が変わったらLEDを変更できるように、スイッチの中に丸ピンICソケットを仕込んでLEDを差し替え可能な仕様にしています。スペースキーや左上のキーにもソケットを入れて、気分次第でそちらにLEDを差し替えることもできるようにしてみました。上に書いたスイッチの分解ができればトップカバーを外して中にソケットを入れるだけなので大した手間ではありません。

ちなみに、ここに入れられるLEDは3mmのいわゆる砲弾型か2x3x4mmの角形です。Planckは横からスイッチが見えるタイプのキーボードなので、いくらか見栄えの良い(と私が勝手に思っている)2x3x4mmのLEDを入れてみました。

 

実はPlanck用にXSA profileのキーキャップも入手したのですが、OEMやCherry profileとは違って指を置く位置に傾斜がついていないので指の収まりが今一つで、ホーミングキー(突起などがついている「F」と「J」キー)は他のキーよりわずかに深めになっているだけなので違いがわかりにくいなど、少々使いにくいものでした。見た目はスッキリしていて格好良いのですが、残念ながら使用感の問題で今のところはお蔵入りになっています。

 

今使っているスイッチやキーキャップはまだ暫定的なもので、今後も検討を重ねて何がベストなのかを探っていきたいと思っています。

 

キーボードの機能的な中身、つまりキーマップについてはまた別の記事で書くことにします。

PlanckキーボードをMacでカスタマイズしてみよう。 <応用編>

はじめに

前回の記事でPlanckの基本的なカスタマイズ方法の紹介をしましたが、今回は他にいくつか実例を紹介します。これはPlanckというよりはQMK Firmware全般の説明になるのかもしれません。(記事を書くのにまだ慣れないPlanckを使っているのでタイプミスが多くて大変です・・・😅 )

以下、全て「keymap.c」ファイルの書き換えの説明です。特に説明がなければそのファイルの中の「[_QWERTY]」の設定を書き換えます。「keymap.c」については前回記事を参照してください。

右側にもシフトキーを追加する。

シフトキーが左側にしかないのは不便です。この際、右側にも追加してしまいましょう。かといって右側のキーが減ってしまうのは困るので、長押しでシフトキーの役割を兼用するように書き換えます。私はエンターキーと「'」キーの位置を入れ替えていて、「'」キーをシフトキー兼用にしています。その場合は、「KC_QUOT」を「MT(MOD_RSFT,KC_QUOT)」に書き換え、「KC_ENT」と位置を入れ替えます。

長押しと判定されるまでの時間の調節はこちらのサイトが参考になります。

Windowsでも使うときのために「半角/全角」キーを追加する。

Planckはコンパクトなキーボードですから持ち歩いて他の場所で使うのも楽です。メインマシンはMacでもWindows機を使う機会もあるでしょうから、キーボードをどちらでも使えれば便利です。そこでWin機でも日本語入力ができるように「半角/全角」キーを追加してみます。キーの位置ですが、デフォルト設定では一番左下のキーはバックライトキーであり、バックライトを使わないなら何の役にも立ちません。そこでこれを「半角/全角」キーに変更してしまいます。単に「BACKLIT」を「KC_ZKHK」に書き換えても良いのですが、独立したキーにしてしまうと肝心のMacで使う時に何の役にも立たなくなってしまってもったいないので、長押しした時にはコントロールキーとして使えるようにしてみます。その場合は「CTL_T(KC_ZKHK)」と記述します。デフォルトのコントロールキーの位置は押しにくいので一石二鳥と言えるでしょう。

音量調節を細かくする。

キーボードでの音量調節は割合大雑把なので、イヤホンで音楽を聴いている時などはもっと細かく音量調節をしたくなります。Macには細かい音量調節のショートカットがあり、「Shift」と「Option」を押しながら音量調節キーを押すと標準の四分の1の単位で音量調節ができるようになります。これをPlanckの設定に反映するには、「KC_VOLD」を「LALT(LSFT(KC_VOLD))」、「KC_VOLU」を「LALT(LSFT(KC_VOLU))」に書き換えます。

メディアキーの割り当てを修正する。

デフォルトでは曲送りのキーは「KC_MNXT」になっているのですが、これはあくまでWindows用であってMac本来の曲送りのキーではありません。このままでも一応iTunesでは動作するのですが他のソフトでは動作しないことがあります。例えば私の環境ではAmazon Musicで曲送りができませんでした。iTunes以外の音楽再生ソフトを使う可能性があるならばMac本来の曲送りのキーである「KC_MFFD」に変更しておいた方が無難です。ちなみに曲戻しのキーは「KC_MRWD」です。

レイヤーを増やす。

コマンドキーやコントロールキーなどは一番下の段にありますが、これはこれで良いとしても、もっと楽にアプローチできるキーも修飾キーとして使えれば便利です。ただ単に修飾キーも兼ねるだけなら上で挙げた例のように記述すれば良いのですが、ここではデフォルトのレイヤーである「Lower」や「Raise」とは別にオリジナルのレイヤーを作って、「a」キーの左隣という好位置にある「Esc」キーの長押しで呼び出せるようにしてみます。

「keymap.c」の最初の方にある「enum planck_layers」というところがレイヤー名の定義をしているところなので、ここにオリジナルのレイヤー名を追加します。とりあえず「_MYESC」としてみます。下の画像のように「_ADJUST」の後に一行追加するのですが、「_ADJUST」の後ろに「,」を付け加えるのをお忘れなく。

f:id:leopardgecko:20170914075454p:plain

あとは下の方にある「_ADJUST」の設定の下に、新たに「_MYESC」の設定を加えます。他のレイヤー設定をいったんコピペして好きなキーに書き換えると良いでしょう。下の例はカーソルやページの移動を割り当てたレイヤーです。どうしてそんなものをわざわざ作ったかというと、他に使っている60%サイズキーボードの設定を引き継ぎたかったからです。デフォルトのカーソルキーは最下段ですからホームポジションから遠くて押しにくいですし。他のキーボードで慣れている設定があればそのままPlanckでも使えるというわけです。

レイヤーの書き足しの際には「_ADJUST」の最後にある「}」の後に「,」を付け加えてください。これを忘れるとコンパイル時にエラーになります。

f:id:leopardgecko:20170914080059p:plain

 

「ESC」キーの長押しにこのレイヤー呼び出し機能を割り振るには、「[_QWERTY]」のところにある「KC_ESC」を「LT(_MYESC,KC_ESC)」に書き換えます。コンパクトサイズのメカニカルキーボードはFnキーで独自機能を呼び出せるものが多いですが、こういうやり方でそれっぽい機能を再現できます。

テンキーっぽく使える設定

さらなる応用として、下のようにテンキーっぽく使えるレイヤーを作ることもできます。Planckはテンキーと同じ格子状の配列ですから、通常配列のテンキーレスキーボードより数字入力が格段に楽になります。

f:id:leopardgecko:20170914124627p:plain

私は一番左上の「Tab」キーの長押しにこのテンキーっぽいレイヤーの呼び出し機能を割り振っています。数字をどのキーに割り振るかで少々悩みましたが、右手をホームポジションから動かさずにタイプできる位置にしてみました。

 

長押しの併用は基本的にどのキーに割り振ることもできますが、これを設定すると当たり前ですが元のキーの押しっぱなしの入力はできなくなりますのでご注意を。

とりあえず今回はこのくらいで。

PlanckキーボードをMacでカスタマイズしてみよう。 <導入編>

はじめに

今回は「Planck」というキーボードの話です。

一部で有名な(?)Planckといういわゆる40%サイズの格子型キーボードがあります。と言われても興味のない方には何のことやらさっぱりでしょうが、要するにこういう形の非常にコンパクトかつシンプルなキーボードです。

f:id:leopardgecko:20170913224757j:plain

小さいのですがメカニカルキーボードなので打鍵感はしっかりしたもので、外装は肉厚のアルミでガッシリ感や高級感も感じられます。金属外装のためかサイズの割に重量もあるので意外なほど安定感もあります。ただしこれは一般の店舗やネットショップなどでは売っておらず、MassDropなどでのみ入手できる組み立てキットという特殊な部類のキーボードになります。

組み立て式なのでCherry MX互換のどんなスイッチでも選べる(その気になればキーひとつ単位で様々な種類のスイッチを選ぶことも可能)ということの他に、ファームウェアを書き換えることでハード的にキーマップがいくらでも好きなように変更できるという特徴があります。つまりMacやPCでキーリマップソフトを使う必要がなく、どの本体に繋いでも自分がカスタマイズしたキーマップがそのまま使えるということです。(これはPlanckのみの特徴ではなく、このような機能がある組み立て式キーボードはサイズや形状が違うものが他に何種類も出ています)

私はこのPlanckをごく最近入手したのですが、組み立てはすぐに終わったものの、いざMacでキーマップの作成や転送をやろうとすると入門向けの情報が少ない上に内容が古くてそのままでは使えない情報が結構あり、意外と苦労してしまいました。MassDropでは大人気のキーボードなので日本での情報もそれなりにあるだろうと考えていたのですが少々甘かったようです。そこで備忘録も兼ねて、Planckのキーマップ設定をMacでカスタマイズする手順を紹介することにしました。

本体の入手方法や組み立て方などは他のサイトにお任せするとして、説明はすでに組み立てが終わっているところから始めます。

組み立てただけでもUS配列のキーボードとして普通に使えるのですが、日本語入力には専用のキーが欲しいですし、デフォルトのキーマップを変更したい人もいるでしょう。キーマップを書き換える機能を使うにはいくつかの準備が必要になります。

必要ソフトの導入

まずターミナルを立ち上げて、ファームウェアの作成と転送に必要なソフトをHomebrew経由でどんどんインストールします。Homebrewをお使いでない方はこの際入れてしまってください。(そうすれば私が別記事で紹介しているjRogueというゲームをターミナルで遊ぶことも出来ますよ!😉 )

brew tap osx-cross/avr

brew tap PX4/homebrew-px4

brew update

brew install avr-gcc

brew install dfu-programmer

brew install gcc-arm-none-eabi

次にQMK Firmwareというものを入手します。よくある説明はGitHubからクローンするというものですが、それができる人には説明は不要だと思いますのでGitHubの説明は省略して、ここではファイルを直接ダウンロードするやり方を紹介します。

まず、QMK Firmwareの配布サイトにアクセスしてファイルをダウンロードします。zipファイルを展開して、出来たフォルダをqmk_firmware-master→keyboards→planck→keymapsと辿っていき、keymapsフォルダの中に自分用のフォルダを作ります。ここでは仮に「leopardgecko」というフォルダを作ったとします。keymapsフォルダの中に「default」というフォルダがあり、その中に「keymaps.c」というファイルがあるので、これを先ほど作った「leopardgecko」フォルダの中にコピーします。この「keymaps.c」がキーマップを設定するファイルです。

カスタマイズ例(「英数」「かな」キーを追加する)

カスタマイズの一例として、スペースキーの両隣にある「Lower」と「Raise」キーを一回押しすると「英数」「かな」キーとして動作する方法を紹介します。もちろん長押しの時は「Lower」と「Raise」としての本来の動作をします。US配列のキーボードを使っている人にはコマンドキーのリマップでおなじみのカスタマイズですが、この設定をキーボード本体に保存できるのが最大の違いです。

先ほどコピーした「keymaps.c」をテキスト編集できるソフトで開くと「[_QWERTY] = {」という行があります。その下に「KC_云々」というような記述が並んでいるところが基本レイヤー(要は普段使うところ)のキー設定です。

f:id:leopardgecko:20170913225638p:plain

ここの「LOWER」を「LT(_LOWER,KC_LANG2)」に書き換え、「RAISE」を「LT(_RAISE,KC_LANG1)」に書き換えます。これで「Lower」「Raise」キーが一回押しの時はそれぞれ「英数」「かな」キーとしても動作するようになります。

Planckに設定ファイルを転送

このキーマップをPlanckに転送するには、まずPlanckをMacに接続したまま裏にある小さな穴の奥にあるリセットボタンを何か尖ったものでしばらく押して、ファームウェアが書き換えられるモードに切り替えます。次に別のキーボードを使ってMacのターミナルで先ほどの「qmk_firmware」フォルダに移動し、

make planck-rev4-leopardgecko-dfu

と入力します。この「leopardgecko」というところは先ほど作成したフォルダの名前にしてください。これでファームウェアコンパイルされ自動的にPlanckに転送されます。Planckから電子音が鳴ったら成功です。

デフォルトのキーマップに戻したい時は、

make planck-rev4-default-dfu

と入力すればOKです。

日本語版ローグ(Rogue 5.4)for macOS よもやま話 その5。<カウンターカルチャー>

以前の記事で公開したMac用日本語版ローグ(Rogue)についての雑談です。

ローグ5.4の和訳作業をしている時に不思議に感じたことの一つに、「幻覚をおこす水薬」で起こる作用がやたらと凝っているということがあります。モンスターやアイテムがめまぐるしく変化するのはプレイ画面を見ているだけでもわかりますが、例えば色が出てくるメッセージのときは表示される色の名前がランダムに変わったりしますし、メッセージの内容も幻覚時かそうでないかで変わるものが結構あるのです。それ自体はゲームの進行にはほとんど関係がないので、ほとんどが単なるお遊びの要素です。

↓ 例:「目が見えなくなる水薬」や「空中に浮き上がる水薬」で使用時のメッセージが変わる。

f:id:leopardgecko:20170909231835p:plain

これはローグの製作者が「幻覚」に強い思い入れを持っていた証なのではないかと思います。私がそう感じたもう一つの根拠として、ソースコードに隠された(?)名称があります。「幻覚をおこす水薬」は元の英語版では「hallucination」なのですが、ソースコードの注釈には「LSD」と書いてあるのです。つまりこの水薬は実在の幻覚剤であるLSDをモチーフにしたものだったことがわかります。

↓ ソースコードに「LSD」と書いてある

f:id:leopardgecko:20170909232017p:plain

アメリカでLSDが全盛だったのは60年代後半から70年代始めのサイケデリックブームの時期でしょう。ローグが作られた1980年はすでに収束に向かっていた頃でしょうが、まだ70年代の記憶は新しい時期でしょう。製作者もLSDの使用経験があったのかもしれませんし、少なくとも身近に感じていたのは確かでしょう。

ここで突然スティーブ・ジョブズの話題に移りますが、ジョブズは60年代の音楽や文化すなわちカウンターカルチャーが大好きな人で、ボブ・ディランビートルズのディープなマニアでしたしLSDマリファナの経験もありました。ジョブズが活躍を始めた時期、つまり70年代後半はエレクトロニクスとカウンターカルチャーが非常に接近していた時期だったと言えるでしょう。これはアメリカ独自の現象だったのではないかという気がします。

ローグの製作者もジョブズと同様にカウンターカルチャーに強い親近感を覚えていたのではないかと思います。LSDの件に加えて、もう一つ根拠があります。添付文書の「【運命の洞窟】へのガイド」を見ると、オプションの説明でキャラクターの名前を変更する例がありますが、その名前は「Blue Meanie」と書いてあります。これは1968年に製作されたサイケデリックなアニメ映画の「イエロー・サブマリン」に出てくるキャラクターの名前で、この映画にはビートルズがアニメのキャラクターとして主演しています。ローグの製作者もジョブズ同様にビートルズのファンだったのでしょう。

↓ 「【運命の洞窟】へのガイド」より抜粋

f:id:leopardgecko:20170909234131p:plain

こういったことを総合的に考えてみると、70年代後半から80年代前半にかけてエレクトロニクスとカウンターカルチャーの親和性が非常に高い時期があったのだと思います。ローグがただのお硬くて真面目なファンタジーではなく、どことなく人を食ったようなユーモアに満ち溢れているのはそういうところからも来ているのではないかなと思った次第です。

日本語版ローグ(Rogue 5.4)for macOS よもやま話 その4。<仕様変更>

以前の記事で公開したMac用日本語版ローグ(Rogue)についての雑談です。

jRogue for macOS(以下jRogue)には少しだけオリジナルとは変更しているところがあるのですが、今回はその説明をします。

オリジナルのRogue 5.4はHomebrewでインストールすることができますが、そちらで遊んだことがある人であればjRogueとの違いがすぐに目につくだろうと思います。パッと見たときにすぐわかる違いの一つは、jRogueでは背景を黒、文字を白に設定していることです。

Homebrew版Rogue 5.4を背景を白に設定しているターミナルで起動すると、以下のような画面になります。

f:id:leopardgecko:20170823163341p:plain

jRogueではターミナルの設定に関わらず背景は黒で表示されます。

f:id:leopardgecko:20170823163356p:plain

カラーモードでも同様です。

f:id:leopardgecko:20170823163411p:plain

黒を背景にしたのは、昔の端末はそういうものが一般的だっただろうということもあるのですが、一番はこの方がゲーム画面としてより適切であろうという考えからです。

もう一つの違いは、オリジナルはプレイヤーの位置にカーソルが表示されますが、jRogueではあえてカーソル表示をしないようにしています。これは私が外観をカスタマイズする上で参考にしたメッセージ分離型ローグの仕様を反映したものですが、カーソルの有無をじっくりと見比べた結果、カーソルはない方が美しいだろうという私の勝手な個人的判断も含まれています。ただしカーソルを消すとプレイヤーの位置がわかりにくくなってしまうのでオリジナルのままにしておくべきか非常に迷いました。オプションで選択できるようにしようかとも考えたのですが、やたらと複雑にするのも良くないだろうと思い、えいやっと思い切って現在の仕様に固定しました。

他にはオリジナルではスコア表示画面で最新のスコアの行が反転表示されない不具合があったので修正しました。また、遠くの怪物がわかる水薬を飲むと他の部屋にいる怪物が反転表示されるようになるのですが、jRogueの元になっている5.4pのソースではカラー表示の時は反転表示がされない不具合があったので関数を追加するなどして動作の修正を行いました。多分これはMacだけの問題ではなく元のWindowsLinux版でもカラーでは反転表示されないのではないかと思うのですが、私はWindowsLinuxも使っていないので検討できません。下の画像に遠くの怪物が知覚できる状態の例を出しますが、プレイヤーがいる部屋以外の怪物が反転表示されているのがお分かりになるかと思います。

f:id:leopardgecko:20170823170319p:plain

 

最後に、細かいところですがオプションの「持ち物の表示方式」が「上書き(Overwrite)」になるように修正しています。オリジナルのソースコードMacでそのままコンパイルすると「クリア(Clear)」がデフォルトになります。何が違うかというと、「上書き」の場合はマップを表示したまま画面の右上に持ち物を表示するのですが、「クリア」の場合はマップ画面をいったん消して持ち物だけを表示します。Rogueの歴史の中では「上書き」が最新の表示方式らしいのですが、当時は「clear-to-end-of-line」という機能を持たない端末は表示速度が遅くなるため、そういう端末では旧来の「クリア」がデフォルトになる仕組みになっていたようです。Macのターミナルでは「clear-to-end-of-line」の機能はないと判定されて「クリア」の設定になってしまうのですが、今のMacで表示速度が問題になることはありません。表示が速い端末では「上書き」で表示するのが開発者が意図した動作でしょうから、そのように修正しました。

これが「上書き(Overwrite)」の持ち物表示。

f:id:leopardgecko:20170823223835p:plain

こちらが 「クリア(Clear)」。マップなどの表示が画面からいったん消える。

f:id:leopardgecko:20170823223945p:plain

 

不具合の修正はともかく、オリジナルからの仕様変更はやって良いものかどうか悩むところです。私としてはRogueを単に歴史的な遺産としてそのまま保存するのではなく、2017年の今でも楽しく遊べるゲームとして再現したいと思っています。あくまで元のままのオリジナル性にこだわる方は、MacではHomebrew版のRogueをお使いになることをお勧めします。

(ただしHomebrew版には上述の持ち物の表示方式の問題とスコア表示の際に最新の行が反転表示されないという不具合もあるのですが・・・)

日本語版ローグ(Rogue 5.4)for macOS よもやま話 その3。<走る>

以前の記事で公開したMac用日本語版ローグ(Rogue)についての雑談です。

今回は走る動作についての説明をしてみます。

シフトキーとコントロールキーの違い

ローグで移動するためには「hjkl」キーをタイプするのは皆さんよくご存知でしょうが、シフトキーまたはコントロールキーを押しながら移動キーをタイプすると走ることができます。

シフトキーを押した場合は、モンスターにぶつかったりアイテムの上に乗って拾ったりするところまで進みます。動かないモンスターにもぶつかってしまうので、むやみに使うと危険なコマンドです。氷の怪物に衝突して一瞬でゲームオーバーになってしまうこともありますから。

コントロールキーを押した場合は、ぶつかる前に自分の隣に何かを見つけると止まります。比較的安全なコマンドだと言えるでしょう。

慣れるまではコントロールキーだけを使った方が良いでしょうが、明らかに止まる必要がないところを駈け抜けるときにシフトキーを使うなど使い分けをすれば動作のサクサク感が上がるでしょう。

言葉だけで動作の違いを説明するのは難しいので、一例を動画でお見せします。

www.youtube.com

 

オプションの「jump」とは

jRogue for macOSでは走るときに動いている様子が一コマ一コマ表示されますが、オプション設定で瞬間移動させることも可能です。そのためには、「o」キーでオプション設定を呼び出し、「移動中の表示を行わない ("jump")」を「True」に設定します。

設定を変えるには、オプション画面が表示されたらリターンキーを押して設定を変えたい行にカーソルを移動し、オン(True)にしたい場合は「t」を、オフ(False)にしたい場合は「f」を押すだけです。

アニメ表示はいらないのでサクサクと進めたい時には便利な設定です。

www.youtube.com

 

オプションの「passgo」とは

オプションの「通路の角で止まらずに進む ("passgo")」で、通路を走るときに曲がり角で止まるかどうかの設定をすることができます。

もともと初期のRogueでは曲がり角で止まるのがデフォルトの動作で、のちのバージョンで曲がった通路でもドアからドアまで一気に走ることができるオプションが追加されたようです。曲がり角で止まらなければならない理由も特にないと思いますので、これは常に「True」にしておいて良いのではないでしょうか。

初期Rogueの雰囲気を味わいたいオールドファンであれば、あえて「False」に設定するのもありでしょう。GUI版のオリジナルモードやCUI版のデフォルト設定は「False」になっています。

www.youtube.com

 

Rogueは非常に古い黎明期のコンピューターRPGですが、走るという単純な行動に対する設定だけでもこれだけのバリエーションがあるのは驚きです。Rogueの制作者たち自身がRogueを愛し丁寧に作っていた証であろうと思います。