ロングレビュー マップイベント編
[イベント]とは何か
RPGツクールMV(以下MV)はゲームの開発環境である。
開発環境(プログラム)の話題でイベントというとプログラム内で発生した動作・出来事、またそれらを表現する信号
(Wikipediaより)を指す。
ゲームの話題でイベントといえば状況説明として挿入される芝居やスペクタクルシーン
(鳶嶋工房コンピュータゲーム用語より)を指す。
そしてMVでの[イベント]はイベントは“人物との会話”や“宝箱からアイテムを入手”などのできごとを設定します
(MV付属のヘルプより)
僕なりに説明すると「マップ上に配置される画像に(プログラム的な意味での)イベントをきっかけとして発生する(ゲーム的な意味での)イベントの内容を記述したものを(MV的な意味での)[イベント]と呼ぶ」となる。
イベントという単語が近縁の用語とかぶりすぎて、説明が意味不明になってしまう!! なんでこんな使いづらい単語を付けちゃったのか?!
ちなみに日常会話でイベントといえば「行事など特別な出来事」を指す。無論MVでこれを指すわけではない。
この[イベント]という代物は、ツクール開発部の異次元的な言語感覚で導き出された用語の中でも最悪なもののひとつだ(もののひとつなんですよ、他にいくつもあるんです(涙))
しかし、これを説明しないと今回なんにも語れなくなってしまうので頑張って説明してみる。
以前からそうしているが、今後もMVの[イベント]は他の意味のイベントと区別がつくように[イベント]と角括弧でくくる。
MVでイベントがつく用語にはマップイベント・バトルイベント・コモンイベントが存在するが、今回はマップイベントだけ扱う。
バトルイベント・コモンイベントには画像要素がなく、ほぼ純粋なプログラムの関数だ。
今後[イベント]と書く場合、マップイベントを指す。
[イベント]という名前が適当でないならどう呼ぶのがいいかというと、マップイベントに関してはスプライトと呼ぶのが適当だと思う。
スプライトとは昔のゲーム機に搭載された、小さい画像を画面に重ね合わせるハードウェア的な機能だ。
ファミコン・スーパーファミコン時代のキャラクタは基本このスプライトによって表示されていた。
つまり当時に操作していた勇者などは、そもそもスプライトなのだ。
しかもスプライト機能は今のパソコン・ゲーム機・スマホのどれにも搭載されていない。
なので、スプライトに似た別の機能にスプライトってつけちゃっても用語がぶつかることがない!
アニメにセルが使われていないのに、今も「セル画」と呼ばれたりしているようなものだ。
ジャンルがだいぶ違うので、炭酸飲料のスプライトとぶつかる心配をする必要もない。妖精のスプライトは若干ぶつかりそうだが滅多にないだろう。
そして英語圏では 特にキャラ画像のことを sprite と当たり前に呼んでいる。
とは言え、MVでは[イベント]という言葉が既に当てられてしまっているので、以下も[イベント]で引き続き説明していく。
MVにおける[イベント]とは
HyperCardにおけるボタンであり、Directorにおけるビヘイビアであり、Flashにおけるムービークリップにあたる。えーと今ので全体の1/10000ぐらいに通じたでしょうか?
つまりMVの[イベント]とは画像とプログラムのふたつの性質を併せ持つものだ。
利用目的としてはヘルプの説明通り「宝箱」や「人物」が代表的なもので、要はプレイヤーの行動に反応するのが主なもの。
「水しぶき」や「炎・煙」など、ちょっとしたアニメーションを加えるものなどにもよく使われる。
似たものとしては[ピクチャ]とか[フキダシアイコン]などがあるが、今回はあんまり触れないでいく。
あと[イベント]からプログラム部分を抜いた感じのものとして[プレイヤー]と[隊列メンバー]がある。
画像としての[イベント]
まずは画像としての[イベント]の性質を見ていく。
- タイルと異なる画像配置の機能
- マップのスクロールに追従する
低層タイルと高層タイル[☆]の間に挟まれる中間層に描画される- キャラ画像かタイル画像を指定できる(タイル画像を表示できるが機能としてはタイルと異なる)
- 配置はタイル単位に制限される
- ゲーム実行中にリアルタイムに移動できる
- 他の[イベント]およびプレイヤー・隊列メンバーと重なることができ、y表示位置で重なり順が決まる
追記: 表示されるレイヤーは[プライオリティ]で設定できる。
プログラムとしての[イベント]
ツクールは頑なに「プログラム不要です」と広報されているが、僕の感覚では「何を言ってるんだコイツ」と鼻で笑う感じだ。
[実行内容] = プログラム と考えてほぼ間違いない。
MVが分かりにくくなっている原因のひとつは、プログラムであることを隠蔽しようとして変な用語を導入していることにある。
ではあらためて、プログラムとしての[イベント]を見ていく。
- [EVページ]という[画像][出現条件][自律移動][実行内容]その他設定を含んだ単位の集合
- [出現条件]によって[EVページ]が切り替わる
- いくつかのきっかけによって[実行内容]が実行される
- [実行内容]はイベントコマンドという命令の集合
- [自律移動]はトリガーなしに実行される[イベント]の動作
ちょっと機能が多いのでややこしい。
RPGツクールが(特に整理をしないまま)長い年月を経て増築してきた結果がこれなのだ。
[EVページ]と[自律移動]の仕組みと[画像]やその他設定を取り除き、プログラムの内訳の説明も削除。
すると以下の一行だけになる。
- いくつかのきっかけによって[実行内容]が実行される
具体的な例としては「プレイヤーが村人に話しかける(トリガー)と、メッセージが表示される(プログラム)」という感じだ。
マップビューでの[イベント]
さて[イベント]が何か理解できた…かどうかは分からないが、ともかく説明したので、メインウィンドウのマップビューでの[イベント]について見ていこう。
いくらかはロングレビュー マップエディタ編で語ったので、極力その辺は省いていく。
イベントモードの操作
ツールバーにある[イベント]ボタン(赤いコマのアイコン)を選ぶとイベントモードに切り替わる。
この状態では左のタイルパレットが全くの無駄と思っていたら、どうやらRPGツクールMZではここは[イベント]一覧になるらしい。すごくまともな改善で喜ばしい。
以下、ざっとその機能を紹介する。MVの機能をおさらいする気がないなら、段落を飛ばしても構わない。
画面をクリックすると白いカーソル枠が表示される。矢印キーで移動できるしもちろんマウスでクリックすればその位置に移動する。
適当な位置で enter を押すかダブルクリックで新規イベントの編集ウィンドウが開き、そこで[OK]を選択するとカーソル位置に配置される。
配置した[イベント]にカーソルを合わせてenterを押すかダブルクリックすると、そのイベントの編集ウィンドウが開く。
同じ状態で、delete(またはbs)を押せば削除され、Cmd+Xでカット、Cmd+Cでコピー、クリップボードにあればCmd+Vでペーストされる。
ペーストはマップをまたいでも、あるいはプロジェクトをまたいでも可能。
Cmd+Zでアンドゥができる。
Cmd+Fで検索ウィンドウが開き、名前・メモの検索範囲と、部分一致・単語一致・完全一致・正規表現に加えて大文字小文字の区別の検索方法が選べて、検索すると選択中のマップの中から[イベント]が検索されて、もし見つかればそのイベントにカーソルが合う。
検索ウィンドウではenterで検索を開始しウィンドウを表示したまま連続で検索もできる。また検索ウィンドウ表示中も閉じた時もCmd+Gで次を検索Shift+Cmd+Gで前を検索が実行できる。
検索ウィンドウと見つからなかった時の警告ダイアログはescキーで閉じる。
メインメニューやコンテクストメニューからメニュー項目を選んでも、これらの操作は可能(ただし、惜しいことにイベントの新規と編集はメインメニューにない)
配置されている[イベント]はドラッグして移動できる。
そして、これらの操作は新規と編集そして検索以外は[プレイヤー]に対しても可能だ。
えーと、びっくりするんだが。このイベントモードの操作に関してはMVの中で奇跡的にパーフェクトに近い操作感を実現してる。
感心する(と言うか普通なんだけど)のはWindowsだとF3で次を検索になっているところが、MacではCmd+Gとなっていて、プラットフォームごとのUIにちゃんと合わせていることだ。
ただ delete が普通に delete として働いてることで喜ぶとか、そんな経験したくなかった。Mac版は他の箇所では delete がまともに動かないのだ。
とにかく使ってるとゲロ吐きそうになるぐらい酷いUIてんこ盛りのMVだが、ここだけちゃんと普通レベルの仕事してる。 掃き溜めに鶴と呼ぶにふさわしい!
このイベントモードを作った人に全インタフェースの仕様書書いてもらって監修もお願いすれば、RPGツクールは生まれ変わるレベルでよくなる! 間違いない!!
あるいは! 僕を!! 高給・高権限で雇うか!!!
一応イベントモードの問題点の指摘
全く問題点がないわけではないので、その辺りの指摘もしておこう。
コンテクストメニューにいくつか特殊な機能があって、これらがメインメニューに配置されていないしショートカットキーの割り当てもないのは少々残念。
特にプレイヤーの初期位置の設定は、ショートカットキーが欲しかった。
[イベントの簡単作成]はいわゆる雛形で非常に便利なのだが、ここに自作の[イベント]を登録できると嬉しい。
できれば[イベント倉庫]みたいなパネルを用意して、そこにマップから[イベント]を登録しそしてマップに置けると素晴らしい。
さらに重箱の隅つつきをしておく(大した内容ではないので、この行読まなくていい)。検索ウィンドウはCmd+Wでも閉じてほしい、警告ダイアログはenterでも閉じてほしい。検索ウィンドウを選択している場合も、ショートカットキーは効くのだから、メインメニューの項目をグレーアウトしないでほしい、検索は現在のイベント以降・以前の他にループを選択できるようにしてほしい。一応枠の色は違うものの[プレイヤー]は[イベント]ともっとハッキリ区別がつく表示をして欲しい。[プレイヤー]を選択してenterまたはダブルクリックを行った時は、アクターの設定が開いてほしい。ドラッグ時は枠ではなくイベントの画像をそのままドラッグできてほしい。イベントの画像がタイルサイズでしか表示されないが、実際にゲーム中に表示されるサイズで表示されるモードも欲しい。マップビューの外にドラッグして離したらその位置にペーストされるのではなく元の位置に戻って欲しい。OSのゴミ箱にドラッグした時は削除されて欲しい。デスクトップにドラッグしたらJSONファイルになって欲しい。Opt+でドラッグした時はコピーして欲しい。Shift+クリックで複数選択できて欲しい。ドラッグで範囲指定してその中の[イベント]をまとめて選択できてほしい。正規表現にどんなのが使えるかヘルプに書いてて欲しい。検索ウィンドウでShift+enterしたときは前を検索を実行して欲しい。モード切替のショートカットキーはF6じゃなくてCmd+Eあたりにして欲しい。
…つっこめばどんなアプリケーションでも、このくらいは出てくるものではある(出るよね)
大切なことは、リドゥがないのがちょっと困るぐらいで、どれも致命的な使い勝手の悪さを招くものではない、ということ。
それに、他の箇所では根本から変えないと修正できないぼど酷い作りなので、逆にこのレベルでのツッコミは入れられない(入れても無駄)だということだ。
不足している機能について
予定された機能に対して作られたUIとしては、かなり高水準なMVのイベントモードだが、欲しい機能としてはやはり不足を感じる。
不足を感じるのは主に衝突判定だ。
[イベント]の衝突判定がタイル1枚分のON・OFFしかないのは、ツールの複雑さや処理が重くなるのを避ける意味では正しい。
ではあるが、できれば衝突判定の矩形を任意に指定できるようにして欲しかった。
イベントに適用できる画像のサイズは任意なんだから、衝突判定も任意にしてないとおかしい。
それに町の出口など[イベント]が複数のタイルにまたがって必要な箇所は非常に多い。
[イベント]を複数配置するよりも、衝突判定の範囲を任意に指定できるようにしてもらえる方がありがたい。
例えば、町の出口からの移動先を変更する場合、複数の[イベント]を配置していると、その[イベント]全部の内容の変更が必要になり変更漏れが発生する危険がある。
その際、タイルと同様のぺらぺらの薄い衝突判定も指定できるとなお良い。
これは、HalfMove.js の機能+改造でできるようにした。
ただプラグインでの対応はエディタには反映されないので、範囲がエディタ上で確認できず使いづらい。
現在[イベント]の配置はタイル単位でしかできず、複数の[イベント]を同一座標に置くこともできない。
しかし内部的にはそれらの配置ができるように作られているので、エディタ側でもタイル単位より細かく自由な配置ができるようにしてもらいたい。
イベント検索
これねー。ひどいんだよね(笑)
ツールバーの右のほうにある画面に虫眼鏡当ててるアイコンがイベント検索だ。メインメニューにもある。
イベント名の他、指定したスイッチや変数が使われている箇所を検索できる。
できるんだけどさっき書いたCmd+Fの検索ウィンドウに比べて、完全一致でないと検索できないとか、もう酷い。
新人に試しに機能をひとつ担当させてみたけどズタボロでした、みたいな機能だ。
Cmd+F検索より優れているのは、プロジェクト全体を検索して一覧表示することぐらい。
ちなみにCmd+Fの方の検索はアップデートで追加されているので、お察しという感じである。
こんな単機能のウィンドウにもかかわらずツッコミどころはたくさんあるが、レビューとしては「使い物にならない」と言って終わりにする。
イベント編集ウィンドウ
とにかく必要な情報を詰め込んだだけという印象を受けるし、実際その通り。
一言で言うと「全体の処理の流れがわからない」のが良くない。
上部のUIを見る
プラグインなどでIDを必要とするものがあるので、IDは[名前]の前あたりに編集不可・コピー可能な文字として置いて欲しかった。
ここにある[名前]をつけておくと後で一覧から選ぶときに探しやすい、ただしゲームの動作には基本的に影響はない。
イベントが多くなると選択が大変になるので、単純なプルダウンのセレクタでなく検索やソートができる使いやすいダイアログなど導入して欲しかった。
[環境設定]の[オブジェクトの選択]を[展開]に設定しても、移動ルートの設定などのイベントを選択する箇所で展開されないのだ。ダイアログが出ないのだ。なぜだ!
最悪だ[EVページ]
僕はあんまり「最悪」なんて言葉を安易に使いたくないのだが、[EVページ]には使っていいんじゃないかと思っている。
最悪だ[EVページ]!!!
[EVページ]はツクール開発部のネーミングセンスのなさを代表するダメネームのひとつだ(はい、こんな近くにも「もののひとつ」があるのです)
イベントの編集ウィンドウに[EVページ]って単語が入ったボタンがいくつかあるんだが、僕はズーーーッとEVっていう用語が何かわからずに混乱していた。
EV…EV…電気自動車じゃないしなー、みたいな。
正解はイベントの略だ。EVって略す? イベントって書ける余裕あるのに?! 意味わからん!!
そもそも単に「ページ」と書くべきだった。それで十分だしむしろEVという余計な文字が完全にミスリードになってる。
「ページ」で特定できないときでも「EVページ」ではなく「イベントページ」と書くべき。何度も言うがEVじゃ意味が分からない。
本当ならこんなボタン置かない方がよくて、こういう時こそコンテクストメニューの出番なのに、なぜかここでは使われない。
そもそも全ボタンにEVページって書いてるのダサすぎる。
イベントの編集ウィンドウで[EVページ]はタブで切り替えるようになっている。
以下「出たー!」以降は妖怪ウォッチのウィスパー的な関智一ボイスで脳内再生してほしい。
タブにはページの名前じゃなくて番号が振られている。出たー! MV特有のとにかく数字管理の術!!
それにページのタブをドラッグで入れ替えできない。出たー! MV名物ドラッグできそうなのに不可能領域!!
またページのカット・コピー・ペースト・削除・クリアにショートカットキーが使えない。出たー! MV頻出キーボードオペレーション無視!!
さらにカット・コピー・ペースト・削除・クリアはメインメニューにない。出たー! MVお得意のメインメニュー軽視!!
ちなみにペーストの表記は[EVページ貼り付け]だ。出たー!MVの傲慢、Mac環境冷遇UI!!
[EVページ]の新規作成は[EVページ作成]ボタンで行う。出たー!MVの悪癖、世間の常識排除UI!!
タブ形式の部品を追加する場合、普通はタブの横に[+]ボタン置きません? お手元のブラウザやエクセルもそうなってません?
そして案の定[EVページ作成]にはショートカットキーもメインメニューの項目も用意されていない。
むしろこれは良いUIで[最大数の変更]方式じゃなくてよかった、とか思っちゃうのDV被害者がちょっと優しくされたら加害者を擁護しちゃうやつだから。気をつけろ!
イベントの編集ウィンドウを閉じると編集していた[EVページ]のタブ位置を忘れ、再度開いたときに最初のタブが開かれる。出たー!MV必殺の健忘症!
そして全ての[EVページ]関連の操作は、当たり前のようにアンドゥが効かない。出たー!MV十八番の履歴ってなんですか現象。むしろ[適用]ってなんだよ!常に保存しろよ!
タブのドラッグができないので、とにかく[EVページ]の操作は面倒くさい。
例えばタブの先頭にページを追加したい場合、[EVページコピー]と[EVページ貼り付け]ボタンで先頭のページを増やした後、[EVページクリア]で最初のページを初期化みたいな操作になる。
パズルゲームか! 誤操作で元々あったページを消しかねんわ!!
ドラッグができれば、[EVページ作成]のあと先頭にタブをドラッグで済むのに…。
すごいどうでもいい小ネタだが、EVページ関連のボタンを操作した後にボタンにフォーカスが残るのでenterやspaceを押すとボタンを実行できる。
しかしキーボード操作でこれらのボタンにたどり着く術はないので、フォーカス枠の意味が全くない。
UIになんのポリシーもなく雑に作られていることだけは分かる。
もうこれだけ並べたら「最悪」がこの[EVページ]というUIにいかにふさわしいか、お分かりになったかと思う。
書くたびにイラっとくるので、今後は単に「ページ」か「イベントページ」と書く。
イベントページ詳細
次はタブの中身、つまり実際のイベントページを調べていこう。
出現条件
タブの一番右のページから順に各ページの出現条件を調べ条件が揃ったところで実行内容を実行する。
これが画面を見てもさっぱりそういう挙動をすることが想像できない。
まず普通は左から右に処理進めないかな?
僕はこの出現条件の使い方を理解するのに2月ぐらいかかった気がする。
このロングレビューをずっと読んでる奇特な方は、いくらなんでも僕の理解力低過ぎないかと思ったかもしれない。
でも、ツクールってそういう理解力のない人向けの商品のはずだよ! だよね!!
ところでこの出現条件の実態は条件判定の集合であってプログラムの一部だ。
プログラマ的に言えばアーリーリターンだけまとめて関数の頭に作っておく感覚。
出現条件は実行内容の上に書いて同じ種類のものだと主張したほうがいいし、処理の流れもわかりやすくなる。
意味が近いものなので、表示も実行内容のイベントコマンドのような雰囲気で描かれるのが望ましい。
コマンドのように書くとチェックボックスがなくなって、条件のON・OFFが気軽にできない問題が出るが、これは逆に自律移動・実行内容も含めてコマンドのコメントアウト機能を実装すべき。
今の出現条件の仕様だと、使える条件が決まっているので柔軟性に欠ける(出たー、種類と数と配置の固定!)
また、条件がなくても必ず画面の面積を占有して無駄だ。
必要に応じて適宜追加していく方式が良いと思う。
出現条件はMVの理解しづらい部分でも上位であるのは確かで、大幅な改良が必要だと思う。
例えば出現条件はマップにも存在して、条件毎にマップ全体のイベントの配置を変えられるべきだと思う。
ただそこまでいくともうMVのレビューではなくて、あるべきRPGコンストラクションツールについてみたいになっちゃうので、極力MVの機能の範囲で考えたい。
変数選択時のダイアログの作り(出たー[最大数の変更]!!)など色々言いたいことはあるが割愛。あ、もうひとつだけ。
ここの大なりイコール ≥ は、≧ の方が一般的かと思う。そして向きとしては ≦ 使った方がいいと思うし、変なところで改行しない方がいい。ひとつとは……
画像
ここでは[イベント]が表示する画像を、characters フォルダのファイルか現在のマップで選択中のタイルセットのB〜Eの中から選べる。
ファイルの中の画像は用途によって適宜区切られているので、区切られた中からパターンを選ぶ。
picuresフォルダでもなんでも選べるようにすりゃいいんじゃないのー、みたいにも思うが、このくらい制限しておいたほうが無難という気もする。
画像をダブルクリックか、画像を選択してspace で画像選択ダイアログを開ける。
にしてもMV全体でspaceとreturnキーの割り当ては呆れるほどテキトーだ。
削除の場合は、いちいち選択ダイアログ開かなくても画像を選択して delete で削除できて欲しい。
あとここもコンテクストメニューに対応して欲しい。
いずれにせよマップビューのイベントモードなど他の場所と極力操作を合わせて!
歩行キャラの向きはいちいち選択ダイアログを開かなくても、画像をドラッグして変えられるととても良いのだがそんな仕掛けはない。
characters フォルダのファイル名の頭に!を付けると前回言った6ドット上にずれる仕様が適用されなくなる(出たー、ファイル名の特殊記号!)
そして、通常1ファイル8キャラが入っているのが、$をつけると1キャラの画像として扱われる(出たー、ファイル名の特殊記号、二連発!)
6ドットずらしの仕様はこのイベントエディターで、ずらし有無のチェックボックスなり、ずらす数値なりを設定できるべき。
キャラ数については、例えばcharactersX8みたいなフォルダ用意してフォルダで区別する方法が良いだろう。それなら説明なしでも分かる。
!や$をファイル名につけるとか、ヘルプ読まなきゃ分からないような機能つけちゃダメ!!
自律移動
[イベント]をウロウロさせるための機能で、出現条件に合致しているときに自動的に実行される。
タイプには、固定・ランダム・近づく・カスタムの選択肢があるが、固定は何もしない、ランダム・近づくはカスタムの中に同じ項目がある。
そしてカスタム内容は、ルート設定対象が現在設定している[イベント]自身に固定で[完了までウェイト]オプションがないだけで、実行内容のイベントコマンドの[移動ルートの設定]と同じ。
つまり自律移動は、トリガーが[並列処理]の時の実行内容と機能が丸かぶりなのである。
拡張を繰り返してきたソフトは、こういう昔のシンプルな機能と追加された高度な機能が並行して存在しがちだ。
どっち使えばいいかユーザが混乱する、結局シンプルな機能と高度な機能の両方を理解する必要があってトータルの学習コストが増える、などという問題がある。
MVの自律移動の場合は「ランダム・近づく」の機能は「ルート」に含まれ、さらにルートの機能は「並列処理の実行内容」に含まれるという、二重建て増し構造になっており、極めてややこしい。
少なくともランダム・近づく機能は廃止するべきだと思う。
固定も要するにルートに何も書かなければいいだけなので廃止するのが適当だ。
さらに実行内容には[決定ボタン]と[並列処理]を同時に登録できるようにして、自律移動自体なくしてもいいように思う。
ただそれは流石に大工事になりそうなので次回作に期待! とか思ってたけど、残念ながらRPGツクールMZでも、この仕組みは踏襲されるようだ。
全体的にGUIというかレイアウトのイロハがわかってなくて、ここでは[タイプ:] とかのラベルは右寄せが基本なのに左寄せになっている。
なんのために「:」つけてんの、そこで揃えて連続の法則適用するためでしょ!
ラベルとデータは近づけて近接の法則を適用しなきゃでしょ!
こういう選択肢の少ない箇所なら偶然でも正解を引けるのに、間違いの方ばっかり引くのがツクール!!
他のソフトを見れば正解がいくらでもわかるのに、全く参考にしない唯我独尊ツクール!!
前書き損ねたんだけどデータベースのタブが中央揃えになってるのも素人っぽい。
だいたいレイアウトの教科書の最初の章には「理由のない中央揃えをやめましょう」が入っている。
ラベルが示しているコンテンツが右にあるんだから右寄せが基本で、文字の頭を揃える左寄せもなくはない。
ただ中央はない。だせぇ!!
ツクール開発部よ! RPGツクールMZよ!! タブのラベルは今からでも間に合う!!!
右に! 寄せる!! だけだから!!!
ついでにイベントコマンド選択ボタンも中央揃えやめて左寄せにした方がいい。
単純にボタンのデフォルト設定がセンターだからそのまま使ってるだけだと思うけど、あれはボタンよりリストの性質が強いから、ラベルをセンタリングされると頭がフラフラして読みづらいんだって。
キリがないので、行揃えについてはこのへんで。
速度と頻度の選択肢には番号が振ってあるんだけど、多分なんの役にも立たない。
何にも役に立たない情報が入ってるとユーザは混乱するのでやめてほしい。
ちなみに、プログラム的にはこの数字で管理してるんだけど、プログラム的にもこういうマジックナンバーで管理するのやめたほうがいい。定数当てましょう。
オプション
このへんの属性は[移動ルートの設定]の移動コマンドで設定できる。
つまりここで設定しているのは、あくまでも初期値なわけだ。
画像、自律移動の速度・頻度も同様に[ルートの設定]の中で設定できる。
ならば[初期設定]とでも名前をつけ、まとめて置いておく方がいいんじゃないかな。
プライオリティ
上から、通常キャラの下・通常キャラと同じ・通常キャラの上の選択肢が並ぶ…ん゛あ゛あ゛あ゛ぁぁ?!
なんで下が上にあって上が下にあるの、おかしいでしょ!!
これ、たまたまの抜けとかミスじゃないのだ。MVは他にもこういうのあって、どうもこれが正しいと思ってる雰囲気がある。
ツクール開発部は、ユーザ感覚より内部的な設定数値がどうなってるかの方を優先してUI部品を配置しちゃう、ユーザにとってはチラッとも嬉しくない悪癖持ちなのだ。
例えば、歩行キャラ素材が下向きが上にの上向き下に置いてあることをロングレビュー 概要編で書いた。
ツクール開発部さん、上は上に、下は下に置いてくれっ!!
あと、突然出てきた通常キャラってなんなの、プレイヤーで良くない?
これも初期設定のひとつなので初期設定系にまとめておくと良い。
ただし、これは移動コマンドにはない。
トリガー
これは出現条件とほぼ類似の機能で、条件によってプログラムを実行するかどうかを判断してる。ただ条件に合わなくても次のページへは行かないのが違い。
これは実行内容にだけ関わる要素なので、実行内容の付属物という扱いがいいだろう。
ここの[プレイヤーから接触][イベントから接触]の違い、[自動実行][並列実行]の違いがめちゃめちゃ分かりにくい。
自覚はあるようで、ここのツールチップはかなり詳しい。
ただ、ツールチップは詳しいヘルプを書くためのインタフェースじゃなくて、アイコンだけで表現されたボタンのツール名とショートカットキーを表示する程度の部品なので、どうにもチグハグだ。
実行内容
コードの先頭に♦︎のマークがあるんだけど、記号として強すぎて読みづらい上に、UIとしての意味がほぼない。
どうもこの♦︎マーク 1992年発売のDante98以来の伝統のようだ…まさか23年もたった2015年のツールにまで残っているとは。
実行内容はイベントコマンドを含んでおり 、範囲が膨大な(=大量にツッコミどころが存在する)ため以下割愛。
改良案
現在のMVのデータをそのまま使う前提で改良案を出してみた。
タブの処理順がわからない問題は解決していないが悪しからず。
現状のMVは他の部分に関しても処理の流れが分からないが、このように類似の機能をまとめて順に書けば出現条件→自律移動・トリガー→実行内容の処理の順番がはっきりして理解しやすくなるはずだ。
以下、すでに改造が済んだかのように書いているが、もちろん作ったのは一枚の画像だけである。
だいたい画像を見ればわかると思うし、見てわからなければそれはUIの改良としては失敗している。
加えて問題箇所はおおよそ指摘しているので、書く必要ないといえばないのだが、一応その変更箇所をずらっと書いた。
別ウィンドウに画像を表示して見比べながら読むといいかと思う。
全体的に
- [イベント]→スプライト、実行内容→プログラム、の用語変更
- [編集]メニューで開いてウィンドウの名前が[イベントエディター]は混乱するからIDと名前にした
- 右下にウィンドウサイズ変更用のリサイズグリップをつけた(リサイズグリップはなくてもいいけどウィンドウサイズ広げさせてマジで!! 開発効率段違いだから)
- またマルチウィンドウとして表示し、モーダルなダイアログ形式は廃止
- マルチウィンドウなので[OK][キャンセル][適用]ボタンは廃止、入力したら即データを反映
- それに伴いアンドゥとリドゥが利くように
- 名前の近くにIDと座標を表示
- メモ欄をとにかく広く取った
- ツクール開発部は必要ないところまで枠で囲いたがる悪癖があるので不要な枠は取り除いた
- 各項目の新規追加には共通した[+]ボタンを採用した
- タブに関してはページが左から右へ解釈される想定なので、[+]ボタンは左でページも左に追加される
- 削除は誤操作の懸念があるのでボタンはなく、deleteキーやコンテクストメニューを使う想定
- もちろんタブに限らず、出現条件・自律移動・プログラムの各行はドラッグ可能
- 各所にディスクロージャトライアングル[▽]を配置し、折りたためるように
- 出現条件・自律移動・プログラムのコマンドは(複数)選択後コメントアウト(//)できる
- 出現条件・自律移動・プログラムの間をドラッグして大きさを調整できる
出現条件・自律移動・プログラムの[+]ボタンを押すと対応したダイアログが開き、コマンドを選択すると閉じて追加される想定。
その仕様だと自律移動ルートはむしろ連続して選びづらくなって機能が低下してしまう。
そこで(Scratchのように)コマンドパレットを併置してそこからドラッグするなどして配置できる方が望ましい。
メモを狭くしてプログラムの幅も狭くして稼いだ面積に、コマンドパレットを置くという手はあるかもしもない。
ただ、イベントコマンドの入力に関しては先に書いたように問題が非常に多いので、ここでは[+]ボタンでコマンドを追加するんだよ、ぐらいで理解してほしい。
出現条件
- ほとんど[条件分岐]コマンドのようなテイストに
- ただ分岐条件が書いてあれば十分意味がわかり、条件分岐と書く必要はないので書かない
- コマンドはダイアログを開かずに編集できるのが望ましいが、従来通りダイアログを開く想定
自律移動
- [移動できない場合は飛ばす]オプションはまず最初に設定を決めておくものなので頭に置いたが、自律移動のラベルに近いと読みづらいので右寄せ
- [動作を繰り返す]オプションは[ラベルジャンプ]コマンドによるループのようなものなので、移動コマンドの最後に置いて仲間感を出した
- 移動コマンドを直接表示するようにしたが、前述の無駄ダイアログ問題はある
- コマンドの頭の♢は意味がわからないので削除︎
プログラム
- トリガーはプログラムと非常に強く結びついた設定なのでプログラムの中に
- しかしトリガーが、プログラムのラベルと近いとごちゃつくので右側に
- コマンドの頭の♦︎は意味がわからないので削除
初期設定
- 出現条件をクリアしたときに必要になるデータなので出現条件の右に配置した
- 画像の下のオプションはチェックしたら即時に画像に反映される想定だ、できればクリックでアニメON・OFFして欲しい
- 自律移動も即時画像に反映されて欲しいが、そこまでは高望みしない
- 画像とその他オプションは要するに初期設定なので近くにまとめた
- 画像の表示範囲を大型モンスターも入るぐらい大きくした
- タイル単位を表すグリッドを描いた
- 影表示オプションを追加
- 6ドットずらしオプションを追加
- 速度と頻度の選択肢の頭から数字を除去
- (ここでは見えないが)プライオリティの選択肢を、プレイヤー上・通常・プレイヤー下(ちゃんと上を上に!)に変えた
まとめ
改めて眺めてみると、とにかくマップビューのイベントモードの作りが出色!!
このレベルをキープして全体作れたら、全開発ツールでも上位の快適な操作感の良さが実現できる。
しかし良かったのはそこまで、イベント編集ウィンドウには建て増しツールの悪い点がみっちり詰まっている。
ロングレビュー アニメーション編に、つづく!!