こんにちは、情報工学2年のdermasです。
前回、マリオメーカーを使ったステージ作りについての考察についてはこちらをどうぞ。今回はその続きです。
僕はtraP制作のアクションゲームninja flickerの(一部の)ステージを作る担当なのですが、当ブログ記事とステージ作り双方の締め切りに追われていた僕は「ステージを作りながらそれを記事にすればいい」という†天才的ソリューション†を思いつきました。
今回は僕がninja flickerのコースを作るまでの流れを紹介していこうと思います。
※登場するninja flickerの画像は開発中につき、リリース版と異なる場合があります。
1.仕様を知る
自機の動きや画面の大きさを見ておきます。
・画面
まず適当にブロックを置いて画面に映る範囲を調べます
自機(青白く光っている忍者)を中心に、左右9マス、上下5マスまでが完全に把握できる場所ですね。これは覚えておくといいでしょう。
Tiledのようなマップ制作ツールを使うと、実際のプレイ画面の幅が(起動しないと)わからないのですが、マリオメーカーは制作画面とプレイ画面があらかじめ同じ大きさなので作りやすくてすごいな~って今思いました。実際のプレイ画面の大きさを意識しながら作るのって結構大事だと思うんですよね。
・運動神経
ジャンプして通るマスを大まかに表示しました。ジャンプ力は高さ3ブロック半、横幅は9~10ブロックのようですね。あと、スライディングすると5~6ブロックしゃがみ状態で高速で移動できるようです。あと、スライディングするとスピードが上がるので足元の小さな穴にハマらずに進めるようですね…。
このゲームは時間の経過によるギミックが(たぶん)無いので、走る速さ等は計測しませんでした。それがあるゲームなら走る速さと落ちる速さを計ってみてもいいかもしれませんね。
さて、今回画面の大きさと運動神経を測ってみて分かったことは、「(10ブロック)めいっぱいジャンプさせることは避けた方が良い」ということです。
そもそも「精密に操作しないと突破できないから避けたほうがいい」というのもあるのですが「画面に映らない場所につぎに行く場所を置かない」という事に引っかかります。
9ブロック離して10ブロック目にブロックを配置してみました。忍者がめいっぱいジャンプすれば普通に届く距離なのですが、視認性がちょっと厳しいですね。しかも端のブロックに立ってこれなので、左から走ってきているときは見えません。これでは先に進むべき場所だと認識させるのは難しいでしょう。(背景もないのでなおさら。)ただ、左に正規ルートを作れば、隠しアイテムの置き場所なんかにはいいかもしれません。
2.作るステージのギミックを練る
マリオメーカーとかのゲームだと例えば「ジャンプ台をたくさん使いたい」とか「ボム兵で攻めたい」といった主軸を決め、それを最大限生かした仕掛けを練っていきます。
今回ninja flickerで僕が命じられたコースは「ジャンプ力が2倍になる忍術と変わり身を作る忍術を適度に生かしたコース」です。まぁ僕はくどいぐらい同じ(オブジェクト/アクション)を使ったギミックを並べるのが好きなので適度に、というのはなかなか難しいですが、案を出してみましょう。あ、そういえばスライディングを入れろ、って言われてたな。
というわけで、左からジャンプ力を2倍にしたら進める場所、スライディングを使ったら進める場所、変わり身の術(ダメージを受けたとき、ダメージを無効にして飛び上がる)を使うと進める場所を適当に作りました。実際にはこれだけでは少なすぎるのでもっと考えます。
パソコンの前でうんうん唸っても出なくなったときは他のことをいろいろやってみると急にひらめいたりします。僕は講義中によく思いつくので手近な紙にそれを控えておきます。
ギミックの繋がりとかはまだどうでもいいです。というか別につなげなくてもいいんですけど、これはスクショを撮る関係で繋がっちゃってます。
3.ギミックを並べる
多分「4.難易度を調節する」との順番は多分好みです。ギミックごとのバランスの調整をしてから並べるか、ギミックを並べてから全体の調整をしていくか。ギミックごとの調整をしても結局並べた後に再調整することになるので僕はこの順番でやりますが。
プレイヤーにやらせたいことをプレイヤーのスキル習得に合わせて並べていきます。ただ、必ずしも簡単な順に並べて、序盤は「操作が簡単、死亡(あまり死を並べるのもアレなので以降「ミス」とします)しにくい」後半に「操作が煩雑、ミスしやすい」を持ってくればいい、というものでもありません。
実際僕が最初に組んだのはここです。
はい。スライディングしないと針に当たります。ちなみにこのトゲ当たると即ミス、スタート地点からです。
このギミックを入れたのは、スライディングを利用したギミックを使おうとするとどうしてもトゲを使わざるをえず、同じトゲでもダメージトゲではスライディングが分からずに突破されてしまうと困る、という思いがあったからです。
しかし、コース中盤にこんな物を突然おいていたら、果たして次に進むべき道がこの先なのかわかりません。(出来れば通りたくないし。)先に進まなければならないと知っても、うろ覚えな操作でスライディングをやってみて、思ったより進んだor進まなかったという理由でミスしてしまったら結構萎えます。(今までに進んできた分がリセットされるわけですからね。)
そこで真っ先にかなりミスしやすいであろうこのギミックを登場させることにしました。
次にこう続けてみました。
同じ形ですね。しかし今回は針が無く、下に穴が空いています。
さて、最初の針をスライディングで突破したアナタ、まず何をしますか?
スライディングしませんか?
似た部屋の形をスライディングで突破したのだから、とりあえず次も一回スライディングしてみるのではないでしょうか。
はい。スライディングをすると突破することができます。期待通りの結果が得られるわけですね。(実際ギリギリでジャンプしても届きますが、まぁそれはさておき)たったこれだけのスペースで、「プレイヤーが次に進むための推理をして、それを実現する」ということが出来るんですね。(大げさでしょうか)
しかもここは再序盤、分からなくて落ちてミスしてもすぐにやり直せます。やり直したら何をするか。スライディングです。ミスするたびにスライディングをするので、上達していくし、意識に刷り込まれていくわけですね。そのため、そのうち気づいて突破できる、というわけです。
はい次ー。
ジャンプ力2倍の忍術でもつかってみますかね。6ブロックの高さに足場を作って…ここでトラブル発生。
ジャンプ力2倍にして進む場所を作ると次の足場が高すぎて着地点がほとんど映らないので壁に見える…コインでもあれば上に向かってつなげておくんですが、ninjaにはその類のものがありません。
そこでこうしてみました。
6ブロックの高さに足場を作る前に、2段階のジャンプを用意しました。1段階目は通常のジャンプで飛び乗ることができます。
2段階目は通常のジャンプでは少しジャンプ力が足りません。そこで炎(忍術を使用するための力を得る)を配置しておきます。この位置に炎を置くことによってプレイヤーは「何か忍術を使って進むのではないか」と察しがつくわけですね。別にここでは失敗してもミスしないのでいろいろ考えて貰えると嬉しいですが、まぁ次進めますよね。
そこで見えるのが3段目の6ブロックです。実際のゲーム画面で見える範囲は縦5マスで変わらないので3段目が画面端ギリギリになってしまうのは変わらないのですが、今までの2段を高いジャンプで乗り切ってきたので、次もそうなんじゃないかという推測があるはずです。するととりあえずジャンプしてくれますよね。ジャンプすれば着地点が画面内にグーンと入ってくるので、目的地を確認でき、きちんと次のアクションが分かります。
つぎー。
基本的にジャンプ2倍の術も変わり身の術も上方向へ向かうマップが必要なので、上がった高度は下げておいたほうが便利そうです。しかしただ飛び降りさせるだけでは下が見えずに怖いです。今回の場合は下に地面だけおけばいいんですが、例えば穴が空いていたりトゲがあったりするかもしれません。先に進む道がそこしかないのにそんな余計な心配をさせないためにあらかじめ先が見えるようにしておきましょう。具体的には一度に降りる量を5段以下に制限するといいですね。
こんな地形を作ってみました。
スライディングを使って進んでいくギミックですね。2連続でパパッとやらなければいけないところを増やし、難易度を増してみました。しかし、ここではうっかり失敗してもミスにはなりません(梯子を上って戻りましょう)。中盤でスタートに戻されるのは中だるみ感があって嫌なんですよね。
さて、こういうギミックでごまかして自然にプレイヤーの高度を8ブロック下げることに成功しました。
さて…この後も作業を続け、そのポイントごとにいろいろ解説したい気分ではあるのですが、ちょっと疲れてきましたよね?ということで、バッサリカット!僕の締め切りも迫ってきたことですし。
・補足:コインについて
別に「コイン」じゃなくてもバナナでも星のかけらでもリングでもいいんですが、取ることで微小量のいいことがあるアイテムは便利です。というのも、その価値の軽さに対して人は飛び込んでくれるからです。コインがあれば少なくともそこには行けるんだな(あるいはそちらが想定解なんだな)ということが分かりますね。
また、これはちょっとメタいのですが、ゲーマーは長年の経験から、「何の変哲もないところにコインがおいてあったら何か隠しアイテムがある」と知っているわけです。崖下に伸びていくコインの群れがあったら飛び降りてみるわけです。普通だったら明らかに見合っていません。(高々10枚のコインと残機を1失い最初からやり直しになるリスクが見合いますか?)それでも行きますよね?そういう下地があるので今度はこちらから(ステージ制作者側から)積極的にそういう仕掛けを作れるわけです。あ、マリオメーカー等のゲームで、「コインがあるから飛び降りたのに何もなくてそのままミスした」というのはそのような経験則を逆手にとった形ですが、ステージ作りに慣れていない人がやすやすと触っていいものではないと思いますよ。鬼畜ゲーム等でそういう形を組み込む方はいろいろと心得てます。ええ。
何が言いたいかというと、忍者にも小判みたいな何かが欲しかった…最悪効果音だけでもいいんです…(ただそうするとチープさが目立つんですよねぇ、スコアも残機もないゲームでコインをどう導入するか。難しいものです)
4.難易度を調節する
一通り作ったら通しでプレイしてみて難易度を調整しましょう。ninjaは(たぶん)面をクリアしないと次のステージに進めないゲームですので、僕は簡単めに作ることにしました。エンディング見れないとか嫌だし…。マリオメーカーとかだとかなりはっちゃけた難易度にも出来るんですけどね(出来なければ飛ばせばいいし)
簡単めにつくるコツはさっさと調整を終わらせることです。時間が長くなればなるほどステージ制作者のどんどんプレイが上手くなっていってそれに合わせた調整を行ってしまうので難しくなりがちです。
・タイムアタックをする
出来たコースがゲームのテンポを損なうものでないか、最高速でプレイしてみましょう。もし極端に待たなければいけない場所、(物理的に)引っかかりがちな場所、イライラする場所があったら修正しましょう。
今回のステージは30秒切ってクリアできるようなので、いい塩梅ではないでしょうか。
5.見た目を整える
背景を追加したり、ブロックの形をよくします。ステージの難易度には影響しませんが、ゲームへの没入度が変わるので張り切ってやりましょう。いや~グラフィッカーすごいですね…(率直な感想)
あ、そうそう、隠し要素を入れたほうが楽しいですね。見落としがちな場所にアイテムを置いてっと…。
完成!(ただしネタバレ防止のため画像はありません)
僕が一部のステージ制作を担当しましたninja flickerは今月末完成予定です!お楽しみに~
明日はnariさんとsobayaさんの記事です。お楽しみに~