まくろぐ

エミュレーター: FCEUX で TAS 動画を作る

更新:
作成:

ファミコンのプレイ動画を作る機会があったので、その操作手順をメモメモ。 いわゆる TAS (Tool-Assisted Superplay) と呼ばれているもので、うまくプレイできたものだけを繋げた動画を作ります。

今回使うのはファミコンのエミュレーター FCEUX で、ムービーの保存機能がついています(実際には各フレームの操作内容を記録しているだけ)。 これとセーブ機能を組み合わせて、何度もプレイをやり直すことで、ノーミスプレイの動画を作ることができます。

録画手順

ゲームの ROM をロードした状態で、メニューから MovieMovie Record と選択すると録画(操作内容の記録)を開始できます。

このとき、Record の項目で Start を選択しておくと、ゲームがリセットされたところから操作の記録が開始されるので、普通にゲームを進めていきます。

録画を終了したいときは、メニューから Movie Stop を選択します。 FCEUX の場合、プレイ内容は .fm2 という拡張子の Movie ファイルとして保存されます。

プレイのやり直し(録画内容の上書き)

スロット(0〜9)を使ったステートのセーブ&ロード機能を使うと、任意の地点からプレイをやり直すことができます。

  • Shift + F1〜F10 … スロット 0〜9 へのセーブ
  • F1〜F10 … スロット 0〜9 からロード

このロード機能は Movie Record による録画にも反映されるため、適宜 Shift+F1 でセーブしつつ、F1 でロードすることによって、うまくいったプレイだけの Movie ファイルを作ることができます。

次のようにすると、既存の Movie ファイル (.fm2) を再生して、途中から操作をやり直し(記録内容を上書き)することができます。 Movie ファイルを上書きするときは、ファイルをバックアップしておくと安心です。

  1. メニューから MovieMovie Play を選択
  2. Open Read-Only のチェックを外す
  3. Play ボタンで Movie ファイルを再生開始
  4. 早送りキー(後述)などでやり直したいところまで進めて、Shift+F1 などでステートセーブ
  5. F1 キーでステートロードすると、その地点からの録画が開始される

あとは、納得のいくプレイができるまでステートセーブ&ロードを繰り返すだけです。

動画ファイルに出力する

上記手順で作成した .fm2 ファイルは、あくまでエミュレーター上で再生できる操作データであって、YouTube で見れるような動画ファイルではありません。 安心してください。FCEUX には、動画ファイルを作成する機能もついています。

  1. メニューから MovieAVI Record As を選択
  2. ファイル名を入力して Save ボタンを押す

これで、現在のプレイ内容が動画ファイルへの出力されていきます。 このとき、描画スピードを上げても動画ファイルの内容は正しいスピードのもので作成されるので大丈夫です。

デフォルトのエンコーダー設定だと、若干映像が荒かったりするので、OptionsMovie Options で設定を変えると綺麗になったりします(例えば、AVI Backend driver というところを libgwavi に変えて、エンコーダーに H.264 を選ぶという方法があります)。

(おまけ)キーコンフィグ

FCEUX のメニューから、OptionsHotKey Config を選択すると、キーボードで各種操作を行うためのホットキーを設定できます。 フレームのポーズ機能や、再生速度を制御するためのホットキーを、自分が押しやすいキーに変更しておくと便利です。

  • Emulation / Pause … フレームのポーズ機能(デフォルトが Pause キーなので、Space などにしておくと押しやすい)
  • Speed / DecreaseSpeed … フレームの再生速度を下げる(デフォルトの - でも OK)
  • Speed / IncreaseSpeed … フレームの再生速度を上げる(デフォルトの = でも OK)

関連記事

VS Code で Python 用のフォーマッター (Black) を使う

更新:
作成:

何をするか?

Visual Studio Code に Python 拡張 を入れることで、Python コードの編集(自動補完など)ができるようになりますが、コードの自動フォーマットを行うには、フォーマッターを別途インストールしておく必要があります(いろんなフォーマッターがあるため)。

Python のフォーマッターとしては、autopep8 や yapf などもありますが、ここでは、最近人気がある Black をインストールして VS Code の自動フォーマッターとして設定します。

☝️ 頑固なフォーマッター

Black は自分自身を The uncompromising code formatter と説明しています。 ようするに、「私が定義する設定に従いなさい」という意味で、ユーザーにほとんど設定の余地を残していません(行の長さ程度は設定できます)。 このようにすることで、チーム内でのフォーマット論争を防ぐ効果があります。 TypeScript (JavaScript) でよく使われている Prettier フォーマッターも同様の思想で作られており、ほとんど設定ができないようになっています(こちらは opinionated という単語を使っています)。

Black のインストール

Black は pip で簡単にインストールできます。

$ python3 -m pip install black

VS Code の自動フォーマット設定

Cmd(Ctrl) + Shift + PPreferences: Open Settings (JSON)settings.json フィアルを開き、次のように設定します。

ここでは、Python 用のフォーマッターとして black を使用することと、ファイルの保存時に自動でフォーマットを実行することを指定しています。

settings.json
{
  // Python コードを black でフォーマットする設定
  // (Python 拡張をインストールして pip install black しておく)
  "python.formatting.provider": "black",
  "[python]": {
    "editor.defaultFormatter": null, // Prettier を使わないようにする
    "editor.formatOnSave": true // ファイル保存時に自動フォーマット
  },

  // ...
}

ちなみに、"editor.defaultFormatter": null という設定は、デフォルトのフォーマッターとして次のように Prettier などを設定している場合に必要になります (Prettier は Python コードのフォーマットには対応していません)。

settins.json
{
  "editor.defaultFormatter": "esbenp.prettier-vscode", // Prettier を使う
  // ...
}

関連記事

読書メモ『シンプルリスト』ドミニック・ローホー

更新:
作成:

いろいろなリストを作ることによって、たくさんの小さな幸せに気付くためのヒント集のようなものです。 そのようなリストを集めていくことで、自分の本質が見えてきます。 物事を豊かにとらえることができるようになります。

リストとは

  • リストは、人生を前に進めるための貴重な道具となる。
  • リストは、、、
    • 記憶を助けるものである。ささやかな望み、大事な決意、一時的な情熱、心に誓った人生の信条など。
    • セラピーのようなものである。あなたが道を見失い、心にぽっかりと穴があいてしまったときに、忘れてしまった人生の意味を取り戻してくれる。
    • 私たちの鏡である。人生そのものであり、本質を映し出してくれる。
  • リストを書くコツ
    • 最初のページは、リストのリスト(目次)にする
    • リストは作ってみたいものから始めればよい
    • できるだけ的確で簡潔な文章を書く
    • 日付や見出しの欄を設けて、見た目にも気を配る
    • 分類や書き方は試行錯誤していけばいい
    • 同じテーマのことを複数のノートに分散させない
    • 思い出や夢のリストはこの瞬間から少しずつ育てていく(さかのぼって書く必要はない)

本当の自分

  • これが私と言えるものが見つかるリスト。自らの価値観をはっきりさせることが大切。
    • それをすることで生き生きとできること
    • 好きな話題と嫌いな話題
    • 似合う衣服やアクセサリ
  • 嫌いなもののリスト。自分が好きではないものを知ることは、自分を知ることである。
    • 好きではないこと・もの
    • いらいらすること・もの
    • 2度としたくないこと
    • 嫌なことで変えたいこと
    • 時間を費やしてしまった大切じゃないこと
  • ある人の長所と短所のリスト。自分自身のありたい姿が見えてくる。
    • 親友(好きなところ)
    • 思春期の友達(一緒にしたこと)
    • 恋人(どこに惹かれたか)
    • 先生(教えられたこと)
    • 家族(長所、短所)
    • 強い印象を受けた人(何を感じたか)
    • 小説や映画で印象に残った登場人物

シンプルに生きる

  • 習慣をシンプルにするリスト。
    • 1日に1つだけ美のお手入れをする
    • 掃除は1度に1か所だけにする
    • 取引銀行は1行だけにする
    • 1週間のうち1日は何もしない日を作る
    • 美術館では1枚の絵をじっくりと見る
  • 持ち物をシンプルにするため、ひとつだけあればいいものをまとめる。
  • デビッド・アレンの GTD のコツは、具体的な行動を書き出すということ。タイヤを交換しなければいけないならば、「タイヤを替える」ではなく、「自動車整備工場の予約をする」と書く。
  • モチベーションを上げる特効薬は、「デスクの整理」や「請求書の選別」といった、簡単にできることのリスト。
  • 行動のポリシー、モットー、ルールを決めておく。
    • 自然と接する時間を持つ。少なくとも1日に1回は自然を見るなど。
    • 人と話して不快に感じたら、「腹が立つなぁやり返してやる!」ではなく、「自分も同じようなことをしたことがないか?反対の行動をとろう」と考える。
  • 哲学者アリストテレスの言葉「注意深く観察をする能力が発達すればするほど、幸せになる能力が発達する」
  • 時間がないという焦燥感にかられるのは、段取りが悪いからではない。うまく集中できていないことに原因がある。

幸せを再生産する

  • 小さな幸せの瞬間のリストは、幸せな人生そのものである。本当の幸せは、人に自慢するものでも、人に見せるものでもない。五感を意識するのがコツ。
    • 遠くから聞こえるピアノの音
    • 公園の子供たちのはじける笑顔
    • 夕暮れの空を行く渡り鳥
    • 降りしきる雨を眺めながらバッハを聞く
    • ふかふかの絨毯の上をはだしで歩く
    • 起きがけに漂う焼き立てのパンとコーヒーの香り
    • 冬に上質な暖かいコートに身を包み散歩に出かける
    • 雪降る露天風呂につかる
    • 年月を経て味わいの出る皮、家具、ジーンズ
  • 小さな幸せを見つけるヒント。
    • 季節、一日の流れを感じる
    • 食(おいしくて幸せになったもの)
    • 大切な人といるとき、ひとりのときの幸せ
    • 待ちですれ違った印象的だった人
    • 美しいと思った言葉、表現
    • 場所(お気に入りの場所)
    • これまでに見た美しい自然の景色
    • 体験した魔法のようなひととき
    • 自分の理想的な環境
  • 音楽リストはシチュエーションごとに聞くものをまとめる。

悩みから解放される

  • 「ネガティブ思考」は人生の質を悪化させる。くだらない考えはそれを意識すること捨てられる。
  • ルイーズ・L・ヘイ 『すべてがうまくいく「やすらぎ」の言葉』
    • 「しなければならない」「できない」といったネガティブな言葉を使わずに、「したい」「できる」といったポジティブな言葉を意識して使うこと。
  • ネガティブ思考を追い払うリスト
    • ポジティブな文章
    • 夢中になれる楽しいこと5つ
    • 気分転換になること
    • 生まれつき陽気な人
    • にぎやかで楽しい場所
  • 悩み・心配事のリストを書き出すと、客観的になれる。それほど恐ろしいものではないことに気付くことができる。そして不要な感情(不安)は捨てる。
    • 仕事の悩み・心配
    • 交友関係の悩み・心配
    • 体のこと
    • そのトラブルによって引き起こされる感情
    • 理想的な解決法、代替案
  • 不安に耐えられないのは、不安の対象が何かわからないときである。
  • 病気は病名が分かれば治療ができるのと一緒で、自分が苦しい理由を意識できれば、窮地を脱することができる。
  • 不安や不満は一度紙の上に書き出してしまえば、あなたのもとを離れてあなたに影響を与えることはない。不満は紙の中に閉じ込められたのだから。
  • 誰かがいないから寂しいのではなく、自分をしっかり持っていないから寂しいと感じる。そういうときは独り言を書きとめてみる。

魔法

  • なりたい姿を決めて、それを書きとめる。
  • 見たいこと、感じたいこと、考えたいこと、望ましいことだけを選ぶ。そうでないものはくどくど書かない。
  • 人生の挫折とは、新しい日々よりも過ぎ去ったことを大切にし、現状維持と安定を望むこと。そうではなく、これからの人生の可能性を考える。
  • 困難に直面したとき、まずは逃げないことから始めてみる。苦しみから逃れようとすると、ますます苦しみを意識することになる。これまで耐えてきたことをリストにすると、人生の苦しみや過ち、忍耐、挑戦、経験から拾い集めた知恵を自分のものにできる。
  • 人生で成功するために必要なのは、ほんの少しのユーモアのセンスと想像力である。── チャーリー・チャップリン
  • 人は年をとればとるほど、笑いが減っていく。笑いは若さの証拠でもある。笑いのリストを作る。
    • 笑うための話
    • 笑った映画
    • 笑ったシチュエーション
    • 笑わせてくれる人たち
    • まわりを笑顔にするアイデア
  • 「願望リスト」は想像以上の力を秘めている。日付と願望を記入して手元に置いておくだけでいい。矛盾点を気にする必要はなく、人知を超えた神秘と奇跡を信じること。
    • いつかしたいこと
    • いつかなりたい自分
    • いつか実現したいこと
  • 神秘を信じなくなったとき、人は死ぬのだ。── アルベルト・アインシュタイン
  • 自分がどうしたいかを知っている人は、ほかの人よりもずっと早く目的を達成できる。それは、自分がどこへ向かっているかを知っているから。まず何から始めればよいかをわかっているから。

関連記事

メニュー

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