ブログのリスク、生テキストのメリット

これは今から何年前のことだったか、自前でレンタルサーバWordPress置いてブログ書いてたことがあります。まあ今でもWordPress便利だと思うんですが、WordPressってブログシステムとしては圧倒的なシェアがあって、そういうよく普及してるシステムっていうのは攻撃者にとってもよく研究されてるシステムってことでもあります。

ある日DB壊れてるのに気付いて見に行ったら見慣れないファイルが生えててなにかと思ったら攻撃の痕跡だったんですね。攻撃を受けてDBが壊れたのかどうなのか今となっては知る術がないんですが、DBが壊れてるので復元のしようもなく、諦めて Tumblr に引っ越した……という経緯があります。

Tumblr は当時は日本語でいちおう書けていたこともあってしばらくは Tumblr に記事書いてたんですけど、いつ頃だったか入力画面のUIが刷新されて、それから日本語入力が壊れるようになった。まともに入力できないので、生テキストで書いて貼り付けるっていうことをやってなんとかしてたんですけど、まあ大変なわけです。

ブログは気軽に入力できたい。

はてなブログを起こしたのは今から4年前、プログラミング以外のことを気軽に書くためにはじめたんですけど、はてなブログは国産でもあり、当時 Markdown で書けるブログもなかったこともあり、これ一択という感じだったんですが、おかげで今もちょくちょく記事を書き起こせるくらいには続いています。

はてなはてなダイアリー終了時にもはてなブログへのシームレスな移行ができるようにしていて、データのポータビリティっていう観点では割と信頼しているんですが、はてなの外にデータをエクスポートすることはいまのところできない。はてながいつまでも存在する保証はないので、これなんとかなってほしいんですよね。

で、そういうときに生のテキストデータを自分で持っておくと、不慮の事態に備えることができます。公開するしないは別にしても、日記のかわりにもなるわけで、当時の自分がどういう考えだったのか思い起こしたりはできる。2000年代のログとか今見るとけっこうきついんですけど、まあでも、ないよりはあってよかったなと感じます。残ってないログも多くて、そのへんはもう思い出すことさえできない。できたほうがいいですね。

このブログは下書きとかせずに入力画面から一気に書いててとりとめもない感じになってるんですが、ちゃんとした文章を残しておきたい人は手元でテキストファイルを書いてアップするほうがいいんじゃないかと思います。まあ公開後に誤脱修正したりすると反映が面倒なんですけど。github に push したら公開されるタイプのブログはそのへん理にかなってますね。手元の git リポジトリにはコミットしてるかぎりの編集履歴があるわけだし。

そういうわけで、大事なテキストはブログだけじゃなくてどこかに持っておいたほうがいいですよ、っていう話でした。

マンガ買って読んでる

10年くらい前までは本屋で雑にマンガ買って読むみたいなことよくやってたんですけどここ10年くらいマンガ買うのに抵抗があって、まず紙の本引越のときにめちゃくちゃ大変なので増やしたくないから紙の本やだーってのもあるんだけど、マンガ多すぎて何買って読んでいいかわからない問題みたいなのもある。マンガ雑誌も読まないし。

それが最近になってまたマンガ買って読むようになったんだけど、ひとつには電子書籍気軽に買えるようになったっていうのが大きい。もう電子書籍だと待たされるとかも、まったくなくはないんだけど、だいたい同時に出る。同時に出るということは本屋行ったり通販したりするよりもダウンロードのほうが速いわけだ。なんせ光の速度である。しかも場所を取らない。何を何巻まで買ったのか忘れない。

もちろんそういう状況には数年前からなっているのに、じゃあなんで今になって買う頻度が上がったのかっていうと、実はツイッターのプロモーションがうまく機能するようになってきた。ちょっと前に作家が「~のマンガです」みたいなセルフプロモーションやってそれってどうなのみたいな話があって、個人的には作家がプロモーター兼ねるのはプロモーターのセンスのある作家以外が淘汰されるからマンガしか描けないけどマンガは抜群にうまいみたいな人の居場所がなくなるしよくないって思ってて、プロモーションはちゃんとプロもプロモーターがやりましょう、っていう立場だったのね。ツイッターのプロモーション、昔は Renta! とかそういういわゆる紙の出版社ではないところがずっとやってたけど、これはなんていうか扇情的にすぎるというか個人的にはあんまり刺さらないことが多かった。

それがここ一、二年くらいだと思うんだけど、出版社がちゃんとプロモーションかけるようになってきたと思う。もっと前からあった? いや、確実に近年になって増えたんじゃない? ちょっと自信ない。なぜならプロモーションはパーソナライズされているから。ぼくは三年くらい前本当にツイッターのプロモーションツイート終わってると思ってたけど、最近はちゃんと自分にとって好ましい情報が流れる確率が上がってきたと思っていて、何由来なのか判断できない。まあでもとにかくそういう環境の好転がある。

たとえば Amazon のリコメンデーションとかはプロモーションではないので、雑に誰かがこういう本買ってます以上の情報がない。ツイッターのプロモーションツイートはとりあえずリンク踏んだら試し読みさせてくれるので、試し読みでよかったら買って読もうっていうことができる。まあこのへん上手いところと上手くないところ出版社によって違ってて、プロモーションからスマートフォンアプリをダウンロードさせてそこでポイント制で読んでねっていうのもある。ポイント制で読むより一巻から2~3話くらい抜粋したもの無料で読ませて続きは単行本、ってやってくれるほうがシームレスに読めるんだよね。マンガアプリ、たいてい単話が短くてぶつ切りで体験が悪い。四コマならまだしも……って思う。

で、まあそういうわけでプロモーションツイートで作品を知る機会が増えて、試し読みができて、ワンクリックで買って、秒で読み始められる、そういう環境が今ここにあります。だったら買うよねっていうことで、まあちょくちょく買って読むようになりました。

最近おもしろいマンガないよねとかぼくは言わないようにしてたけど、触れる機会がないと何が面白くて何が面白くないのかわからないから、触れる機会、手に入れる機会が増えた今は好ましいと思ってるし、各出版社におかれましては作家の個人のプロモーションに頼らず、上手いことやってください。上手いことやってくれたら目に留まりますし、興味が湧いたら買います。Webのプロモーションは、本屋さんの平積みと違って、金さえ積めば無限にスペースを獲得できて、適切な層だけにリーチできる可能性があります。がんばってほしい。Webの広告屋さんも、単なるリコメンデーションに留まらないプロモーションを上手く展開できるプラットフォームを作っていくことを応援しています。ステマとかやんなくても、正しいプロモーションは我々はちゃんと支持しますよ、ということで。

死神娼館は娼館経営ゲームではない

サブタイトルで宿屋の主人ちゅってるし、冒険者の宿を経営するゲームです。娼館要素ももちろんあるし、チュートリアル後くらいには解禁されます。

オススメしたいゲームでもないのでリンクは貼りません。

えー。チュートリアルに2時間かかるゲームになっています。
3周目から本格的に遊べるようになるんだけど、6時間プレイした時点で、自由度はあんまり高くなくて、おおよそ一本道で遊んでいくことになります。これヒロイン一人ずつこのテンポで進めてくの? 大丈夫?

これがRPGならダンジョンひとつずつ攻略するっていう方向性でぜんぜんいいと思いますけど、あらかじめやるべきことが決められてるシミュレーションゲームシミュレーションゲームじゃなくてアドベンチャーゲームですわね。

たとえばfrostpunkはアドベンチャーゲームなんですけど、とはいえプレイヤーの選択がゲームの展開に及ぼす影響の描き方はしっかりドラマティックに仕上がっていて、そういうジャンルとして楽しめるようにチューンナップされています。

このゲームがどうかっていうと全然そうはなってない。 まず10日進めるのに1時間くらいかかるんですけど、ゲーム内で40日も進めるとおおよそ見てるだけの時間の方が長いなということが嫌でもわかってくる。プレイヤーが考えて何かする場面っていうのはあんまりないです。

作者曰くゲームシステムについて意図的に説明を詳細に行わないようにしていて、手探りでゲームの遊び方を身につけていってくださいとのことなんだけど、今言えることは、試行錯誤でプレイヤーが上手くなったことを実感できるような報酬の設定はぜんぜんできてなくて、プレイヤーの学習を導くためのデザインにはなっていないです。答えのないクイズ解かされてるみたいですね。
手探りのゲームって間違えてたらそれ間違えてますよっていうのがちゃんとプレイヤーが実感できるようになっています。
このゲームは何がどう作用してどうなったのか確信できる部分があんまりなくて、ふんわりただ見てるだけの時間があるなあ、というふうになっている。
前作もただひたすら歩いてるだけのランダムダンジョンだったので、そのへんの感度が鈍い人が作ってるんだなーと思ってしまう。

たとえば、序盤の金策冒険者に依頼出すと店でもの売るのアホらしくなるほどの額が一気に入ってきたりすることがあって、店を疎かにしてもいいっていう誤った学習を誘うようになってる。金貯めようと思ったらランダムで発生する依頼頼みだと追っ付かないのでコンスタントに店でもの売るのが正しい。ただこれ正直稼ぎぜんぜん良くないんですよね。まあ日を送ってればそのうち貯まります。でも金貯めるのに時間送ってるだけなのが正解とは思えないのでなんか間違えてるのかもしれない。ヒントはないので、試せることいろいろ試すしかないんでしょうね。でも試せること試そうにも選択の幅は広くないです。

細かいところのUXの悪さも気になる。
たとえば編成画面に入ってキャラのステータス確認しようとすると、マウスオーバーで画面下部にステータスウィンドウでるんですけど、編成画面に入った直後だとメッセージウィンドウと重なってよく見えないとかがあります。
そもそもマウスオーバーしても表示されないこととかもあるんですけど。それはたぶんバグなんだよな……。

セーブは一日の終了時でだけできます。これは別にいいんですけど、必ずセーブ画面を開きます。これもまあいいです。セーブ画面を開くのに2、3秒くらいロードが入る。それは流石に何。このせいで日をまたぐときにめちゃくちゃテンポが悪い。こんなにセーブ画面開くのにロード必要なんだったらセーブ画面開くかどうか任意にすべきだったのでは。たかだか2、3秒ですけどね。根本的に一日が長くてテンポ悪いのでここだけが悪いわけでもないですけど。体感の2、3秒は重いです。プレステのゲームやってるんと違うんですよ。

挙動がバギーなところがあるのは発売直後なのでまあ、あるあるなんですけど、クリックしたときにマウスカーソルとぜんぜん違うところが反応するとかザラにあります。2回目正しいところ反応するので手間かければ回避できるんですけど、こんな絶対にわかるバグがそのままになってるのは何、という感じ。

各種数字の調整はまあわりと良くできてる感じはします。ゲームの進捗に合わせたエスカレーションはちゃんとあるので、ゲームが進んでプレイヤーがより稼げるようになったということはわかるようにできてる。それもなんも考えずに勝手に数字が増えたとかではなくて、一応プレイヤーが介入した結果だとということが実感できる。RPGであたらしい街に着いたら武器が高かったので周りの雑魚潰して稼ぎをやって装備をく整えました、みたいな手応え。ただ絶妙に上手いとはあんまり感じないです。意図的に稼ぎをやる必要があるくらいの調整は必要だと思うけど、そこに留まってる感じ。
ドラクエシリーズってこのへんよく調整されてるんですよね。
まあこれシミュレーションゲームなので、プレイヤーに稼ぎの時間をとらせるのが正しいかどうかは微妙ですね……資源貯まるまで画面見てるだけなの、クリッカーゲームもそうですからね。シミュレーションゲームの矜持を持ってほしい。

ていう具合にまあにんじんなかったら無理なゲームだと思うんですけど、前作もそうだったしな……。まあ放置できる分、前作よりはいいですね。

クリアしたらまたそのときの気持ちを書くと思います。 書かなかったらクリアする前にやめちゃったと思ってください。

こちらからは以上です。

RPGツクールMVのイベントコマンドのテキストデータをJSONに変換できるか

f:id:aoitaku:20200213222004p:plain
コンテキストメニュー内の「テキストとしてコピー」

イベントコマンドをテキストとしてコピーできる機能がある。「HTMLとしてコピー」の方はエディタ上の見た目を維持したまま、掲示板などに貼り付けるための機能で、フォーラムなどではこれがあると確かに便利だろうと思う。

本当は一番欲しい機能は JSON としてコピー / ペーストできる機能なんだけど、それはない。実は内部的には JSON でやりとりをしている。RPGツクールMV同士なら、JSON でコピーペーストできる。で、Everett のコピーはRPGツクールMVと同じ形式でクリップボードにコピーするので、RPGツクールMVのエディタ上にペーストできる。逆はできない。できるようにしたら便利だろうとは思っているのでそれはいずれやるとして。

Everett は Electron 製なので、クリップボードの操作がある程度自由にできるんだけど、ブラウザではそうもいかない。たとえばフォーマットを指定することができない。 Chrome なら Chrome からコピーしましたよという情報で固定される。Chrome から不正なデータをクリップボードにコピーして意図しないアプリケーションにペーストできないようにとかそういうセキュリティ上の理由だと思う。RPGツクールMVは当然RPGツクールMVからコピーされたデータしか受け付けない。EverettはRPGツクールMVと同じデータですよと言い張ってるのでコピーできる。

フォーラムなどで、テキストとしてコピーでエクスポートされたデータを、逆にツクールのデータに戻したいことがあったりするかもしれない。ウディタはコモンイベントをプラグインっぽく配布してやりとりできる。ツクールではこれはできない。できたほうが便利だと思ってるんだけど、なかなかそうもいかない。

ツクールのイベントデータをテキストとしてコピーしたものは、決まった書式があるので、パーサを書けば JSON に変換できそうに見える。

試しにやってみようと思って、全イベントコマンドのテキストのサンプルを集めようとしてみたんだけど……

変数の操作の時点でで無理ということがわかった。百聞は一見にしかず。

変数の操作:#0001 一時変数 = ポーションの数
変数の操作:#0001 一時変数 = 剣の数
変数の操作:#0001 一時変数 = 盾の数
変数の操作:#0001 一時変数 = ハロルドのレベル

アイテム名からアイテム番号を取得するのはデータベースを見ればいいのでともかくとして、剣という名前のアイテムが複数あったとき、どのアイテムにマッチさせるのがいいのか。剣という名前の防具やふつうのアイテムの可能性だってあるわけだ。 アクターとエネミーにも同じことが言えて、アクターとエネミーで同じ名前のキャラがいるとどっちなのかわからなくなる。アクター内で同じ名前のときも、まず困る。 アクターに関しては名前の変更コマンドが使えるので、データベース上では一意な名前をつけておいて、ゲーム開始時に名前を変えるということをすればなんとかなるかもしれない。でもそれはそのように対策をしているデータでのみ、正確にパースできるという話になる。

これは断念するしかないかなあ。

まあそもそもフォーラムにアップされたテキストデータだけからは絶対に変換できない、最低限データベースも一緒に必要、っていうことになるので、そこでも現実的ではないんだけど。

ローカルで動くアプリだったら、別にテキストでコピーじゃなくて普通に JSON でやりとりすればいいので、今回はボツということで。

RPGツクールMVのプラグインの作り方

を、これまでなんとなくプラグイン書いてきたけどベストプラクティスがあるなら知りたいみたいな人向けに、解説するやつをやりたいなと思っている。

特に RGSS から JavaScriptプラグインに引っ越してきた人向けというか、JavaScript だったらこう書いたほうがいいよ!っていう話をしたい。

もうちょっと欲張ると、ツクールやってるから条件分岐とかループくらいのプログラミング要素はわかるけどコードはうまく書けないみたいな人に、シンプルな単機能のプラグインを作るのはあなたにもできます!っていう感じの話とかもしたい。

あとは実用的で応用が効くコードを実例にする。解説記事の最後のコードサンプルがそのままプラグイン素材になるような。

プラグイン作者は自分のプラグインのコードリーディングをやってくれたりはしなくて、黙々とプラグインを作って配ってて、とはいえ利用者向けにプラグインのコードリーディングってそんな需要ないし、プラグイン書ける人だったら読めばわかるじゃん、みたいな気持ちある、そもそもそんな解説記事書く時間取れないとかもまあある。プラグインってメンテしないといけないしユーザのサポートもしないといけないからね。

MITライセンスとかになってるやつでお手本になるような他作者さんのプラグインのコードリーディングやったらたぶん面白い気がするし、ためになると思うんだよね。わたしが Ruby 覚え始めた頃って Ruby Magazine のコードリーディングの記事読んでたんだけど、そういう感じの体験って JavaScript では実は全然してなくて、それはそういうのは自分にとってあんまり必要ではなくなったからっていうのはもちろんあるんだけど、ツクールMV のプラグインとかだと全然需要あるんちゃうか?っていう思いがある。

あと、2020年になって JavaScript もバージョン上がっていくし、JavaScript のバージョンが上がればツクールMVのコアスクリプトだったりNW.jsのバージョンも上がる。最新の JavaScript の状況をキャッチアップできる内容とかもあるといいなーということを思っています。前にも話が出てるんだけど、もう es2015 使っても大丈夫だよ、とか。

そういうやつをいずれやろうと思っているのでそのときは応援とかしてくれるとうれしい。

こちらからは以上です。