2018

ゲームを消化したい

「暇になったらやるリスト」がゲーム以外に山積みなので、本当にやりたいゲームは「暇じゃなくてもやるリスト」に入れないといけない。人生のスケジューリングに失敗している。またはどうにかしてマルチタスク人間になる必要があるが、そうすると自分Aよりも自分Bのやっていることが楽しそうで自分Aが怒り出す、という事態が。こんな話を藤子不二雄の漫画で読んだ気がする(多分ドラえもん)。

DETROIT: BECOME HUMAN

Quantic Dreamの最新作、DETROIT: BECOME HUMANをとりあえず一周目終了。UIがカッコイイということで普段ゲームをやらない層でも話題になっているらしいが、そんな理由でいいのでまあプレイして欲しいゲームだ。

で、一周目終了したのだが、自分が観たストーリーを人に教えたくない。何故ならば、このゲームは分岐が多い上に正解がない。他の人がプレイしたら違うストーリーになっているはずで(もちろん大筋は変わらないと思うが)、しかも自分が選んだ選択のせいで知ることができなくなった伏線や謎もあって、他人とこのゲームの話がしたいのに話ができないじゃないか!フラストレーション!

例えば、これは多くのところでネタバレされているがメニュー画面に登場するアンドロイド「クロエ」も本編に絡んでくる上に、「初めてチューリング・テストに合格したアンドロイド」(Wikipedia)というあたりで、「チューリング・テストに合格ってことはつまり、え?え?」みたいな。スタートボタン押してからメニュー画面出ている間にちょっとトイレ行ってくるわ、みたいなこともできない。

その大筋の話をすると、アンドロイドと人間の区別が付かなくなったらどうなりますか、という話。「ブレードランナー」 + Quantic Dreamらしい人の心理にこだわったストーリーとなっている。映画のようにぼおっと観ていたいのに、操作を迫られるから困る(そして嬉しい)。

早く二周目やりたいが、それ以外にやらねばならないゲームが。というかゲーム以外ががが。

LIFE IS STRANGE: Before the Storm

ライフ イズ ストレンジ ビフォア ザ ストーム」(カタカナで書くとむっちゃかっこ悪い)は「LIFE IS STRANGE」の外伝。

外伝なので本編よりも長くはないし、本編のファンにとっては本編に登場する登場人物があちこちに出てくるボーナスコンテンツくらいな感じではある。ただ、今からプレイする人がいるならば、どっちからやってもいいかなーとは思う。それくらい、単体でも成り立つように丁寧に作られていたと思う。

一貫して、思春期の心の痛みや人生の選択についての話ではあるが、本作品ではもう一つ「人生は舞台」「誰のために嘘をつくのか」というテーマがあり、これもまたある意味で人生の選択だよなぁ、と思う。薬物描写が出てくるためにCEROが「D」だが、リアル10代がプレイするよりもおっさんおばさんになってからプレイしたほうが、主人公を見守る大人たちの視点も持てて楽しめる気がする。

「日本語版」について

「LIFE IS STRANGE: Before the Storm」(以下、「LiS:BtS」)は結構前にSteamで英語(つまり全世界バージョンの)PC版を購入だけしておいて、やがて日本語吹き替え音声が追加ダウンロードになるまで、と放置していた。

「DETROIT: BECOME HUMAN」が終わった直後にPS4を何気なく操作してオンラインショップに行ったらば、PS4版がちょうど配信開始されていた。「あれ?もしかして日本語吹き替え版が完成したってことか?」と慌ててSteamを観てみると、なんとPS4版発売と同じ日にSteamの日本語吹き替えも配信されているではないか!ということで速攻ダウンロード&プレイ開始となった。

「LiS:BtS」は全世界発売元がスクウェア・エニックスだし、前作も国内販売版があり、発売前から「日本語吹き替え作っているよ!」と公式アナウンスが早々にあったので吹き替えが終わるのを待つことができた。だが、これは結構メーカーが「頑張った」対応で、一ゲーマーとしては感謝しかないのである。

「わざわざ日本語に翻訳する」という作業にコストをかけるからにはそれだけ「日本語版なら買う」というユーザーの数が必要になる。しかも「日本語版にするために先に買う」人はいないのだから、この翻訳作業は先行投資になる。翻訳だけではなく吹き替えも、となると声優が必要となるので更にコスト増だ。

翻訳の質にしてもいくつもの選択肢がある。専門チームを作る、外部の翻訳サービスを使う、「機械翻訳」を噛ますだけの場合もあれば、最悪ファンが作った翻訳を使うという選択肢さえあるが、それでも翻訳コストは無料にはならない。なぜなら、わざわざ「英語を日本語に差し替える」作業が発生するからだ。

本作、「LiS:BtS」の日本語吹き替えは見事なできばえだが、それでもPC版では音声のズレなど不自然な箇所はいくつかあった。そもそも翻訳は、音声であっても文字であっても、元々の英語と吹き替えの日本語の長さが違うから、単に差し替えるだけではなくて詰めたり伸ばしたりしないとおかしなことになる。ゲームの場合はさらに条件分岐で表現が変わる可能性があるので、作業量が増える。

世界の面白いゲームを日本語でプレイしたければ、日本語でプレイしたいユーザーがここにいるぞ!ということを発信しなければならない。さもなくば、頑張って英語を覚えるしかない。ゲームに限らず他のものでもそうなのだが。


しつこいけれど、また自動化の話

以前書いたように、この日記はMarkdown形式のテキストファイルをBitBucketのレポジトリにPUSHすると、CIサービスであるWerckerがWebhookされ、Hugoによってhtmlファイルを生成して、そのhtmlファイルをGitHub PagesにPUSHしている。

その、日記用Markdownファイルを生成するスクリプトはAutomatorで書いた。これから、そのMarkdownファイル(拡張子は.md)を右クリックして「サービス」メニューからgitコミットするスクリプトのテストを行う。

まずファイルをaddして、それからcommit。gitコマンド的には、いちどaddされているファイルをもう一回addしても問題ないようなので、何度でも実行可能。

cd {日記gitのルートディレクトリ}

currentDate=`date +%FT%T%z | sed -e 's/\(.\{22\}\)/\1:/'`
for f in "$@"
do
	ext=`echo ${f##*.} | sed "y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/"`
	if [ $ext = "md" -a ! -d $f ]; then
		sed -i '' -e 's/^date: "[^"]*"$/date: "'$currentDate'"/g' $f
    /usr/bin/git add $f
	fi
done

/usr/bin/git commit -m '[add|mod] dayly post'

日記の中の日付(日記の更新日)はcommitした瞬間の日付に上書きしている。日付フォーマットがdateコマンドのままだとおかしくなる(タイムゾーン「+0900」ではダメで、「+09:00」だとOK)ので強引に変更している、など。強引でよろしくない感じのスクリプトだが、まあとりあえず動く。


日記の自動化の続きとかいろいろ

しばらくは日記を書きながら、ついでにアップロードの実験をしているので謎のエントリーが増えると思う。

日記に書きたいことメモ(順不同):

  • 日記の設定を日記にメモする、更なる自動化の模索
  • Instagramに対していいたいこと、または収益化について思うこと
  • ニコニコはどうなるのかの妄想
  • 最近の国会と、政治ってそもそもそういうことだったっけみたいな浅い話
  • フロントエンド周りの技術について(これは定期的に書こうと思わないとダメなやつだ)
  • 甥っ子が可愛い、または甥っ子を用いたスクワットについて
  • 夜のご飯が最適化されないって文明としてどうよ
  • アニメ
  • ゲーム
  • どうぶつの森奴隷
  • 公共空間のトイレの話とジンクスについて
  • ラジオのある文化的な暮らし
  • Franzに色々させてみたい、させてみる、なんならばFranzじゃなくてもいい

flickrはイケているか

このボタンを押してください

日記のサムネイルにflickrの画像は使えないだろうか。という実験。

肝心の写真がイケていないというオチ、ではなくて。

試しにflickrのEmbedスクリプトを出力して埋め込んでみたのだが。読み込み時の画面幅に合わせてスタイルをゴニョゴニョしちゃうタイプのスクリプトになっているので、表示後の画面幅変更に対応できていない。この微妙にレスポンシブじゃない考え方はどこかではメジャーなのかな、海外のテンプレで他にもみた気がする。……良くない。

というか、flickrはきっと思想的には埋め込まれる前提じゃないんだな。狙ってやっているなら潔いようにも思うが、なんとなくだが単に周回遅れ(それも2周くらい)な気がする。この間も買収云々があったりと、flickrはちっとも「イケてる」感じのするサービスではなくなった。とはいえInstagramだって親会社はFacebookになってしまったし、APIの締め付けがキツいしで、操作性云々とは違うところで微妙。

写真共有サービスなんて、儲からないからこんな感じなのかな。使えているうちはいいけれども、どんなサービスであっても、10年後も今とおんなじサービス形態で生き残ってくれる保証はないという201x年。未来はまだか。

Hugoのshortcodesをちまちま増やす

今日もHugoの話をちょっとメモしておくと、上記のflickrもそうだが、shortcodeをいくつか自作している。といっても、PCで埋め込みたいタグを書いたものと、AMP対応のためにそのタグを書き直したもの、という簡単な出し分けをしているだけであるが。

現時点では

  • flickr
  • amazon
  • img
  • iframe

の4つができた。 たとえば <img> タグをそのまま書くのではなく、

< img src="***" width="160" height="120" alt="テスト" >
↓
{{< img src="***" width="160" height="120" alt="テスト" >}}

としておく。

これをPCでは、

<img
src="{{ .Get "src" }}"
alt="{{ .Get "alt" }}"
{{ with (.Get "width") }} width="{{ . }}"{{ end }}
{{ with (.Get "height") }} height="{{ . }}"{{ end }}
/>

AMPでは、

<p>
<amp-img
src="{{ .Get "src" }}"
alt="{{ .Get "alt" }}"
{{ with (.Get "width") }} width="{{ . }}"{{ end }}
{{ with (.Get "height") }} height="{{ . }}"{{ end }}
layout="responsive"></amp-img>
</p>

てな感じに。至極簡単な置きかえを行うことで、なんとなくAMP対応ができる。

車輪を再発明している感は否めない。


Hugoで日記を書くための自動化

先日の日記に書いたように、BitBucketに日記をPUSHするとゴニョゴニョしてGitHub Pagesで公開されるという仕組みが完成した。

日記を一日分追加すると、その日の日記ページのHTMLができる。のみならず、トップページに直近5日分の日記が載っているのでそこも再生成。すると日記が一日分後ろに押し出されて、ページネーション(次のページ)があるのでその後ろのページ全部が再生成させる。また日記につけたタグから、そのタグのリストページも再生成される。結果、数百のファイルが再生成される。うわーお、無駄が多い。でもなぁ、日記を一日分ずつ読み込むのもちょっと馬鹿馬鹿しい。まあそれはともかく、自動的にhtmlは作れるようになった。

では次は日記を新規作成するところだ。コマンドラインから Hugo new ファイル名 でページのひな形が書き込まれたMarkdownファイルが完成する。これは楽チン……、と思いたいところだがもっと楽にしたい。

Automatorを使って、例えば以下のような感じのシェルスクリプトをアプリ化(というかアイコン化)して、ボタン一発で今日の日記を作ってエディタを開く。

cd 'Hugoの作業ディレクトリ'

# この例では年別にファイルを格納したいので、post/YYYYディレクトリを作成している
targetYear=`date +"%Y"`
mkdir -p $targetYear

# 日付からファイル名を生成する。この例では post/YYYY/YYYY-MM-DD.mfd
targetDate=`date +"%Y-%m-%d"`
targetFile="post/$targetYear/$targetDate.md"

# 当該ファイルがなければ新規作成
if [ ! -e "content/$targetFile" ]; then
  /usr/local/bin/hugo new $targetFile
fi

# この例ではアプリを指定せずにファイルを開く
open "content/$targetFile"

これで、日記を書くところまでアイコンクリック一回でだけで進められる。

本当は、日記を書き終えたあともcommitとpushをアイコンクリック一回でやりたいが、エラー処理とか連打時の動作とか考えるとちょっと面倒そうなので、いったんここまでとして、今日記を書いているこのファイルをこのあと手動でcommitしてpushすることにする。

……コミット時のメッセージが日本語だとうまく動かない?