まくろぐ
更新: / 作成:

舞台は 1850 年代初頭のロンドンで、ありえたかもしれない世界を描いたスチームパンク小説です。 スチームパンクとはなんぞやというと、19 世紀の産業革命期の技術をベースにした架空の世界観を持つジャンルのことらしいです。 特に蒸気機関が高度に発達した if もしもな世界を描いたもので、スチームで蒸気な気分でウェーイ って感じですね(パンクというのは既存秩序への反抗的な意味らしい)。 まぁ SF の中のサブジャンルと考えておけばよさそうです。知らんけど。

1990年の刊行当初は「これぞスチームパンク!」と話題になったようですが、確かに情報が詰め込まれていて圧倒されますね。 歴史改変 SF なので、ヴィクトリア朝や産業革命の背景知識があるとより楽しめる作品だと思います。 一方で、多くの書評で指摘されているように、背景知識がないと理解が追いつきにくい部分もあります。 少なくとも『夏への扉』や『トリフィド』、『ハルヒ』ほどライトな SF ではなく、読み応えがあります。 私は歴史に疎いので純粋なフィクションとして楽しみましたが、これをきっかけに実際の歴史を学ぶのも一興ですね(ホントカ)。

まず、書籍のタイトルにもなっている 「ディファレンス・エンジン(階差機関)」 とは、実在したチャールズ・バベッジ (1791-1871) が設計した機械式計算機のことです。 歯車がたくさん組み合わさって動く巨大な計算機で、当時は完成しなかったのですが、1991 年にイギリスの科学博物館がバベッジの設計図をもとに実際に組み立てて動作させることに成功しています。 チャールズ・バベッジはより汎用的な 「解析機関」 も設計しており、こちらはプログラムを 「パンチカード」 の形で入力する仕組みを備えていました。 もちろん、この解析機関も当時は完成しなかったのですが、物語の中では高度な解析機関が完成しています。 というか、このエンジンが社会を支配しています。

作中の世界ではほぼすべてが蒸気機関で動いているため、ロンドンの街中には煙が立ち込め、「大悪臭」 が漂っています(大悪臭は現実に 1858 年にロンドンで起こった事件です)。 また、中央統計局が全市民データを管理しており、徹底した 「監視社会」 が敷かれています。 こういったディストピア的な要素は現在の SF でもよく見られますが、19 世紀の産業革命期を舞台にしているのがユニークです。 史実と同様に、労働者階級の反乱である 「ラッダイト運動」(機械に仕事を奪われるものかという機械破壊活動)が起こり、政府により徹底弾圧されています。 物語の中心となる構図は、バイロン首相率いる機械化急進派 vs ラッダイト残党(キャプテン・スウィング)です。

ここまで理解していれば、すっと読み進められると思います。 まったく背景を知らないとちょっと辛い。

ちなみに、現実世界ではエイダ・ラブレス (1815-1852) が解析機関用のプログラムを考案しており、世界初のプログラマーとされています。 作中ではバイロン首相の娘という設定なので、エイダ・バイロンという名前になっていますが、天才プログラマーであることに変わりはありません。 昔 Ada というプログラミング言語がありましたが、これは彼女の名前に由来しています。 解析機関で使うパンチカードはストーリー上の重要な要素になっています。

本書には、チャールズ・バベッジやバイロン、エイダをはじめとする実在の歴史上の人物が登場しますが、それぞれの役割は現実と微妙に異なっています。 このズレがとても面白いんでしょうね。 私にはあまり分からずでしたが(^^;

登場人物現実世界ではディファレンス・エンジンでは
チャールズ・バベッジディファレンス・エンジンを構想した数学者・発明家。計算機の理論を確立したが生前には完成しなかった。ディファレンス・エンジンが実用化しており、社会を変革した歴史的巨人として扱われている。エンジンの父。機械計算と統計が国家運営の基盤となっている。
ロード・バイロン(ジョージ・ゴードン・バイロン卿)浪漫派を代表する詩人・貴族。ギリシア独立戦争を支援し現地で病没したことで知られる。ギリシアで死なずに生き延び、イギリスの急進的政治家となり「ラッダイト」を取り込んだ産業革命派の指導者として台頭。首相にまで上り詰めた。
エイダ・バイロン(実:エイダ・ラブレス)バベッジの解析機関についての注釈を残し、「世界初のプログラマー」とも評される数学者・貴族女性。チャールズ・バベッジの親友・愛弟子で、「エンジンの女王」と称される天才科学者。バイロン首相の娘。
ベンジャミン・ディズレーリ保守党の政治家・首相であり、小説『シビル』などの著者としても知られるヴィクトリア朝の政治家兼小説家。首相にはならず、大衆向けタブロイド紙のゴシップ系ライターとして描かれ、政治の中心から外れた存在。彼の小説『シビル、または二つの国民』から複数の登場人物が借用されている。
サム・ヒューストンメキシコからテキサスを独立させた将軍・初代大統領。テキサス共和国大統領や米国上院議員を務めた軍人・政治家で、テキサス史の中心人物の一人。テキサス(Texian)独立勢力の亡命指導者としてロンドンに潜伏。英国貴族向けの演説を行い支援を集め、テキサスに帰還して軍隊を再編しメキシコ支配からの完全独立を目指している。
ローレンス・オリファント外交官・作家であり、各国で活動したスパイ的役割も持つ人物。旅行記作者として知られる存在であり、政府工作員として暗躍。物語後半はオリファントの行動がフォーカスされます。
森有礼翻訳通詞・外交官、文部少輔として東京英語学校(後の東京大学一部)を設立。英語教育と欧化政策を推進したが、自由民権運動弾圧で暗殺。若き日本人留学生として英国に渡ったオリファントの愛弟子。蒸気コンピュータや英国文明に魅了され、「オリファント=サン」と呼び慕う技術崇拝者。

実は、下巻の巻末には 36 ページにも渡る 差分事典(ディファレンス・ディクショナリ) なるものがついており、歴史上の人物の説明や、用語が解説されています。 最初に言ってよ。 もう一回読むか……

関連記事

更新: / 作成:
/p/9xjirjr/img-bridget.png
図: Guilty Gear をプレイする Guilty Gear のブリジット

格ゲーはもう何十年もやっていなかったのですが、『Guilty Gear Strive(Nintendo Switch版)』 がサクサク動いて評判がいいということで始めてみました。 結論としては、すんごく面白いです。

シンプルな連続技であれば、入力はかなりゆっくり目で大丈夫なので初心者にも優しいです。 一方で、ロマンキャンセルなどの高度なテクニックを使えるようになると、かっちょいい動きができるようになります。 結構前に出たタイトルですが、長年プレイされ続けているのも納得です。 チュートリアルやトレーニングモードが充実しているので、一人で練習してるだけでも楽しいです。 スト6と違って、日本人ウケするアニメ調のキャラクターもいいですね。

最近流行っているレバーレスコントローラーもちょっと試してみたかったので、ひとつ買ってみました。 といっても、Hit Box みたいな有名どころのレバーレスは高かったので、数千円で売っていた 『HAUTE BOARD B16』 という超コンパクトレバーレス。

/p/9xjirjr/img-haute1.jpg
図: HAUTE BOARD 外観

ほぼキーボードです(笑)。 作りはしっかりしていて、Switch 以外のプラットフォームでも使えるので、これで数千円はかなりお買い得でした。 キーボードで格ゲー?と思うかもしれませんが、原理的にはレバーレスで同じなのでまったく問題なくプレイできます。 Steam 版の Guilty Gear Strive だと、PC キーボードでプレイしている人もそこそこいるみたいで、これはこれでありなのだと思います。

ちなみに PC キーボードといっても、格ゲーで使うには複数キーの同時押し(n キーロールオーバー)や、上下キー同時押しをニュートラルにするレギュレーション(SOCD クリーニング)に対応していないといけません。 いわゆるゲーミングキーボードというやつですね。 もちろん上記の HAUTE BOARD はこれらの機能に対応していますが、Happy Hacking Keyboard や Realforce などのプログラマー御用達のキーボードは使えません。

上記写真で気づいたかもしれませんが、ちょっとだけ DIY して静音用のシートを挟んでいます。 こんな感じで。

/p/9xjirjr/img-haute2.jpg
図: HAUTE BOARD 静音化

キースイッチはよい感じのメカニカルなのですが、底打ちの音を消すためにゴムを挟んでいます。 市販の静音リングというものもあるのですが、このキースイッチのように、外枠部分(四角形になっている部分)が同時に沈み込むタイプでは構造的に適用できないので自作しました。 キーを離したときの音はどうしても出てしまうのですが、これを解消するにはキースイッチごと変えるしかないですね。 いいキースイッチが見つかったら試してみます。

設計図も一応載せておきます。といってもただの切り抜き用の型ですが。

/p/9xjirjr/img-layout.png
図: 静音シート設計図

格ゲー用のレバーレスは、コントローラーの下の方にジャンプボタン(上ボタン)が配置されていて左手か右手の親指で押すのですが、これがかなり頭の体操になっています。 ボケ対策にもってこいです。 ちなみに、HAUTE BOARD には左上に WASD 配置の上ボタンが付いていて思わず押してしまうのですが、Hit Box のような硬派なレバーレスコントローラーだと付いてないので、格ゲーではこのキーは使ってはいけません(と勝手に思ってます)。 FPS 系のゲームをするときは便利なのかもですが。

まだ慣れるまで時間かかりそうですけど、コマンド入力は通常のレバー型コントローラーより速くなりそうです。 これ、思うように操作できるようになったらすごく気持ちいいんだろうなぁ。 指をちょこちょこ動かしているだけで、キャラクターが自由自在に動き回るという。 しばらく頭の体操を続けてみます。

関連記事

更新: / 作成:

Visual Studio Code をキーボード操作で効率的に使うためのショートカットキーのまとめです。 Vim/Neovim などのエディタに比べると、Visual Studio Code ではマウスを使いがちですが、慣れればほとんどの操作をキーボードだけで完結できます。 エディタ内での編集操作は Vim 拡張や Emacs キーバインドなど好みが分かれるため、ここでは主にペーン移動などの UI 操作に絞っています。

ファイル名で開く、シンボル名で開く

キー操作説明
Cmd + P
(Ctrl + P)
ファイル名を検索して開く
workbench.action.quickOpenNavigateNextInFilePicker
Cmd + T
(Ctrl + T)
シンボルを検索してジャンプ(ワークスペース内)
workbench.action.showAllSymbols
Cmd + P 後に # プレフィックスでも OK
Cmd + Shift + O
(Ctrl + Shift + O)
シンボルを検索してジャンプ(ファイル内)
workbench.action.gotoSymbol
Cmd + P 後に @ プレフィックスでも OK
Cmd + W
(Ctrl + W)
ファイルを閉じる
workbench.action.closeActiveEditor

タブの切り替え

キー操作説明
Ctrl + Tabタブの一覧を表示して切り替え
workbench.action.quickOpenNavigatePreviousInEditorPicker
Cmd + Option + [
Cmd + Option + ]
前のタブへ workbench.action.previousEditor
次のタブへ workbench.action.nextEditor

ペーンの移動、表示・非表示

キー操作説明
Cmd/Ctrl + 0サイドバーをフォーカス
workbench.action.focusSideBar
Cmd/Ctrl + 1
Cmd/Ctrl + 2
Cmd/Ctrl + 3
1/2/3番目のエディタペーンをフォーカス
workbench.action.focusFirstEditorGroup
workbench.action.focusSecondEditorGroup
workbench.action.focusThirdEditorGroup
Cmd + Shift + IGitHub Copilot チャット(セカンダリサイドバー)をフォーカス
workbench.action.chat.openagent
Ctrl + `エディタ↔︎ターミナル間のフォーカス移動(同時に表示・非表示)
workbench.action.terminal.toggleTerminal
Cmd + Shift + Eエディタ↔︎エクスプローラー間のフォーカス移動
workbench.view.explorer
Cmd + Bプライマリサイドバーの表示・非表示(フォーカスは移動しない)
workbench.action.toggleSidebarVisibility
Cmd + Opt + Bセカンダリサイドバーの表示・非表示(フォーカスは移動しない)
workbench.action.toggleAuxiliaryBar
Cmd/Ctrl + \エディタ/ターミナルの分割
workbench.action.splitEditor
workbench.action.terminal.split
Cmd + Ctrl + 右
Cmd + Ctrl + 左
現在のエディタを右/左グループに移動(ついでに分割/統合可能)
workbench.action.moveEditorToNextGroup
workbench.action.moveEditorToPreviousGroup

カーソル下の関数の定義へジャンプ

カーソル位置にある関数や変数の定義にジャンプする場合は、F12 キーだけ覚えておけばなんとかなります。 個人的には Vim 拡張 を入れているので、gd (go to definition) をよく使います。

キー操作Vim拡張説明
F12gdカーソル下のシンボルの定義/参照へジャンプ
Ctrl + -Ctrl + Oジャンプ位置を 1 つ戻る
Ctrl + Shift + -Ctrl + Iジャンプ位置を 1 つ進む
(該当なし)*カーソル下の単語をファイル内検索

さらなる高みへ …… 独自のキーバインド

デフォルトのキーバインドに慣れてきたら、さらに自分好みにカスタマイズするのもオススメです。 次のようにしてキーバインド用の設定ファイル (keybindings.json) を開くことができます。

  1. Cmd/Ctrl + Shift + P でコマンドパレットを開く
  2. 基本設定: キーボード ショートカットを開く (JSON) (Preferences: Open Keyboard Shortcuts (JSON)) を選択する

下記は設定の一例です。

keybindings.json の例
[
  // エクスプローラー内で新しいファイルを作成
  {
    "key": "cmd+n",
    "command": "explorer.newFile",
    "when": "explorerViewletVisible && filesExplorerFocus"
  },
  // エクスプローラー上で新しいフォルダーを作成
  {
    "key": "cmd+shift+n",
    "command": "explorer.newFolder",
    "when": "explorerViewletVisible && filesExplorerFocus"
  },
  // タブを左に移動(Chrome のショートカットと合わせる)
  {
    "key": "ctrl+shift+pageup",
    "command": "workbench.action.moveEditorLeftInGroup"
  },
  // タブを右に移動(Chrome のショートカットと合わせる)
  {
    "key": "ctrl+shift+pagedown",
    "command": "workbench.action.moveEditorRightInGroup"
  }
]

このファイルを直接編集してもよいですし、Cmd + KCmd + S で開くキーバインド一覧画面からも設定可能です。

UI 上の特定のボタンを右クリックして「キーバインドの構成」を選択すると、そのボタン用のキーバインドを確認&設定できます。 マウス操作で頻繁に押しているボタンがあれば、ショートカットキーを割り当てておくと便利です。

関連記事

メニュー

まくろぐ
サイトマップまくへのメッセージ