主人公の視界を制限して暗闇を表現したい
ADVやホラーゲームで、暗闇の中を歩き回る演出が欲しいことがあると思います。
今回はピクチャを使った簡単な方法を紹介したいと思います。この方法は今自分が制作しているホラーゲームで使っているコモンEvになっています。
主人公の視界を制限して暗闇を表現する
コモンEvで主人公の周囲だけ明るくし暗闇を表現 |
このコモンEvを使うと、上画像のように主人公の周囲だけ明るく見えるという表現ができます。
視界を表現する為のピクチャは、真っ黒に塗りつぶして中心を円形にくり抜き透過保存した画像です。
また、ピクチャのサイズはゲーム画面の2倍の大きさ…320×240だったら640×480で用意するといった感じにしておいた方が、ズレて端から画像下のマップが見える心配がなく安心。
自分が今回組んだコモンEvは、マップEvから呼び出して使う仕様になっています。
実際に組んだコモンEvの処理
起動条件は「並列実行(常時)」にしています。
▼ 主人公の周りのみ明るく
■変数操作+: CSelf10[主人公X] = 主人公 の 画面X座標
■変数操作+: CSelf11[主人公Y] = 主人公 の 画面Y座標
▼ 半歩上に表示のため
■変数操作: CSelf11[主人公Y] -= 10 + 0
▼ ピクチャで暗闇を表現
■ピクチャ表示:CSelf12[暗闇ピクチャ] [中心]ファイル「Picture/視野.png」 X:CSelf10[主人公X] Y:CSelf11[主人公Y] / 0(0)フレーム / パターン 1 / 透 CSelf0[不透明度] / 通常 / 角 0 / 拡 CSelf1[拡大率]% / カラー R[100] G[100] B[100]
…以上の処理で暗闇を表現しています。
最初のCself12はピクチャ番号になっており、自分は他のコモンEvや演出との兼ね合いもあり、番号を1にしています。
Cselfの10と11にそれぞれゲーム画面上で主人公がどこにいるのか?を知るために、画面上の主人公のX座標とY座標を収納します。
そしてY座標を-10して位置を整えます(ここの数値はは好みでOKです)
何故こんなことをするのかというと…取得した座標はキャラクターグラフィックの足元の座標になっているので、表示させるピクチャの視界範囲になる円の中心に主人公を入れるためにY座標をいじっています。
最後にピクチャを表示しています!ピクチャの画像は配布されているのを見たことがないので、自分で用意する必要があるかと思います。
自分が上画像の視界用ピクチャを用意する際に使ったペイントソフトは【ファイヤーアルパカ】というものになります。
このペイントソフトは無料で使えて、透過PNGで保存できるので重宝してます。
自分はCself0に不透明度、Cself1に拡大率を設定し、入力内容の設定でマップEvから不透明度や拡大率を変更できるようにしています。
もし、必要でなければここは設定せずに直接ピクチャの設定で不透明度などの数値を入力すると良いと思います。
終わりに…
ピクチャの形を自分は簡単に円形で作りましたが、ピクチャの形を円形でなく前方後円墳のような形にしてライトを使っているような演出など、工夫次第で様々な表現が出来ると思います(ライトを使っているような演出のためには主人公の向きを取得して、それに合わせてピクチャを回転させてあげる必要があります)
今回ピクチャを使って視界を制限し、暗闇を表現してみました。
ピクチャを使わない方法もあると思いますが、一番わかりやすく簡単な方法はこのピクチャを使った方法だと思います。
最後まで読んでいただき、ありがとうございます