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」における「敵を倒す意味」について話します。

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

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

今回はSNSに出す動画やスクリーンショットの撮り方について話します。

ゲームの宣伝、特に個人ゲーム開発者にとってゲームの宣伝は難しいですよね。
広告を出すのにもお金がかかるし、パブリッシャーなどがついていないと宣伝する場所もありません。ゲーム系の記事サイトにプレスリリースを送るのも節目に限られますし……。
秋葉原でティッシュ配りを行う、などの方法で宣伝している方もいらっしゃるみたいですね。
https://note.com/myu060309/n/n470bd130026f

そんな中、今最も一般的な宣伝方法はSNSでの投稿でしょう。
お金をかけずに、多くの人に見てもらうことができます。

どういう動画やスクリーンショットを撮れば投稿が伸びるのか……というのはまだ僕もわからないですし、世の中に記事があふれていると思うので特に言及はしません。一消費者側の意見として、短い動画が一番見やすいし気になるなとは思います。

今回はスクリーンショットや動画の撮り方についてです。スクリーンショットや動画を撮る方法が面倒だと、撮ってSNSにあげる気がなくなりますよね。Unityに限られてくる方法がメインですがご了承ください。

まず一つ目、単にGameタブを最大化してWindowsの機能でスクリーンショットを撮る方法。Shift + Windows + Sキーで撮ることができます。おそらく一番簡単です。
しかし、この機能は一つ問題があります。それは撮ったスクリーンショットがまとめて一つのフォルダに保存されることです。
わざわざスクリーンショットのフォルダに行って、さっき撮った画像を探して……というのは面倒くさいですよね。クリップボードにも保存されますが、こちらは画像としてエクスプローラーに保存するには外部ソフトに貼り付けて保存しないといけません。僕はDiscordに張り付けてから保存していました。
どうにかできないかな……と思って探したらありました。
https://www.100dof.com/apps/save-clipboard-here
クリップボードの写真を画像として保存できるメニューを表示してくれるソフトです。
Windows10,11は保証されていないので気を付けてください。僕のPC(Windows11)では問題なく動きました。 しかし保存されるパスに日本語が入っているとエラーが出るっぽい?

二つ目はUnity公式パッケージのRecorderウィンドウを用いる方法。
https://docs.unity3d.com/ja/Packages/com.unity.recorder@2.6/manual/index.html
こちらでは動画もスクリーンショットも撮ることができます。フォルダを指定しておけば自動的に保存されるので、スクリーンショット用のフォルダを作成することができます。

スクリーンショットまとめのフォルダ

スクリーンショットはこれで撮れば問題はないですが……Shift+Windows+Sの方が普段使っていて使いやすいのと、各種設定の確認が面倒くさくてあまり使っていません。まとめて何枚も撮らないといけないときに使いますね。

そして動画についてなのですが、スペックが足りないと下の画像のようにガビガビになってしまいます。ある程度スペックのあるPCでないと活用するのは難しそうですね……

ただ、ImageSequenceの設定で撮れば綺麗に撮れるので、PVなどを作成する必要があるときは使っています。普段のSNS投稿には向いてないですね。

三つ目。では動画はどのように撮るか。Windows+GキーでXboxゲームバーを開いて録画ボタンを押して撮ります。

左上のキャプチャにあるボタンから録画開始できる

ただ、画面全体がキャプチャされるので、撮れた動画をGoogleDrive経由で一度スマホに送り、写真アプリで映る範囲と時間をトリミングして、もう一度GoogleDriveで送りなおす……という面倒くさい工程を踏まないといけません。
映る範囲と時間を簡単にトリミングできるPC用のソフトってないんでしょうか……。PVを作るときはaviutlを使っているのですが、こういうちょっとした編集にはあまり向いていない気がします。Windows11ならClipchampを使えばいいのかな……?

ということで、スクリーンショットの撮り方について話してきました。作業履歴を残す意味でも、宣伝用の素材を作る意味でもこまめにスクリーンショットを撮っていきたいですね。

次回は手ごたえを出す方法について話したいと思います。

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

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

今回は「Near The Sun」初のイベント出展をして失敗した話をします。
そうです。失敗しました……。初めからうまくはいかないものですね。

2023年11月5日、電気通信大学のゲーム制作サークル、X680x0さんとゲーム交流会を行いました。

X680x0さんの公式ホームページ : https://www.x68uec.org/

当日の様子

互いのサークルで作成したゲームを遊びあい、フィードバックしあうことでゲームの完成度を高めつつ交流しようという会でした。

この会で「Near The Sun」は外部に初お披露目となりました。

結果から言うと、かなりひどかったです。

大きな反省点は2つ
・チュートリアル不足
開発中……というのもありましたが、チュートリアルが一切ありませんでした。十字キーで移動、スペースキーでジャンプ/ダッシュくらいならわかるだろうし、わからない人には個別で対応すればいいだろう……とタカをくくっていましたが、チュートリアルは大事です。こちらがなるべく丁寧に伝えようとしても、操作方法やゲームのルールを伝えるのは難しいです。舐めてはいけませんでした。ゲームのルールがわからなければ、遊ぶ気もおきませんからね。
・詰み状態の発生
正直、詰み状態が発生してしまうのはどうしようもないです。開発中ですし、そもそもそのようなバグを発見するためにも展示会に出しています。しかし、詰み状態が発生したときにリカバリーを用意していなかったのが大きな反省でした。ゲームを落とすしかない、そしてまた初めからという状況は単純にストレスです。せめてワンボタンでシーンのリロードくらいは作っておくべきでした。

もらったフィードバックは
・手ごたえはいい
・ヒロインの衣装がおかしい
・ダッシュ距離が伸びた時にエフェクトが変わらないのが違和感
などなど……妥当だしフィードバックはありがたいのですが、それでも1年作り続けたものへの評価はやはりきつかったですね。

まあこの痛みはゲームを作れば作るほど増していくのですが……。

まとめとして、
よかったこと
・客観的な意見が知れた
・自分がゲームを作っていることが外部に公表できた
・他人が遊んでいるところを見ることができた
・修正すべきところが見えた
大変だったこと
・自分が作ったものへの評価をもらうこと
やるべきだったこと
・チュートリアルの作成
・詰み状態からの復帰方法の作成

という感じです。
まだ内輪のイベントであったこと、機材トラブルはなかったことが救いでした。

ただ、出展して後悔はしていないです。少し遅すぎたと思ったくらいでした。
他人に自分の作品を見られるという経験はプラスになる、マイナスになる以前にどこかで戦わなければいけない壁です。
出展する時はぜひ覚悟を持って出展してみてください。

次回は「SNSに出す動画やスクリーンショット、どうやって撮る?」について話そうと思います。
ではこの辺で。

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

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

今回はAsepriteについて話す……前に、ついに製作記#10です。めでたい!
実はこの製作記、先に#0~#10まで書いてから世に出しています。
こういう定期的に出すもの、性格的にいくつか貯めておかないと不安になるんですよね……。

さて、Asepriteです。
AsepriteはIgara Studioが販売するドット絵特化型お絵描きツールです。
MacOS版とWindows版があります。
値段は2025/03/28時点のsteamで2050円です。

https://store.steampowered.com/app/431730/Aseprite/?l=japanese

左下の色を選択する領域を広くすると使いやすい

Asepriteは上のような画面をしています。
レイヤー、基本図形の描画、塗りつぶしなど、基本的な機能は全て入っています。また、Indexモードではパレットの色を変更することでキャンバス上の色を一括変更できます。
オニオンスキンやタグ付けなど、アニメーション用の機能も豊富です。
また、ゲーム制作に有用な特徴がいくつかあります。

一つ目はタイル表示です。
タイル表示に設定することで、シームレスな画面要素を簡単に作ることができます。また、アップデートでタイルマップレイヤーが追加されたことで、画面上でのタイル単位での移動や要素の作成がさらに簡単にできるようになりました。

タイル表示
タイルマップモード

2つ目はUnity用の拡張機能の存在です。
https://github.com/talecrafter/AnimationImporter
ここに公開されているパッケージを導入することでUityとの連携をすることができます。
具体的にはファイルを選択することでフレームレートに合わせたAnimatorControllerとAnimationを作成・更新することができます。Image・SpriteRendererのどちらにも対応しているので、UIのアニメーションを作成することもできます。
もう僕はこの機能なしではアニメーションが作れなくなってしまいました……。

ドット絵のゲームを作るなら、Asepriteがあればほとんど他のイラストソフトは使いません。たまに幾何学的な模様を作るときはPixelComposerなどを使うくらいですかね。
https://store.steampowered.com/app/2299510/Pixel_Composer/?l=japanese
ゲーム製作をしている間、というかPCを閉じても起動しているので使用時間がすごいことになります。

たった2000円でもう他のソフトはいりません!僕はマウスでドット絵を描いています!ぜひあなたもAsepriteでドット絵生活を!

次回は初のイベント出展について話そうと思います。
ではこの辺で。

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

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

本日はセーブデータについてです。初心者の時にハマったところシリーズになります。

「Near The Sun」ではセーブデータをjson形式にして保存しています。
セーブ/ロード自体は簡単で、JsonUtility.ToJson()でセーブデータ化、JsonUtility.FromJson()でセーブデータ読み込み、JsonUtility.FromJsonOverwrite()でスクリプタブルオブジェクトへのセーブデータ読み込みをしているだけです。

じょーさんに暗号化のコードを書いてもらったので、セーブデータを見ただけでは改ざんできなくなっています。

暗号化!


さて、セーブデータでセーブしておくべき情報は以下のつです。
・現在攻略し終わったステージ
・現在持っているアイテムの種類と個数

このゲームではステージ内でのセーブができないのと、主人公の基礎能力が毎回リセットされるため、今どのステージにいて何のアイテムを持っているかだけでセーブデータが構成できます。

これ、ステージ内でセーブができるようにしたかったのですが、今の僕の技術だと難しかったです。通常メトロイドヴァニアではセーブはレストポイントでのみ行うことができるものが多いです。この時にセーブすべき要素は全て一緒にセーブしているのだろうなと思います。
このゲームでもチェックポイントに触れたらオートセーブ、のようにしてもよかったのですが、各ステージで保持しておくべき情報が全く異なる、仕様変更が大変になる、という予想がついたため、ステージの終わりでしかセーブができないようにしました。1ステージ30分ほどなので許してください……。

セーブすべき情報はテキストファイル/スクリプタブルオブジェクトなどにまとめて特定のフォルダに入れておいて、セーブ/ロード時はそのフォルダの中身を丸ごとセーブ、などにすればいいのでしょうか。アップデート時に開閉ドアをステージに増やしたり別オブジェクトに変えたりした場合にセーブデータの互換性を保つのが大変そうですね……。

ちなみに、JsonUtilityで「連想配列はjson化できない」という部分にハマって2年目まではきちんとしたセーブデータが作成されていませんでした。
「連想配列をメンバ変数に持つ自作クラス」はjson化できる上、その場でセーブ/ロードが可能なのでセーブできていると勘違いしていました……。作成されたjsonファイルをよく見ると{instanceID:387875}のようにinstanceIDのみが保存されていたんですね。シーンをロードしなおしてからセーブデータをロードするとインスタンスが見つからずエラーになります。

きちんと連想配列はバラしましょう

まあ連想配列をjson化する拡張もあるらしいので、そちらを使う手もあります。

総じて、そもそもセーブすべき内容を減らしたのがよく効いていると思います。
昔の自分、よくやった!

次回は僕がよく使っているドット絵作成ソフト、Asepriteについて話そうと思います。
ではこの辺で。

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

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

今回は「Near The Sun」の開発から一年、遂に新メンバーが参加!どうやって作業を分担すればいいのか、どのようにミーティングや情報共有を行っていけばいいのかについて話そうと思います。

2023年の8月、プログラマーのじょーさんが「Near The Sun」に参加してくれました!めでたい!
当時ノンリニア内の別プロジェクト(「Stealth」)が完成したタイミングで、ちょうど似た2Dプラットフォームがあって人手が足りないから興味ない?と誘ったところ、参加してくれました!
しかし、当時の僕は「いっしょにバリバリ作っていくぞ!」というよりは「緊張する、ヤバい、どうしよう!」と焦っていました。

もともと「Near The Sun」は二人で始めたプロジェクトでした。もう一人は音楽担当の方でしたが、1年間タスクを振らずにいたら音沙汰がなくなってしまいました。ミーティングや情報共有を怠っていたので当然ですね……。

そんなわけで、またいなくなられたらどうしよう、次こそは一緒に作品をつくっていきたい、逃がすものかと強く思っていました。しかし当時のプロジェクトはかなり中途半端、プログラミング初心者の僕が書いた基礎コードがなんとか動いているだけ……しかもどのようにタスクを分割すればいいのかもよくわからない……(じょーさんは僕よりも優秀なプログラマーです)。いっそのこと基礎の部分は一から書きなおしてもらったほうが早いのでは……。

とりあえずタイトル画面の実装からやってもらいました。敵の実装やプレイヤ―関連は既存の読むべきコード量が多く、一番最初には下手なコードをたくさん読んでもらうよりは、形になる部分を担当してもらって、「作品に関わっている感」を感じてもらいたかったからです。
その後、ギミックの作成、ステージのレベルデザイン、特殊な敵の作成……というようにタスクを振っていきました。でも今思うとたくさん既存のコードを読んでくれたんだろうな……と思います。感謝。

ちなみに定期ミーティングは行っていません。毎週話すことが生まれるわけでもなく、定期開催でだんだんとダレていくよりは必要な時に対面で集まったほうがいいですからね。
ただ、対面は2か月に1度くらい会いたいですね……。飯会を立てるか……。

その後もシナリオに関係する演出は僕が担当、アクションに関する部分はじょーさんが担当で2年間回しています。じょーさんがいなければギミックや敵の類は半分以下になり、演出は文字だけのものが増え、開発期間はもう1年延びていたでしょう。一人きちんと作品に取り組んでくれる人がいてくれるのはめちゃくちゃありがたいです……。

あと、プログラミングはできるようになっておいてよかったと思います。「どの情報を伝えれば実装ができるか」の判断がつきます。本当は音楽もできるようになった方がいいんだろうな……。文字数が多くなっても仕様はきちんと伝えることを気を付けています。

下の方に画像がありますが、画像はログに残っていませんでした

そんなわけで、新メンバー登場の話でした。
こんなゲーム制作初心者のプロジェクトに入ろうと思ってくださって、ほんとうにありがたいです。完成したときに「このプロジェクトに入ってよかった」と思ってほしいですね。

次回はセーブデータ周りについて詰まったこと/考えたことを書こうと思います。世の中のメトロイドヴァニアってセーブデータの構造どうなっているんだろう……。
ではこの辺で。