2025 年 8 月 24 日 | カテゴリー: Near The Sun, 製作について

15期のドッグウッドと申します。

漫画や小説で、ボス戦というのは非常にアツいですよね。
知略を用いて敵の能力を看破したり、回想で秘められた過去を思い出して覚醒したり……。
ただ、ゲームではこれらの演出は入れづらいな……と思っています。
ボス戦の演出の難しさについて、今回は書いていきます。

1.登場シーン
基本的に、2Dアクションのボスの登場シーンは「ばったり会う」です。
う~ん、味気ない……。
ボスならやはり、強く見える方が戦いがいがあります。
事前に強さについて知らされているのが定番ですが、ボス戦直前に演出で強さを示したいところ。強キャラの仲間がやられているとか、強い敵の死骸が転がっているとか、ばったり会うだけにしろそういう演出は入れたいところですね。
また、意外性を出すためによく使われるのは「擬態」です。花を調べたら成長してボスに……とか、たまに見ますよね。ただ、地形的にボス戦だろうな~とプレイヤーがわかっていることがほとんどなので、「意外性」をきちんと持たせるには、「別のイベントかと思ったらボス戦だった」のような演出が必要です。多くの作品ではボス前にチェックポイントを置くことが多いので、それで感づかれそうでもありますが……。
それに、ただ「意外」なだけでは演出上たいした意味がありません。ストーリーとして「これで全部うまくいくな」と安心したタイミングで「意外」を使うことでプレイヤーの感情を揺らすことができます。簡単な例ですが、ヒロインと喧嘩してたけど和解して一安心、その次のシーンで後ろの花が成長してボスになり、ヒロインの首を刎ねたらプレイヤーは驚くとともにボスへの憎しみが高まりますよね。「ボスがヒロインを憎んでいた」などの文脈は先に示さないといけないですが……。「仲間と思っていたら実はボスだった」演出も使いやすいなと思います。
さらに、工数の問題があります。画面外からボスを登場させるのは大変なんですよね……。トコトコ歩いてくるんじゃ威厳もないですし。たいていワープホールが開いて登場、とかになっていることが多い気がします。魔法やワープがない世界観なら、基本的に「隠れている」か「ばったり会う」演出しかできないのもわかります。「すでに攻撃を受けているぞ!」でボス戦が始まるとか、やりたいんですけどね……。
「いつの間にかプレイヤーのすぐ後ろにいる」などの演出で不気味さを出す……などもしてみたいですが、2Dアクションはカメラの向きが固定されていて画面が連続的なので難しいです。こういう制限は漫画などの他媒体に比べてキツいですね。カメラを別ターゲットに移動させて、戻ってきたら後ろにいる、などでしょうか。

2.ボスの強さの示し方
どうせ倒すなら、敵は強ければ強いほど倒す気が起きますし、そして魅力的であれば魅力的であるほど主人公が魅力的になります。
NPCに「とても強い敵だ!」と話をさせたり、登場時に咆哮させたり、一枚絵などを用意したり……いろいろと強さを示す方法はあると思いますが、どうせなら「ゲームならでは」の方法を考えたいものです。
一つは「序盤に出てきて歯が立たない演出」です。特殊勝利にするか負けイベントにするかですが、単に工数がかかります。のちに攻撃バリエーションが増える理由とかも考えないといけませんね。「あの時は本気じゃなかった……」というやつです。
あとは道中で倒せないギミックとして攻撃してくるようなボスですね。これはいままで倒せなかった敵が倒せるようになる、「敵を倒したい理由」がストーリー上だけでなくゲームプレイで示すことができるというメリットがあります。
後は主人公と同じタイプのゲージ(HP、MP)を持たせて同じような攻撃をさせることで主人公と単純な数値で比較をさせやすくする方法などでしょうか。自分が2回しか使えない必殺技を敵は10回使える、とかだと絶望感が増しますよね。


3.ボスを倒せる「理由」
ボスを倒すには「理由」が必要です。ストーリーにおいてボスはテーマを象徴する壁であり、主人公の目的を邪魔する障害です。ボスを倒す前と後で、キャラクターの気持ちは変化していなければなりません。それは仲間に対する信頼だったり、覚悟だったりします。
でしたら、ボス戦にその要素を含めるべきだと思います。なんの演出もなければ「戦ったら勝てた」以上のものにはなりません。本来倒せないような敵を「仲間の言葉」「自分の原点の再発見」などによって覚醒して倒し、その後にキャラクターの心情が変化するからこそドラマになるのです。
しかし、この演出は入れるのがとても難しいです。途中で主人公の心情を語るシーンは単純にゲームプレイの邪魔になります。また、覚醒したとして新しい能力を使わせるのには練習が必要です。また、敵を倒した後に演出を入れると、アクション的な最高潮とストーリー的な最高潮がズレてしまいます。
解決策としては第一形態から第二形態に移行するときに主人公のモノローグを挟む、とかですが、あくまで敵のための時間のはずなのに主人公の演出が入るのは違和感があります。主人公の覚醒に応じて敵が覚醒する、などの場合は良さそうですね。新しい能力に関しては、今まで条件付きでしか使えなかった技が条件なしで使えるようになる、とかでしょうか。しかしゲームバランスが崩壊するようなことはあってはいけないし、どうしてもチート感が出てしまうのは避けられないですね……。
また、敵の回想なんかは敵を倒した後に流してもいいかもですね。ボスが最後の一撃を避けず、主人公は何か違和感のある勝ち方をしたとします。戦いが終わった後、戦いの影響で瓦礫が崩れ、子供が下敷きになる瞬間、倒したボスの方が主人公より先に気がついて子供を助け出す、しかしボスはそのまま瓦礫の下敷きに……そこでボスの回想が流れ、ボスがなぜ最後の一撃を避けなかったかがわかる、みたいな「倒せた理由」のつけ方は可能です。「理由が先にわかっている方がアツい演出」は難しいですが、「理由がわからない謎の提示をして後で解決する演出」は比較的入れやすいですね。
あとは「敵に最後の一撃が入ると確定した瞬間」の演出でしょうか。アクション的には一番盛り上がるタイミングです。ただ、「理由」があって倒せたはずなのに、倒したら「理由」が表示されるという因果の逆転の違和感は残ってしまいます。逆に主人公がピンチに陥ったときに助けられるのはいい演出ですが、今度は「主人公が自然とピンチになる」のが難しいですね。第一形態を倒したら何故か主人公がピンチになっているのはシュールですし、そこに上手い理由がついていても演出感は拭えません。
結局、ビジュアルで「言わなくてもわかる演出」があれば一番いいですかね……。例えば「今まで倒した相手の姿になれるボス」がいて、「第二形態でヒロインの姿になる」とかの演出を入れれば、画面を止めなくても主人公がボスに対して怒っていること、怒りが力になっていることがわかります。

4.退場シーン
ボスの退場シーンも難しいです。これはストーリーの話では全くないのですが……。単に、「ボスがどこでやられるか」が確定していないので、その後の演出を作りづらいんですよね。世の中のゲームではディゾルブで消えていく、爆散、その場に崩れおちる、などが多いでしょうか。動かない巨大なボスだったら割と作りやすいです。あとは下に落ちていくとかですかね……一度暗転させて主人公とボスの位置を固定する、という荒技もあります。

ということで、ボスの演出について話してきました。
漫画やアニメではアツい演出であることが多いボス戦、ゲームでも主人公に感情を乗せてうまく作りたいです。個人的には自分の力だけでボスを倒した感が欲しいので、ボス戦の途中で新しい能力を手に入れたりとか、ギミックボス的なやつよりは道中でも使ってきた能力だけで倒せるボスの方が好みです。また、覚醒した主人公が負けることがあるのは、ご愛嬌ということで……。

次回は扇型の視界の表示方法について話します。

2025 年 8 月 17 日 | カテゴリー: Near The Sun, 製作について

15期のドッグウッドです。

今回は2D横スクロールゲームの装飾について話します。

横スクロールゲームのグラフィックってかなり特徴的ですよね。
一枚絵と違って視点が動きますし、3Dゲームと違って視点によって物体の見え方が変わったりしません。
それにそもそも、地形をスライスして真横から見た絵を描くわけですが……地面のスライスってなんだよ!骨組みでも書けばいいのか!?

よって、「視点」を抽象化して画面に落とし込む必要があるわけですね。
普段僕が2Dグラフィックを作るうえで考えていることを書こうと思います。

基本的に6枚のレイヤーを考えます。
1.超前景レイヤー
2.前景レイヤー
3.地形レイヤー
(プレイヤーのレイヤー)
4.建築物レイヤー
5.遠景レイヤー
6.超遠景レイヤー
です。

1.超前景レイヤー
想定カメラのすぐ目の前にあるオブジェクトで、基本的にぼかしを入れます。画面の半分くらいを覆うこともしばしば。他のレイヤーよりもスクロールするスピードが速いです。たいてい真っ黒で、込み入った洞窟などを表すときに使われるイメージが強いです。プレイの邪魔になることが多いので、これを入れるときは敵やギミックがない所にしましょう。「Near The Sun」では使い方を迷っています。

2.前景レイヤー
スクロールスピードは地形レイヤーと同じで、プレイヤーと地形より手前にあるオブジェクトです。紐や鎖、布、ツタなどがあると簡単に情報量が上がります。

3.地形レイヤー
プレイヤーが接する地形です。このレイヤーだけは重要な個所と重要でない箇所が決まっています。地面と空間の境界線が一番重要で、地面の中はたいして重要ではありません。情報量を増やすために地面の中を描き込むと、画面のいらないところに目が行ってしまいます。地面の中は単純なパターンか暗闇がいいと思います。また、地面と空間の境界はなるべく明度の高い色を使いましょう。どれだけ綺麗なグラフィックでも、境界がわかりづらければゲームプレイに影響が出てしまいます。
そして、地形レイヤーと建築物レイヤーの間に薄い透明色を置きましょう。この透明色が建築物レイヤーを淡くさせ、境界をはっきりさせます。

4.建築物レイヤー
画面の情報量を上げる建築物を置くレイヤーです。描き込みどころ……ではありますが、背景なのでインタラクトできるオブジェクト以上に目立つことがないようにしましょう。あまりに目立ちすぎていたらTintColorをいじって色を淡くさせたり、乗算のオブジェクトを上に置いて詳細をつぶしたりというのも手です。
揺れる草や鎖など、ギミックではないがインタラクトできるものを置いておくとプレイヤーを飽きさせずに済みます。また、アニメーションをしてると画面がにぎやかになっていいですね。
建築物を真横から描くと薄っぺらく見えるし、斜めから描くとパースの問題があるし……という問題についてです。基本的にはパースは気にしなくていいと思います。そこまで違和感は出ません。また、真横から描くときは色による遠近感を意識しましょう。反復によって遠近感を出すことができます。厳密に描かなくても 、ゲームをプレイしている人には思っているより違和感なく伝わるものです。フィーリングが大事!

5.遠景レイヤー
建築物レイヤーの後ろ側にある景色のレイヤーです。カメラの位置を参照してスクロールさせると立体感が出ます。「Near The Sun」では#20で話した洞窟ブラシを用いて作った画像をスクロールさせています。情報量は増やしつつ、基本的には模様の延長線上なので目が向くほどのものでもない、といういい塩梅を作れたと思っています。何枚か重ねて間にエアブラシで作ったテクスチャを加算で入れることで距離感を演出しています。

6.超遠景レイヤー
視点移動が無視できるほどと奥にある景色のレイヤーです。つまり画面に一枚絵を張って表します。「Near The Sun」は洞窟の中なのでそんな遠景が見えるか……?という疑問が出て扱いづらいです。淡くすると遠景感が出ます。

ということで、2D横視点グラフィックの基本レイヤー構成について話しました。これについて書かれた本は少ないので、なるべく多くのゲームをプレイして分析したいですね。2Dでしかできない演出もまだまだあると思いますし……。

では、次回はボス戦について話そうと思います。

2025 年 8 月 10 日 | カテゴリー: Near The Sun, 製作について

15期のドッグウッドと申します。

今回はメトロイドヴァニアのマップ機能についてです。

メトロイドヴァニア。ボスを倒す、宝箱を開ける、購入するなどの手段で移動能力を増やすことで、探索可能な場所を増やして進んでいく2Dアクションです。

世の中のメトロイドヴァニアには多様なマップ機能があります。アイテムの位置が表示されていたりいなかったり、一部屋が単なる四角だったり地形に合わせた形だったり……。詳細に書かれていればいるほどいい、というわけではないのが難しい所です。

メトロイドヴァニアにおけるマップの機能は単なる「迷わないようにするための道具」ではありません。それなら最初から完全に埋まったマップを用意すればいいだけの話ですからね。
僕は現実の地図とは大きく違って2つの役割があると思います。

1.探索のモチベーションを向上させる。
メトロイドヴァニアといえば「探索」の楽しさがゲームの根幹の楽しさの内の一つになっています。
では、「探索の楽しさ」とは何か。
それは、未知を既知に変えるプロセスそのものでしょう。
「未知」の魅力を増すために、レベルデザインをする人は「宝箱」「変な地形」「倒すのが難しい敵」「頭を使わないと先へ進めないギミック」を用意します。ずっと同じ平坦な道では、「未知」の先の予想がついて退屈になってしまいます。
マップはその「未知」を示す機能だと思います。
マップがなければ、一度通った道を忘れてもう一度通り、「なんだまたここか」となってしまいますね。また、アイテムを探すのにもある程度の位置がわかっていないと探す行為が苦痛になってしまいます。
この辺りはEnderLiliesが上手いですね。
「未探索な場所」のエリアの色が変わる仕様になってはいますが、エリアのどこにあるのか、何があるのかは表示されません。
エリアを限定して「未知」の存在を示しながらも「何があるか」は示さない、見事な塩梅です。
「このエリアの中のこの場所に食料素材のじゃがいもが7個ある」なんて詳細にマップを示したら、ただのおつかいになってしまいますね。

2.探索の集積としてのトロフィー
厳密には1に含まれますが、1は未来向きの役割、2は過去向きの役割ということで分けてあります。
自分はこんなに広い地形を全て踏破してきたんだぞ!という実績の表示としてのマップです。メトロイドヴァニアのマップならマップの拡大/縮小機能は(個人的には)絶対に欲しい所です。
ここを意識しているゲームは割と少ない気がするのですが……どうでしょうか。探索率100%のエリアができたら虹色に光るくらいやっていい気がします。
単に実績が解除されるだけというのが多いイメージですね。

これらのマップの役割を前提として、マップの仕様でよくぶち当たる問題をいくつか論じてみましょうか。収集要素の多寡など、規模によって結論は異なることがあります、ご了承ください。

・マップを手に入れるタイミングについて
マップ自体を最初に保持しておらず、各エリア内で購入することで初めてそのエリアのマップを見ることができる作品があります。
これは非常に合理的な仕様だと思います。
最初は事由に探索をさせ、だんだんマップが覚えきれなくなってきたところでマップを得る……そして、「あそこに行けるのか」などの驚きを得る。
これは「マップが欲しいから探索をする」のようにモチベーションになる上に、実装の工数も少なくて済む工夫だと思います。(「Near The Sun」ではテンポが落ちるため入れていませんが……)
しかし、マップをもらえる場所を見逃すと大きなストレスになり、一つのエリアから次のエリアへ移動する時に「マップを覚える」負荷をかけることになります。
マップをもらえる場所をわかりやすくすること、ボスなどで一つのエリアから次のエリアの区切りをわかりやすくした上で何らかの探索のモチベーションを用意すること、そしてマップを手に入れたとき、すでに通ったことがある場所はもう一度通って埋める必要がないようにすることは気を付けたいですね。

・探索中に死んだとき、マップの埋まり具合も巻き戻るべきか?
これは巻き戻るべきではないと思います。
死ぬたびに地形が変わるなどの要素があれば話は別ですが……。
この仕様が入っているゲームはデスルーラ対策で、チェックポイントの価値をあげたいのかなと思うのですが、ストレスの方が大きいでしょう。
既知を忘れたことによる未知はたいして価値のある未知ではありません。

ということで、マップについて書いてきました。
マップは実装が大変で、地形を変えるとマップも変えないといけないので工数も大きく増えますが、ゲームをプレイしてくれる人の遊びやすさを向上させる意味でも入れたい機能ですね。

次は「Near The Sun」のステージ装飾について話します。

2025 年 8 月 3 日 | カテゴリー: Near The Sun, 製作について

15期のドッグウッドと申します。

今回は「Near The Sun」におけるイベントシーンの作り方について話します。

2Dアクションにおけるイベントシーン。
作り方をどのように設計するのが良いでしょうか。

作成の準備に手間がかからず、できることに制限を設けないで手直しが簡単でなければなりません。

「Near The Sun」では次のように作成しています。

まずはイベントシーンへの入り方。
1.シーンがロードされた時
2.プレイヤーがWキーでインタラクションした時
3.プレイヤーが特定の領域に入った時
の3つが用意されています。

そして、イベントシーンに入るとメニューが開けなくなり、プレイヤーの動作が出来なくなり、エネルギー残量が最大になります。
そして、会話はインスペクター上で2つのリストに入力することで作成できます。(翻訳のことを考えるとcsv読み込みの方がいいのですが……csv読み込みの切り替えは最後にまとめて行うことを考えています。いちいちcsvファイルを作るのは大変なので。)

基本的にはこれだけです。
オブジェクトにコライダーとスクリプトをつけて、会話と話者を書き込む。単純ですね。
ビジュアルノベル時の機能とは違い、立ち絵を出す機能はデフォルトでついていません。(無理やり出すことはできますが)

しかし、会話のみのイベントを作成することはほとんどありません。音を鳴らしたり、アニメーションを進めたりなどをする必要があります。

それはこちらの機能で行なっています。

下のEvent int Listはイベントが起こるタイミング、上のLineEventsは起こるイベントの内容を示します。
例えばこの場合、「1」つ目のメッセージでEnterが押された瞬間、Event int ListのElement1が「1」になっているので、LineEventsのElement1が起こります。
実装は簡単で、以下の関数をcallbackとしてEnterが押された時に呼んでいるだけです。

これによって、Enterが押されてた瞬間を基準として好きなイベントを起こすことができるようになります。
それでは、よく使うイベントを紹介します。(コンポーネントのenabledとかSetActiveとかの既存のイベントは省略します。)

・ChangeCam.Change(int id)
本プロジェクトではCinemachineを使っています。VirtualCameraのリストを保持し、リスト内のPriorityを制御して特定のVirtualCameraに切り替える関数です。

・ChangeBlendTime.SetBlendTime(float duration)
Cinemachineのblendtimeを設定します。よくカメラ切り替えと同時に設定します。(VirtualCameraのブレンド方式を変更する関数もたまに使います。)

・SimpleMessage.WaitSec(float time)
指定の秒数だけ待った後次のメッセージを表示します。アニメーションを流している間待つのに使います。

・SimpleMessage.TextTmpUnVisible()
次のメッセージまでテキストボックスを非表示にします。

・ChangeAnimatorState.ChangeStateWithId(int id)
あらかじめ指定されたAnimatorのInt型パラメータの数値を設定します。

・LateUnityEvent.Play()
指定秒数後にEventを起こします。

・ImpulseSourceManager.GenerateImpulsewithForce(float force)
画面を揺らします。

・PlaySE.PlaywithClip(AudioClip clip)
SEを再生します。

・FadeController.StartBlackout/FinishBlackout(float duration)
画面の暗転/明転を行います。

・WarpController.Warp()
主人公の位置を移動させます。

正直、これらの機能があれば大抵のイベントシーンは作成できます。
あとはパーティクルの再生、Timelineの再生くらいですが既存の関数が用意されているのでありがたいです。

現在のイベントの作成方法にはかなり満足しているのですが、一つ不満点を挙げるとすれば、複雑な処理をしたくなったときにインスペクターが長くなってしまうことですね。各Elementで折りたたみをしたい……。

他のプロジェクトだとイベントの作成ってどうやっているんでしょうか?

次はマップ機能について考えたことを話します。

2025 年 7 月 27 日 | カテゴリー: Near The Sun, 製作について

15期のドッグウッドです。

今回はゲームの大会に申し込んだ話です。

2024年の7月、コナミ主催の学生ゲームコンテスト、「IndieGamesContest」に応募をしました。
応募をする直前にステージを1つ仕上げ、ほとんど入っていなかったSEを入れて完成度がかなり上がり、かなりの自信と共に臨んだのですが……。

結果は1次予選落ち。
そもそも1次で20作品まで絞られるので狭き門ではあったのですが、かなりショックでした。人間ってショックなことがあると本当に気絶するんですね。

一日悔しがりに悔しがった後、「実装が大変だがあったほうが必ずゲームが良くなる」マップ機能の実装に踏み切りました。これによりゲームは確実にクオリティがアップしました。タイミング的にも、多分大会に出さなかったらこの機能の実装はなかったと思います。

僕自身はゲームを大会に出すのには賛成派です。

「ゲームは比べて順位をつけるものではない」という気持ちもわかります。
ゲームシステムはつまらないけど入っているムービーとストーリーが最高なゲームと、ゲームシステムは面白いけどグラフィックのセンスが壊滅的なゲームを、パズル・ビジュアルノベル・アクション……それぞれのジャンルを超えて絶対的な順位をつけるなんて、まあ前提として不可能でしょう。

なので、ここでついた順位はあくまで参考程度にしかなりません。
しかし、必ず保証されていることはあります。
それは「上位を取ったゲームは多くの人が楽しいと感じられる可能性が高い」ということです。
何を当たり前のことを、と思うかもしれませんがそうですね、重要なのはここではありません。
「上位を取れなかったゲームが面白くないとは保証されない」部分です。
「完成度が高いならば必ず上位に入賞する」は間違いで、「上位ならば完成度が高い」は正しいですね。
それを理解しておけば、大会は「面白いゲーム」を決める場所であり、「面白くないゲーム」を決める場所ではないとわかるでしょう。
ここまで前提です。

なぜ僕がゲームを大会に出すのには賛成派か。
一つは、それによりゲームのクオリティが向上するからです。今回もマップ機能を追加しクオリティを上げました。この部分に関しては入賞しない方が悔しがってゲームをさらによくしようと思うので、入賞しない方がいいですね。
「入賞しないからと言って面白いゲームじゃない」って自分で言ってただろって?悔しいものは悔しいんです。
そして、入賞すれば入賞したことによりモチベーションが湧きます。数年単位の開発が当たり前のゲームにおいて、モチベーションの維持は重要ですね。

そして、学生にとって入賞やプログラムの採択は決して軽視すべきではありません。なぜなら「親や教員からの理解」はこの客観的な評価基準によってでしか得られない場合が多いからです。インディーゲーム業界に詳しい親や教員を期待してゲームを直接見せるよりは優れた説得手段だと思います。

また、ゲームが売れるように宣伝もできるのでいいですね。

これらのメリットがあるので、また懲りずにゲームを大会に出すことになります。その話はまた今度。

次は現在のイベント作成方法について話します。
誰か正しい方法を教えてくれ……。

2025 年 7 月 20 日 | カテゴリー: Near The Sun, 製作について

15期のドッグウッドと申します。

今回はチュートリアルの作成法について話します。

チュートリアルはめちゃくちゃ大事です。
どれだけ頑張って作ったゲームでも、ルールがわからなければ遊んでもらえはしません。
ただ、「人にルールを学習させる」ということで、作るのはとても難しいです。工数もかかります。それでいてプレイヤーが「いいチュートリアルだ、最高!楽しい!」となることは余りないのが辛いところです。

そんなチュートリアルを作成しながら以下のことを考えました。
1.置いてあるだけの文字は読まない。アニメーションさせろ
2.アニメーションしただけの文字は読まない。操作が必要な「壁」を作れ
3.わかりにくいルールは何回でも提示しろ
4.重要なチュートリアルは画面を止めろ
5.操作方法は常に提示しろ
6.文章は短く
です。もうここで記事が終わってもいいのですが……それだと短すぎるのでそれぞれ少しずつ補足します。


1.置いてあるだけの文字は読まない。アニメーションさせろ

「Near The Sun」では文字をステージ上に配置してチュートリアルにしています。
初めてイベント出展したときは驚きました。半分くらいの人が文字を読まずに先に進むか、読んでも理解せずに先に進みます。
これはお客さんが悪いのではないです。チュートリアルの役割はコミュニケーションであり、どういう原因であれそれを果たせなかったのはチュートリアル側に落ち度があります。まあどこまで対応するかは別の話ですが……。

「でかい文字」は別に人の気を引きません。なぜならその下を通るステージの方が重要で、目が行くからです。
では目を行かせるにはどうしたらよいか。
人は動くものを目で追います。そのため、大きさを変えてアニメーションさせるのが一つの手段です。あとは点滅させるのも効果があると思います

横に伸びる

2.アニメーションしただけの文字は読まない。操作が必要な「壁」を作れ
1で文字をアニメーションさせましたが、まだ足りません。プレイヤーは文字を(そもそも読まないか)読んだ気になって先に進みます。そのため、幾度かその操作を実際に行わせて覚えさせるのが重要です。
上の例では左右移動、ジャンプだけでは超えられない壁を用意しています。
ただ、「○○でゲームオーバー」は実際に体験させるのが難しいですよね……。ここの解決策は僕自身見つけられていません。

3.わかりにくいルールは何回でも提示しろ
座学、実践ときたら次はそう、反復です。ある程度時間がたってからもう一度チュートリアルを提示しましょう。

4.重要なチュートリアルは画面を止めろ
しかし、「アイテムの取得」などはゲームシステムの都合上一度しか提示できない、次に提示されるのはもっと後の方になってしまう、という操作もありますよね。その時は奥義、「画面を止めて文字を読み、特定のボタンを押さないと再開できない」です。これをやると(理解させるかはともかく)プレイヤーは確実に文字を読みます。
ゲームのテンポ?知ったことではありません。ルールの理解の方が何百倍も大事です。
むしろ、止めすぎると学習されて読み飛ばされる方を恐れたほうがいいです。その意味で「ここぞ」という時に使うのが良いのではないでしょうか。

5.操作方法は常に提示しろ
一度途中までやって積んでいたゲームを再開したら操作方法がわからない、という経験はありませんか?私たちが作っているゲームも当然そうなる可能性があります。インタラクションの方法は常に表示しておきましょう。
本筋からは逸れますが、再開時にできれば「ここまでのあらすじ」みたいな機能を入れたいですよね……。しかし工数が……。

6.文章は短く
多少正確性が落ちても直感的に理解できるチュートリアルの方が格上です。
チュートリアルは「仕様を伝える場」ではありません。
具体例をお見せしましょう。

「空中ダッシュ中は敵の視界の中でエネルギーを消費しない」

「空中ダッシュ中は無敵」

下の方がいいですよね。実際は空中ダッシュでトゲに突っ込むと死んだりしますが……それでも上の「理解できない文字列」よりはだいぶマシです。
短く仕様を完璧に伝えられるならそれに越したことはないんですけどね。


いろいろ書いてきましたがまあ、結局は工数との戦いでもあります。
逆に言えばどれだけ適当に作られていても伝わりさえすればなんでもいいわけですし。
チュートリアルアニメーションの細かい動きにこだわるくらいなら、ボスの動きをゴージャスにした方がいいですね。
なんにせよ人とのコミュニケーションは難しいということで……。

最後に、SANABIのチュートリアルの見せ方はとても参考になります。
アニメーションする看板、半透明なプレイヤーのアニメーション、足を止めさせてのチュートリアル、というかチュートリアル用のステージがきちんと複数用意されていてすごすぎ……。一度プレイしてみてください。

次回はInideGamesContest2024への申し込みとその結果について話します。

2025 年 7 月 13 日 | カテゴリー: Near The Sun, 製作について

15期のドッグウッドと申します。

本日はUnityのエディタ拡張、タイルブラシについて話します。

Unityのタイルマップ、という機能をご存知でしょうか。
画像をグリッド上に並べることで簡単に地形を作ることができる機能です。


とても便利です。大抵のゲームエンジンには似たような機能がついているんじゃないかと思います。

さて、「Near The Sun」もこのタイルマップの機能を活用しています。

足場や装飾はかなりタイルマップで作成しています。
そしてなんと、背景の洞窟もタイルマップで生成しています。
わかりづらいので、前に出てきてもらいましょうか。

こちらの濃い鼠色の画像はタイルマップで作成しています。よく見ると同じタイルが使われていることがわかると思います。

しかし、このタイルを全て並べるのは……手作業ではさすがにきついですね。
そこで、タイルを並べる機能、「タイルブラシ」を拡張して「洞窟ブラシ」を作成しました。

まずは、「x→yタイル」、を、「x→yに線を引いた時に、その左側を塗りつぶしタイル」と定義します。
「a→hタイル」は以下のようになります。

「h→a」タイルは以下ですね。

まずは、「x→yタイル」はxが8通り、それぞれについてyが7通り(「x→xタイル」は存在しない)、あるので、56枚の画像を用意します。

これで前準備は完了、それぞれのタイルをスクリプタブルオブジェクトにまとめておきます。

いよいよ洞窟ブラシの実装です。まずはブラシ、次に消しゴム、最後にCleanボタンを実装します。

①ブラシ
まず目標グリッドの上下左右4つのタイルを確認して、a,b,c,d,e,f,g,hのどこが埋まっているかを確認します。
下の例なら、右をチェックしてe,hが埋まっていることがわかります。

では、上図のように上下左右を確認したところ、a,b,d,e,f,g,hが埋まっていて、cが 埋まっていないことが分かったとしましょう。

そしたら次は角の周辺が全て埋まっているかをチェックします。まずはcから。
c,e,b……cが埋まっていない
次はhの周辺がすべて埋まっているかをチェックします。
e,h,g……全て埋まっている
これで、少なくともe,h,gが埋まったタイル、つまり「e→gタイル」を設置できることがわかります。

a,c,f,hの角の周辺が一つも埋まっていない場合、タイルを設置しません。

あとは簡単、hから右回り、左回りに点を見ていって「x→yタイル」のxとyを決定するだけです。
h…埋まっている、e…埋まっている、c…埋まっていない
よってx=e
h …埋まっている ,g …埋まっている ,f …埋まっている ,d …埋まっている ,a …埋まっている ,b …埋まっている ,c …埋まっていない
よってy=b

「e→bタイル」を設置すればよい

さて、もうお気づきかもしれませんが、この方法は全ての場合には対応していません。以下のような周辺状況の場合、設置すべきタイルはa,b,d,e,h,gが埋まった以下のようなタイルです。

しかし、思い出してください。このようなタイルはそもそも作成していません。存在しないタイルは配置することができないので、この場合はe,h,gが埋まっているため「e→g」タイルを設置するので良いのです。最後の「Cleanボタン」でここの解決方法を示します。

次に消しゴムです。
こちらは簡単。まずは半径から円形範囲を計算して、円形の内側のタイルを消去します。そしたら赤色のタイルをある場所から左回りに順番に見ていきます。

水色のタイルに注目しましょうか。

こちらの場合は下と上にタイルが入るので、「(a,b,c)→(f,g,h)タイル」を設置すればよいですね。(a,b,c)はランダムに選んで、左回りなので下側の(f,g,h)はもう決まっているはずです。
その次は下と左にタイルが入るので、「(a,d,f)→(f,g,h)タイル」を設置すればいいですね。先ほどランダムに選んだ(a,b,c)がそれぞれ(f,g,h)に対応しています。

そして最後に「Cleanボタン」です。いままでのアルゴリズムは全パターンを網羅したものではないので、消しゴムを左右に振ったりすれば以下のように不適当なタイルが設置されてしまいます。

そこで「Cleanボタン」です。すべてのマスに対して最初の「ブラシ」の操作、つまり「周りの状況を見て自分のタイルを決める動作」を行います。

こちらのボタンを2、3回押せばこの通り

ぼこぼこだったつなぎ目がきれいになりました。
こちらのボタンがあるので、完璧なアルゴリズムを組む必要がなかったんですね。

エディタ拡張、楽しいですね。タイルマップの背景は情報量も増えていい感じです。

次はチュートリアルの作成について書きます。

2025 年 7 月 6 日 | カテゴリー: Near The Sun, 製作について

15期のドッグウッドと申します。

#11でのイベント出展で大失敗してから半年、ついにゲームダンジョンで一般の方々にお披露目をしました。

参加したのは5/4に浜松町で開催されたゲームダンジョン5。参加団体数260団体以上、来場者2500人以上の大きなゲーム展示イベントです。作品審査が存在しないので、ノンリニアのような学生団体も気軽に参加できるのはとてもありがたいですね。

さて、まずは反省から。
試遊台、動きませんでした!
いや、起動や操作自体はできたのですが、あまりにも重すぎて画面がカクカクしていました。
事前に確認しとけよ!と思うかもしれませんが、事前に確認はしていたのです。事前に確認したときは重くもならず動いていました。
じゃあなぜ本番で重くなったかと言うと、「PCを充電しているときにだけ動作が重くなる」という罠があったからです。
事前に確認したときは電源につなぎながらの確認はしていませんでした。
皆さんは確認するようにしましょう。

また、ゲームダンジョンの机は思っていたよりも広く、PC一台では少し寂しかったのも反省点でしたね……

ということで、リベンジ!
7月14日にnote placeで開催された「東京ゲームダンジョン外伝」に参加してきました。

今度は前回、前々回のイベント参加の反省を踏まえてモニター、ポスターを用意しました。見た目はかなり良くなっていますね。
やっぱりプレイしている様子を横から見るのか席の向こう側から見るのかでお客さんにかけるプレッシャーが違うので、モニターを用意したのは正解でした。
このためにモニター用のバッグも買いました。

ゲームダンジョン外伝は学生ゲームエリアとADVゲームエリアの2エリアで開催され、僕たちは学生ゲームエリアで出展させてもらいました。
きちんとチュートリアルステージを作ったかいがあって、客足が途絶えることがなく試遊をしてもらえました。
こんな無名なゲームを遊んでもらえるのはめちゃくちゃありがたかったですね。

チュートリアルでわかりづらかったところが浮き彫りになり、修正点を把握することができたのは大きかったです。

2回の失敗を踏まえての今回の出展は大成功でした。
もぐらゲームスさんに記事も書いてもらいました!

https://www.moguragames.com/tokyo-game-dungeon-gaiden-report/

チュートリアルの作成、詰んだときの対応、モニターの用意、コードを繋いでの動作確認は大事ということで……ぜひイベントに出展する時は参考にしてください。あと、最悪その場でコードを修正するという荒技もあるので、開発用のノートPCも持ってくるといいかも。

次回はunityのeditor拡張、洞窟ブラシについて話そうと思います。

2025 年 6 月 29 日 | カテゴリー: Near The Sun, 製作について

15期のドッグウッドです。

今回は「Near The Sun」における「敵を倒す意味」について話したいと思います。

一般のゲームでは、敵を倒すと経験値やお金が得られることが多いです。このシステムはよくできていて、「戦闘」という楽しさをプレイヤーが積極的に行うモチベーションになり、プレイヤーの努力がポジティブにフィードバックされる仕組みになっています。「やらされている感のある戦闘」はつまらないですからね。

しかし、「Near The Sun」では敵を倒しても経験値もお金も得られません。
これは本作が分岐するストーリーを基盤とするシステムであり、「戻ってやり直す」ことが想定されているからです。戻ったときに「経験値をためる」「お金を稼ぐ」などの行為がまたやりなおしになるのはきついですよね。

また、敵を破壊することはできず一時的にマヒさせることしかできないので、敵はすぐに復活します。その場ですぐにお金や経験値を無限に得ることができます。「同じ敵は一度しかお金を落とさない」ならどうでしょう。ワールドマップで前のステージに戻って周回ということができないので、詰み状態が発生する可能性があります。それなら、「一度お金を落としたら次のチェックポイントを通るまでお金を落とさない」……複雑すぎますね。

ということで、「敵を倒す」と「お金を得る」のちょうどいいバランスは本作では難しそうです。本作では敵を倒したときに何らかの報酬が得られるシステムは導入しないことにしました。

では、問題があります。「敵を倒すモチベーション」は?
敵を倒したってなにも得られないのなら、無視して先に進めばよくない?

以下が解決策です。
1.敵をストレスの塊にする
2.敵を倒す瞬間を気持ちよくする
3.「無視して先に進む」こと自体をゲーム性にする
(4.ドアを設置して無視できなくする)

まず一つ目。プレイヤーに「敵を倒したい!」と思わせます。「Near The Sun」では敵の視界に入るとHP(エネルギー残量)が削れていくのですが、このときスローモーションになります。これはプレイヤーに次の動作を考える時間を与えるとともに、爽快なゲームプレイを邪魔するものとなっています。
プレイヤーはこの視界に入るとストレスを感じ、排除したいと考えるようになります。

視界に入るとスローモーションに

そして二つ目。敵を一撃で倒したときの大量のエフェクト、音、ヒットストップ、画面振動での手ごたえです。これについては前回言及しましたね。視界に入ってスローモーションになっているところをダッシュで駆ける、この爽快感は何度でも味わいたくなるものです。2Dアクション自体爽快感を求めてやっているので、楽しさの原点に戻った感じですね。

3つ目。そもそもステルスアクションというジャンル自体が「敵を避けること」をゲーム性にしています。敵に見つかるか見つからないかのギリギリで先に進む達成感を得られるようなレベルデザインにしたいものです。

4つ目。複数の敵を同時にマヒさせないと進めないギミックがあります。このギミックは「敵の撃破」に対して「先に進める」という報酬を提示します。

敵を同時にマヒさせないとドアが開かない

ということで、「敵を倒す意味」について話してきました。
単にお金やショップシステムを作るだけでも大変ですよね……買えるアイテムも作らないといけないですし……。本作ではそれで得られる「楽しさ」は少ないと判断して、ステージをすいすいとクリアする楽しさをメインにしました。さて、この選択が吉と出るか凶と出るか……。ビルドをゲームの楽しさの本質とする人とは相性が悪いかもしれないですね。

次回はゲームダンジョン5・外伝出展について話そうと思います。

2025 年 6 月 22 日 | カテゴリー: Near The Sun, 製作について

15期のドッグウッドと申します。

今回は手応えの出し方について話します。

最初に言ってしまいましょう。
ヒットストップ、エフェクト、音、振動です。この4つが入っていれば確実に手ごたえが出ます。

「Near The Sun」はよく手ごたえが褒められます。

ヒットストップ、エフェクト、音、振動モリモリですね。
これはプレイヤーの攻撃が基本的に一撃必殺だから入れています。弱攻撃でいちいち全ての要素を入れていたら 画面がうるさくなりすぎてしまいますね。

重要度は 音>エフェクト>画面振動>ヒットストップ だと思います。

手応えというのは、つまるところプレイヤーの行動結果のフィードバックです。
音がなければ、自分の攻撃が敵に当たったのか外れたのかがわかりません。基本的に、どんな小さな攻撃にもあったほうがいいでしょう。
エフェクトは画面のにぎやかしです。あくまでも画面をリッチにするためというのが一番なので、小さい攻撃に大きなエフェクトをつけると画面で何が起こっているのかがわからなくなってしまいます。
画面振動は手ごたえを大きく増しますが、同時に画面の視認性を下げます。エフェクトを併用する時は大きくわかりやすい形のエフェクトを使うといいでしょう。
ヒットストップは手ごたえを増す最終奥義であると同時に、戦闘のテンポを遅らせます。ここぞ!というときにだけ使いましょう。また、画面の経過時間を短時間だけいじるので、バグが少し怖いですね……。

最後にヒットストップの活用についてです。
大きな攻撃をするときは「ため」と「解放」が重要です。これがアニメーションなどであれば、単純に「ため」と「解放」を描けばよいです。しかし、ゲームになると「ため」はそのまま攻撃の入力後のラグになってしまいます。
まあ大きな攻撃ほど「ため」を必要とするのはリスクとリターンにあっているのですが、「Near The Sun」では移動で不快感を与えないため、一撃必殺の協力な攻撃手段に「ため」を設けていません。
さて、突進という攻撃手段を考えると、このゲームでは敵と重なったときにダッシュをして攻撃をすることが多いです。
すると上記の動画の最後のように、ヒットストップが「ため」と「解放」になります。

まあヒットストップ本来の用途が活用されている、というだけなのですが……

この点に着目して、「ヒットしたとき」と「ヒットストップ後」のエフェクトの見せ方にとてもこだわっています。

ということで、手応えの出し方について話してきました。このヒットストップの時間、「次の行動への思考時間」に割り当てることができればさらに活用できるのですが……その意味ではSANABIは「敵に攻撃をした後に飛ぶ方向を考える時間」としてうまく使っていますね。学ぶことは多い……。

次は「Near The Sun」における「敵を倒す意味」について話します。