エロゲUIの話、発言者をプレイヤーに伝えるためのアレコレ


こちらはデモニオンのゲーム画面です。ジリオラが発言者ですね。左上に書いてあったのでわかりました。今回はこの「発言者を明確にする方法」についてです。

こちらは夏空カナタのゲーム画面です。

テキストウィンドウに発言者画像が表示されており、茅羽耶が発言者だと一目でわかります。麦わら帽子の自己主張がやたら強くテキストが読みづらいですがまぁそれはそれとして。人間は文字より映像の方が理解しやすいので、こちらの方がデモニオンタイプよりわかりやすいUIと言えます。

このタイプは「発言者の名前を意識させない」という点も素敵です。「こいつの名前なんだっけ…読み方わかんねぇ…」なんて思考はプレイヤーを幸せにしないので。ちなみに「ちはや」だそうです。デモニオンタイプだと発言者を知る方法が「名前を見る」しかないので、どうしても名前を見て読もうとしてしまいます。夏空カナタタイプなら発言者の顔がどーんと表示されているので名前を見る必要がありません。「あぁこいつか」で済みます。

このタイプの例をもう一つ紹介します。

妹のおかげでモテすぎてヤバい。も夏空カナタタイプですが、右側にもうっすらと何かいますね。「主人公視点ではなく、このキャラクターの視点です」という表示ですが、1画面に同じキャラクターの顔が3箇所も表示されていて、画面が少しうるさくなってしまっています。文字で「舞奈視点」と右上などに付箋表示する方がよかったような気がします。

夏空カナタは狭い画面を何とかやりくりして発言者画像の表示スペースを確保した感がありましたけど、妹のおかげでモテすぎてヤバい。は画面が広くなって逆に余計なものを設置してしまった感じ。

次はハピメアのゲーム画面を見てみましょう。

発言者の近くにテキストを表示する、漫画の吹き出しのような方法で発言者を伝えています。これならキャラクターが複数人登場する画面でも発言者が誰かわからなくなることはないでしょう。またこちらも発言者の名前を意識させません。吹き出しの近くにいるのが発言者です。

ただ一般的にエロゲのテキストウィンドウは画面下部に固定されているものなので、エロゲオタクは一点を見続けることに慣れており、画面のあちこちを飛び回るテキストウィンドウを目で追うのはつらいかもしれません。漫画は元から目を動かしてコマを追っていくものなのでそのついでで吹き出しも拾えますが、エロゲでは少し勝手が違います。

それからハピメアは吹き出しがあちこち飛び回るのが辛い人向けにデモニオンタイプに切り替える設定があります。

映像で発言者が伝わると便利だからと吹き出し形式にしたのかと思ったら、夏空カナタタイプではないのでどうやら違うみたい。十分なスペースもあるのに。「あちこち飛び回るのが辛い人もいると思うから固定表示にもできるようにしたよ。けど発言全てに発言者画像を設定するのは面倒だから発言者は表示しないよ。おまけみたいな機能だし」…とか?

ヒントを探してしばらくあちこちいじってみたらこんな機能がありました。

ボタン群の表示位置を選べるんですね。左側に設定するとテキストウィンドウ左側の発言者画像と重なってしまいます。

マウスカーソルを合わせていないときは半透明になって存在感を薄くする努力はしてくれますが、美少女ヒロインの美しいお顔に何かうっすら重なっているのはよろしくありません。設定次第で半透明ではなく透明(非表示)にもできますが、初期値が半透明なので、半透明でプレイされることを想定したデザインなんだと思います。だからって便利な発言者画像機能を実装しないのはどうかと思いますけど。やっぱり面倒だったのかも。

それからハピメアでは吹き出し形式の他に「テキストの色をキャラクター毎に変える」という手法も使われています。瞳や髪の色辺りを設定しておけば、確実ではありませんが何となく発言者が伝わります。ただ、瞳や髪の色だと割と被るんですよね。姉妹とか。ハピメアにもそういう組み合わせがあります。

1枚目:金髪だし当然黄色だよな!
2枚目:で、その妹だけど…どうしよう…仕方ないし髪飾りの色にするか。
そんな感じで設定したのかもしれません。

UIとはあまり関係ないプログラムの話

テキストウィンドウに表示されるテキストは、「発言者」「本文」「立ち絵」の3つのデータを持ちます。

発言者:茅羽耶
本文:いえ、そんな~下さい
立ち絵:茅羽耶_笑顔.png

デモニオンタイプでは単純にテキストウィンドウ左上に発言者を表示して、本文欄に本文を表示するだけなのでまぁいいですね。

では夏空カナタタイプはどうでしょう。「発言者」「本文」「立ち絵」の他に「発言者画像」というデータを持つ必要がありそうです。でもそうしたら発言毎に発言者画像を設定する必要があります。設定の手間が増えますね。ってことで多分立ち絵から切り出して表示しているんじゃないかと思います。それならいつも通りの手間で済みます。イベントCGが表示されている画面ではまぁ個別に設定するか何かして。

ハピメアタイプではどうでしょう。「発言者」「本文」「立ち絵」と「吹き出し位置X」「吹き出し位置Y」でしょうか。こんなの発言毎に設定していたら気が狂いそうです。

多分発言毎ではなく立ち絵毎に「吹き出し位置X」「吹き出し位置Y」を設定しているんだろうと思います。そしてイベントCGではどこにどのキャラクターが描かれているかをプログラムに組み込んでいるだろうと思います。プログラムはイベントCGのどこに誰が描かれているかを自動で認識できないので。

プログラムに位置を組み込めばこのようにイベントCGでも吹き出しを表現できます。プログラム的には

If(発言に「立ち絵」が設定されている){
立ち絵に設定しているX,Yの位置に表示する
}Else{
イベントCG①(発言者)の位置に表示する
}

イベントCG①(発言者){
発言者に応じて以下のX,Yを返す
弥生X = 10,弥生Y = 150
咲X = 300,咲Y = 300
透X = 600,透Y = 250
}

みたいな感じで。これでも苦行でしょうけど (発言数) > (立ち絵の枚数+イベントCGの枚数) のはずなので、いくらかマシ。マシなだけでやっぱり苦行でしょうけど。気軽に「ハピメアのやつかっこいいしウチの新作もあんな感じにしようぜ」とは言えなさそう。そもそも実際にエロゲ開発に関わったことはないので全くの妄想ですけど。