2020年11月11日水曜日

unity3Dでホラーゲームを作ろう!#1

 


おはこんばんにちは!ギルガメです!

ハロウィンに向けて初めてホラーゲームを開発してみました。
色んな機能を追加したくてグダグダになったゲームですが、無事に完成してリリースでできてよかったです。

でもバージョンではありますが、ぜひ遊んでいってください!

今回は初めてホラーゲームの開発をしてみて、ギルガメ的に役にたったものをまとめていきたいと思います。

これさえできたらホラーゲームのベースになるものになるので、スムーズに開発が進みます。まだ時間短縮にもなるので、ぜひ試してみてください!

まずホラーゲームの舞台にステージを作っていきます。こちらはデザインをお持ちの方は別で作成してもいいですが、ギルガメはUnity Packageから無料で使えるProbuilderを使って開発します。

まずはProBuilderをUnity Packageからインポートします。

Window -> Package Managerを選択

ProBuilderを検索してインストールします。

これでマップを作成する下準備ができたました!

このProBuilderはすごく役に立ちます。めちゃくちゃ使いやすい!

ではさっそく建物を作っていきます。
ProBuilderのWindowを開きます。
Tools -> ProBuilder を選択して見やすいとこにwindowを設置してください。

最初は"Use Text Mode"になっていてちょっと個人的に見づらいのでアイコンの表示に変更します。

"Use Text Mode"から"Use Icon Mode"に変更します。

個人的にはこっちの方が好き。

では床のベースになるキューブを作ります。
一番の左の"New Shape Tool"をクリックしてシーンにキューブが生成されます。
次に形を変えていきます。


シーンの真ん中の上にある"Face Selection"を選択してキューブを伸ばしたりして
ベースを作ってい見ます。
階段なども設置でるので、好みのマップを作成します。

簡単な二階建てのフィールドができました。

マテリアルでお好みの色に変更できますが、今回はホラーゲームとして形が完成してから、少しずつホラーっぽくしていきます。

本格的にマップを作りたい方はこちらの動画がおすすめです!



今回はマップが完成したので、次回はプレイヤーとライト追加して先ほど作ったマップを徘徊できるようにしたいと思います。





2020年9月10日木曜日

ユグドラシルプロジェクト日記 #2

 

おはこんばんにちは!ギルガメです!

前回はサーバーサイドについてお話しましたが、今回はギルガメが開発に使った「Colyseus」について詳しく説明したいと思います。Colyseusのオフィシャルサイトは英語なので、わからないとこもあると思いますが、頑張ります。

ギルガメのリアルタイム通信のテストの動画になります。


まず簡単にColyseusとは何なのか

Colyseusは、Node.js用の信頼できるマルチプレイヤーゲームサーバーです。ネットワーキングを気にする代わりに、ゲームプレイに集中することができます。

このフレームワークの使命は、JavaScriptで独自のマルチプレイヤーゲームを作成するための最も簡単なソリューションになることです。


Colyseusが提供するものについてです。

  • WebSocketベースの通信
  • サーバー側とクライアント側のシンプルなAPI。
  • サーバーとクライアント間の自動状態同期。
  • ゲームセッションへのマッチメイキングクライアント
  • 垂直または水平にスケーリング
ギルガメが実装したかったものはWebGLでのリアルタイム通信だったので、WebSocketベースの通信が望ましかったので、こちらにしました。
Colyseusでは簡単にルームの作成ができるので、マッチング機能も実装もすぐにできます。また途中で回線が切れても再開できる機能もそろっているのですごく助かります。
オートスケーリング機能もついているので、ユーザーが増えても大丈夫なところもすごくいい。この機能を使うならAWSに移行した方がいいかな・・

またColyseusは信頼できるゲームサーバーの考え方は非常にシンプルです。

サーバーは、位置、速度、衝突など、ゲームに関連するすべてのデータを処理する必要があります。

マルチプレイヤーゲームの作成は、ゲームプレイが複数の遅延を考慮する必要があるため、通常はトリッキーです。他のクライアントはサーバーにデータを送信し、サーバーはすべてのクライアントにデータを送信します。

Colyseusでの「マルチプレイヤーゲームループ」は次のようになります。
  • クライアントはサーバーにメッセージを送信し、その状態の変更を要求します。
  • 入力は、ルームハンドラーによって検証される必要があります。
  • 部屋の状態が更新されます。
  • すべてのクライアントは最新バージョンのゲーム状態を受け取ります。
  • ゲームの状態の視覚的表現が更新されます


興味のある方はオフィシャルサイトを見てみてください。

https://docs.colyseus.io/

実装にはNodeJSやTypeScriptの知識が必要になりますが、今世界でも人気のある言語なので覚えてみるのもいいかもしれません。ギルガメはものすごく気に入っています。

2020年9月3日木曜日

ユグドラシルプロジェクト日記 #1


おはこんばんにちは!ギルガメです!

ずっと前から実装してみたかったマルチプレイを本気で開発したいと思い、やく1か月間かかりました。やっと形になったよ・・コードもできるだけきれいに丁寧に気を付けて開発できたので、ここまでの進歩を日記にしていこうと思います。

まず前からマルチプレイに対して試してみたものを挙げていこうと思います。

バックエンドの開発を一から作るのにはかなりのリソースと時間がかかるので、もしアセットストアにすでに導入可能なものがあればと思い、個人的にできそうなものから試してみました。

試したものは:
こちらのアセットはかなりの完成度でした。日本語は対応していませんが、Discordで疑問などがあれば気軽に質問できます。こちらのマルチプレイは携帯やデスクトップなどの開発には簡単に導入できます。

問題はWebGLでのマルチプレイの実装になります。こちらの実装に手順は動画でありますが、あまりにも説明が足りなく、Discordでもみんなが聞いていますが、まだ未完成でWebGLの評判があまりよくありませんでした。

こちらのアセットでかなり進めていましたが、ギルガメは最終的にWebGLで実装したかったので、とても残念でした。システム自体はとても簡単なので、WebGL以外ではおすすめのアセットです。

MMORPGとしてはほぼすべての機能が備わっています。クエストも簡単に追加できます。また装備やマウント機能、モンスターのリスポーンやレベルアップとパラメータの振り分け。ここまで出来たらWebGLでもリリースできるようにしてほしかった・・泣。

ダメだと思い、次のアセットを探してみたました。
このアセットは無料のアセットで、ほぼすべてのアセットに対応しています。無料なのでサンプルなのは簡単なものしかありません。ギルガメの実装したいものには一から開発しないとなので悩みました。またこちらのアセットは無料ですが、ちょっと気になった部分がありました。資格コードみたいなのがあったので、個人てきにそこが気になって使うのを諦めました。

最後に色々悩んだ結果・・バックエンドも完全に理解していないと開発に問題が出ると思い、できるだけ最初から開発することに決めした。すでに完成しているものは制限、または理解に時間がかかるので、やっぱり時間かけてでも最初から開発することにしました。

そこで使う言語は今人気のNodeJSにきました。こちらに関してはギルガメも経験があります。またリアルタイム通信でかなりの人気があるので、こちらで開発しました。

データベースはMongoDB、リアルタイム通信はWebsocketです。

結局バックエンドの開発だけで2週間ほどかかりました。マップごとのリアルタイム送信をチャットを実装しました。

NodeJSに興味ある方は「Colyseus」というNodeJSベースのリアルタイム通信をおすすめします。

今回のBeta版で実装した機能を紹介したいと思います。

まず最初に接続するサーバーのセレクトメニューになります。
まだサーバーは一台しかないのでYGGDRASIL SERVERのみです。

サーバーはテストで自宅サーバーを使っています。AWSに移行を考えていますが、サーバーが増えるとここに追加する設定を実装しています。自宅サーバーでは同時接続の制限がないとこも魅力ですね。Photonなどは実装は簡単ですが、無料での同時接続の制限が少ないので、こうして独自のサーバーがすごく気に入っています。

ちょっと長くなったので、この続きは次回にします!
次は動画も追加します!

2020年8月5日水曜日

ローグライクゲーム #5「敵AIの配置と移動 Astarロジック実装」



おはこんばんにちは!ギルガメです!

2Dゲームも進めながらこちらの3Dローグライフゲームも進めていきます。ずっとほかの開発しながらローグライフの敵のAIはどのようにしようか考えていました。エリアフィールドとアリアをつなぐものを確認しながらロジックを進めていたのですが、あまりのロジックがよくない、絶対に移動する先を最短の道を確認するロジックが必要だということでAstarのロジックを追加することにしました。

Astarとは何?と思う人にはこちらの記事がおすすめです!ものすごくわらりやすいです。

まずは敵を作成します。今回は無料でダンジョンにいても違和感のないモンスターをアセットで探してみました。なんと・・めっちゃくちゃかわいいボムちゃんを発見!すごいクオリティでアニメーション付き・・最高です。

かわいいボムちゃん(ギルガメが勝手に名前を付けています)
   トーンシェーダーを付けてアニメっぽくしたかったのですが、こちらは
ちょっと複雑でそのまま使うことにしました。


興味のある方はこちらからインポートできます。

ランダム配置で設定してみました。
これだけだとまだうごきません。Astarロジックをここから
追加してみました。

Astarのコードはこちらを参考にさせていただきました。

こちらからギルガメのゲームの仕様に変えながら実装しました。プレイヤーが敵のいるエリアに入ったときに敵はプレイヤーをロックオンします。ロックオンしたときにAstarロジックに切り替えるようにしました。それまではAstarを使わずにランダムの行動をするようにしています。Astarはかなりメモリを使うので、ロックオンのみにしています。

ギルガメの前回のロジックよりはクオリティがよくなりました。

まだまだ攻撃の判定などの実装がたりないので攻撃モーションのみですが、移動はかなりよくなりました。まだ道の移動には怪しい動くをします。改善は必要ですが、かなりダンジョンの雰囲気がでてきました。

少しずつこちらも進めていきます!

2020年8月1日土曜日

Steamに向けて「ギルガメジャンパー」リリースまでの開発 #10



おはこんばんにちは!ギルガメです!

今回は宝石「サファイア」のかけらを集める新しいステージの開発の進歩になります。また新しいアイデアが浮かんだので、ずっとバウンドしながら進んでいくステージからフィールドを回転させながらステージを進めていくギミックを思い出したので実装してみました。

スクリプトはこちらになります。


こちらを回転用のオブジェクトに追加します。このスクリプトはプレイヤーが触れたときにトリガーが発動するようにしています。スクリプトにはあらかじめ回転してほしいフィールドと角度を設定します。トリガーが発動したときにフィールドのTransition.rotationを回転してほしい角度をアニメーションでなめらかに動くようにしました。RotationのアニメーションにはQuaternion.Slerpを使います。これを覚えておくといろんなところで活用できるので役にたちます。

テスト!

こんな感じでフィールドの回転をいかしてかけらを
集めるステージになります。

修正は回転させるオブジェクトは一度きりで、触れると消えるようにします。
またフィールドの回転が終わるまではプレイヤーは動けないようにしました。またあたり判定も一時的にけします。フィールドのあたり判定を避けるためです。

このステージは回転と時空でステージを転々と移動しながら進んでいく仕様にしようと思います。またおまけステージで暗闇ステージも作ろうと思います。

これで第三ステージもこれで形になったので、進めていきます!

2020年7月31日金曜日

Steamに向けて「ギルガメジャンパー」リリースまでの開発 #9



おはこんばんにちは!ギルガメです!

リリースに向けて進めているうちにアイデアが色々変わったりして、改修をしているうちにかなり時間を使ってしまいました。まず変わった部分ですが、ステージの少なさに疑問があったので、宝石をかけらに分けて、宝石のステージ事に3つのステージを作成することにしました。この変更により各ステージのセーブデータの保存の改修、UIの改修を行いました。

UIに関してはギルガメがデザインした枠を使って作成して、実際に使ってみたところ・・しょぼかったです・・なので、アセットでフリーですごくお気に入りのUIがあったので、そちらを使わせていただきました。

ちなみにこれがギルガメがデザインした枠を使って作成したものです。
クリアしたステージは星がつくのですが・・何か使ってみて気に入らなかったです。

これでは納得しなかったため、アセットを探してみたところ、無料で前に使っていたUIがあったので、ちょっとこれを使ってみたところ、かなり満足な出来になったので、これでいこうと決めました。

ちなみに使ったアセットはこちらです!

「Simple UI & icons」

-シンプルな2D UIとアイコン。
-キュートでラウンド感のあるUI
-10個のボックス、11個のボタン、10個のアイコン、その他のpngファイルに分類されています

リソースの活用方法のスクリーンショットをご覧ください。
ゲーム、アプリ、好きなものを使用してください。
-1920 * 1080に最適化されています
-背景画像は含まれていません。

こちらから詳細が確認できます。

無料ではありますが、かなりの種類があるのでこれ一つでまとまったUIを作成可能です。
本当に助かりました。時間の短縮にもなりました。ゲームがドット絵なので、ドット絵のUIで統一しようかと思いましたが、これはこれでいいと思いました。

かなりリリースまで近づいてはきましたが、最終ステージを作成していきます!

2020年7月22日水曜日

Steamに向けて「ギルガメジャンパー」リリースまでの開発 #8



おはこんばんにちは!ギルガメです!

Steamのためにリリースするゲームの開発進歩!今回はストーリーっぽくするために会話シーンのUI を改修しました!これでちょっとはリリースしても恥ずかしくないかも(笑)

最近ドット絵はウェブアプリ「Pixelart」でドット絵を打っていましたが、やはり使いにくい部分がありました。こんな機能があったらいいのになと思っていたら、SteamでASEPRITEというソフトがあったので、さっそく購入して試してみたところ・・神ソフトでした。ピクセルパーフェクトという機能があり、スムーズにピクセルを打っていけるのでものすごく使いやすかったです。

ASEPRITEという神ソフトはドット絵を打ちました。
ものすごく役にたつツールが沢山あります。
何よりとても使いやすいです!


今回はUIの改修のため、このゲームのストーリーの登場人物が二人だけなので、その二人をさっそくASEPRITEを使ってデザインしました。

主人公「ギルガメ」

神殿を守る妖精「シルフ」

こちらのふたつを会話シーンのために作成しました。また会話シーンのためのスクリプトも画像いれて、見せたりするオプション、右か左に表示するためのオプションなどをついかしました。

シルフとの会話シーンもこのようになりました。
また少し調整が必要かも。

会話シーンの改修も思ったようにできたので少し満足です。新しいステージの開発のほうもちゃくちゃくと進んではいますが、また違うアイデアが浮かんだので、ステージの方も増やす方向で進めていくことにしました。難易度が追加する予定なので、宝石の各ステージは3つずつ追加します。ちょっとリリースまでは時間がかかりそうではありますが、ビジョンが前より良くなったので、頑張ります。



2020年7月21日火曜日

おすすめアセット #4「PlayersPrefs Editor and Utilities」



おはこんばんにちは!ギルガメです!

今回もものすごく役に立ったアセットを紹介したいと思います!その名も「PlayersPrefs Editor and Utilities」!

どのゲームもデータの保存、セーブやロードなど必要不可欠だと思います。Unity3Dではよく「PlayerPrefs」が使われています。実際にギルガメもこちらをよく使います。ものすごく簡単にデータを保存できて、保存したデータを取り出したりするのも簡単です。

ですが使っていて問題がありました。その保存したデータをUIから見たり変更したりできませんでした。実際にデータがちゃんと保存されているのかチェックするにはデバッグを設置してから確認していました。いちいちデバッグを見るためにゲームを起動して確認するので、ちょっとした作業が増えます。もしかしたらUnity3Dではデフォルトでみれたりできるのかもしれませんが、こちらのアセットでこの問題を解消できました!

こちらは無料でアセットです。


このアセットについての説明です。
PlayerPrefs Editor&Utilitiesは、ゲームが使用しているPlayerPrefsを簡単に確認し、実行時にそれらを変更する方法を提供します。また、プレーヤーの設定を偶然のハッキングから保護するための暗号化サポートが含まれており、より多くのデータタイプをサポートしています。

エディターの機能は次のとおりです。
-すべてのアクティブなPlayerPrefsをリストする
-結果を絞り込むためにPlayerPrefsを検索します
-実行時にPlayerPref値を変更する
-新しいPlayerPrefsを追加
-PlayerPrefsを削除する
-すべてのボタンをすばやく削除
-ユーティリティに追加された暗号化機能の使用をサポート

ユーティリティ機能は次のとおりです。
-暗号化レイヤーを使用して組み込みのPlayerPrefタイプを設定および取得します-プレーンテキスト値は透過的に暗号化に変換されるため、デバイスデータストアでPlayerPrefsが保護されます
-Enum値の設定と取得
-DateTime値の設定と取得
-TimeSpan値の設定と取得
-Bool値の設定と取得

こちらからアセットをインポートします。インポート後はUnity3DのメニューバーにあるWindowから「PlayerPrefs Editor」を選択できるようになります。

こちらを選択するとPlayerPrefs Editorの画面UIがでてきます。
そちらを見ていただくだけでわかると思いますが、そちらに保存したデータが見れます。
また変更も可能なので、テストするときにものすごく役に立ちます。

え?なにこれ・・ものすごく簡単・・もっと前に出会いたかった。いや、こうして使える日がきたことに感謝です。

このようにギルガメの開発中のデータの保存が可視化できるようになりました。
ステージの管理、クリア時間の保存など簡単に見れるようになりました。

これはギルガメの欠かせないアセットの一つになりました。

また何か使えそうなアセットがありましたら紹介していきます!

2020年7月20日月曜日

2Dスクロールゲーム開発日記 #18



おはこんばんにちは!ギルガメです!

一週間チャレンジやSteamのリリースにリソースを使って、なかなかこちらの2D開発日記がすすんでないので、ちょっと面白そうなので試してみたかったことを実装しました。

ギルガメは英雄ギルガメッシュに憧れています。なのでちょっとかっこいいものを実装したいと思い、「必殺奥義」的なものを考えました。FGOの英雄ギルガメッシュが使う技がものすごくかっこいいので、そちらを参考に奥儀を実装しました。

まずはどんな奥儀なのか・・ざっくり説明すると無数の時空から沢山の武器がでてきてターゲットにホーミングするという奥儀です。ものすごくざっくりです。

まずはスクリプトを作ります。

奥儀のスクリプトです。
ougi.cs

これをホーミングしたいオブジェクトに追加します。ギルガメの場合は時空からでてくる剣に追加しました。こちらはそのオブジェクトが作成されたときに時空からでてくるモーションから入ります。その後に敵の場所を取得します。この場合はギルガメの範囲内にいる敵をロックオンします。もしロックオンの場所にいない場合はそのオブジェクトはここでそのまま消滅します。次に敵をロックオンできた場合は敵の場所にアングル(照明)を合わせます。これがまたかっこいい・・ここは「Quaternion.Slerp」を使い、アングルを合わせる時のなめらかなモーションを作ります。ここは少し難しかったです。そのまま発射してもいいかなと思ったのですが、このアングルを合わせるだけで印象が変わるので、これは必須でした。最後に発射です!

まずアングルを合わせないでそのまま発射の場合です。
これだと物足りない・・地味に感じる・・

次にアングルをあわせるバージョン!
アングルを合わせるのでカッコよさが追加!
こっちは断然いい!敵が動いていてもアングルを合わせるようになっているので、そちらも見どころです!

最近はリリースのことばかり考えていて、ちょっとモチベーションが下がり気味だけど、限られた時間の中でどれだけできるのか、もうちょっと考えないといけないです。気持ちの切り替えがうまくできない・・旅行したいけど、はやく普通に外に出かけれるようになってほしいです。

新しいステージの方がんばろう!


2020年7月15日水曜日

Steamに向けて「ギルガメジャンパー」リリースまでの開発 #7



おはこんばんにちは!ちょっとギルガメのデザイン能力に自信がなくなってドット絵を打ちながら上達に時間を使っているギルガメです。

デザインに自信がつく方法をググっていたら、ドット絵の場合はドット絵を考えながら打つほど上達するとのことで、足りないのはたくさん打つことなのかなと思います。これはドット絵に限らず、全部の分野にいえることだけど、これを実行することが難しいよね・・

さておき・・ドット絵をばかり打ってるとゲーム開発の方が進まないので、ドット絵を打ちながら「宝石エメラルド」のステージにギミックがないことをずっと気になっていたので、新しいギミックを考えていました。

アッ!「宝石エメラルド」のステージは自然がモデルなので、「風」が浮かびました。風でできることはその風のゾーンに入ると風の力で動きが制限されるというギミックです。これは面白そう!問題はそれを実装できるかどうか・・

なのでアイデアを頑張って実装してみようと思います。2Dには「Area Effector2D」というものがあります。これが使えそう!こちらの設定をしていきます。

チェックを忘れると発動しないので忘れずに!
Force Magnitudeで風の力を調整できます。

スクリプトは必要ないところがすごく楽です。これでテストしてみたところ、うまくいきました!でもこれだけだとプレイヤーはどこに風があるかわかりません、いきなりジャンプしたのに押し戻されるとバグとしか思えない・・これを解消するには風があるように「見せる」必要があります。思いついたアイデアはパーティクルで葉っぱを風の方向に揺らすことです。さっそく実装してみよう!

葉っぱのデザインを用意してマテリアルを作成します。
シェーダーはMobile/Particle/Alpha Blendedを使います。

これをパーティクルのRenderのところにマテリアルを追加します。

できた!

かなり思っていたようにできたので満足!
これはテストで風が強すぎるけど、面白そうなところに設置していこうと思います。

これでギミックのなかった「宝石エメラルド」のステージは面白くなるはずです。今作成中のステージに力はいりすぎた気もするけど、こうなると最後のステージもちょっと何かしらギミック考えないと・・開発とデザインの強化を頑張ります!

結構いろんなドット絵を打ったから、そちらも見てもらえるようなページも作成しようかな。



2020年7月11日土曜日

Steamに向けて「ギルガメジャンパー」リリースまでの開発 #6



おはこんばんにちは!DBDで生存者ランク7から中々上がらないギルガメです!

新ステージを開発中に色んな新しいものを追加したいということで、横スクロールの即死&やり直しのためのギミックを実装しました。

まずは落ちたらそくチェックポイントからの「溶岩の沼」になります。こちらは簡単にピクセルアートで溶岩のような波をつくりました。

こちらの波をアニメーションで左右に動かすことで
溶岩に沼っぽく表現しました。
アニメーションはスクリプトではなくAnimatorで追加しました。
便利・・

さっそくアニメーションを付けた溶岩の沼をテスト!

動きはシンプルでちょっとランダムの速さにしました。

せっかく溶岩の沼をつくったので、この溶岩の沼からなにか出てきてほしいと思い、溶岩といえばファイアボール!溶岩の沼からいきなファイアボールが出てくるギミックを追加します。まず最初にファイアボールのデザインとスクリプトを作ります。

FireBall.cs


SpriteRendererにデザインをセットして上記のスクリプトを追加します。スクリプトは簡単にY軸に力を加えてオブジェクトを上にはねさせてる感じです。そこから重力で自動的に落ちてきます。その動きでY軸が落ちてくるときに画像をFlipして落ちてきているように見せます。このままでもいいのですが、すこしでも派手さが欲しい場合はパーティクルを追加してみるといいです。ギルガメはすごくシンプルなパーティクルを追加しました。

さっそくテスト!

先ほど作ったファイアボールを5秒ごとに再生しています。
これでプレイヤーはタイミングをみて進めないとなので、慎重になるかと。
あたれば即死・・怖い!

「宝石ルビー」のステージも少し進歩しました。まだ「宝石サファイア」のステージも作らないとだから、リリースまでかかりそう・・

なにもしなかったら進まないし、とにかくできることをコツコツ進めていきます!


2020年7月10日金曜日

おすすめアセット #3「3D Cartoon Box Map」



おはこんばんにちは!ギルガメです!

最近は「ギルガメの不思議なダンジョン」というゲームを開発しています。その時にものすごく役に立ったアセットを紹介します!

開発中のゲームはローグライフですが、このアセットはいろんなところで活躍しそうです。バリエーションが沢山あるのでたくさんのフィールドがこのアセットだけで作成できるのでともて嬉しいです!

しかもこのアセットは無料です。
ぜひ試してみてください!

こちらからダウンロードや詳細が見れます

実際に使ってみました。ダンジョンがランダムで生成されるので、その生成されたマップに合わせて、地面や壁をつくります。

マップはダンジョンをイメージしているのでダンジョンっぽいものをチョイスしました。
床もバリエーションがあったので、ランダムで二つの種類の床を使用しました。
また壁も4種類から使っているので、毎回変わった風景がみれるのがいいところだと思います。

ダンジョンをイメージして開発中ですが、今回のアセットの1種類しかつかっていません。まだまだ草原や海、溶岩や砂漠などの種類があるので、まだまだこのアセットだけで十分なフィールドができます。

ローグライフなのでどんどんダンジョンを進むごとにフィールドを変えていく仕様にしようかなと思っています。

このアセットでまだいろんなゲーム制作できそう。ターン制シミュレーションゲーム(ファイナルファンタジー)っぽいのも開発してみたい・・その時はこのアセット絶対使う!

ぜひ活用してみてください!

2020年7月9日木曜日

Steamに向けて「ギルガメジャンパー」リリースまでの開発 #5



おはこんばんにちは!ギルガメです!

最近ちょっと中々プログラミングに集中できない・・コロナの感染者数がなかなか減らない、減らないどころがどんどん増えてるので不安ばかりです。正直ちょっと旅行して頭をリラックスしたいけど、収まるまで待った方がいいよね。ギルガメは気分の切り替えはすごく大事にする方なので、ちょっとなにかできないか考え中です。

とはいえ、開発を怠けるわけにもいかないので、プログラミング開始!

今回は新しいステージ、宝石「ルビー」のかけらを集めるステージを作っていきます。まだまだたくさんあるアイデアから時間がかからないものから実装していきます。まずこのステージは宝石「エメラルド」は縦スクロールですが、これは横スクロールにします。縦スクロースは落ちていくたびにやり直しではありますが、この溶岩ステージはチェックポイント付きの落ちればチェックポイントからやり直しの鬼級に難しいステージにします。難しいステージといってもちょっと簡単に作ります。さすがに難しいとプレイヤーが離れていくかも。

まずは・・デザインを作っていきます。前回はパーツごとに作りましたが、今回はマップごとに作りました。こっちの方がものすごく効率がいいことが分かった・・。まずはバックグラウンド用のデザインを簡単ではありますが、ちゃちゃっと作りました。

ここで前から実装したかったアイデアの一つを試してみました。

暗闇モード!

ステージは突然暗闇になります。ここで新しいモードが、プレイヤーの周りだけ見えるようになります。これにより遊んでいるプレイヤーは慎重に動かなければなりません。また記憶能力も試されるステージになります。プレイヤーの周りを確認して記憶して、どう進めるか考えて、かけらを集めてクリア!

こんな感じになりました!
周りのみ見ることができるので難易度やばいかも・・

こういう要素とかゲームの幅をさらに広がるので、どんどん実装していきたいと思います。あとは頑張ってデザインをもっとよくしないと・・なかなかやる気が・・デザインやってくれる人いないかな。

このステージのBGMやSE、また違うギミックも考えているので、頑張ります!

2020年7月8日水曜日

Steamに向けて「ギルガメジャンパー」リリースまでの開発 #4



おっはーこんばんにちーわ!DBDにはまって、サバイバーランク8までいきましたギルガメです!

新しいステージを作成しようと思っていたのですが、ゲームとしてクリアしたときの画面やタイムのセーブができていなかったので、そちらに集中して実装しました。

ステージのクリア条件は宝石のかけらをすべて手に入れることなので、すべて手に入れた瞬間にクリア画面を表示します。クリア画面には宝石の画面と名前とクリアのテキストを表示して、前回のタイムがある場合はクリア時のタイムを比較して前よりクリア時間が短い場合はクリアタイムを更新します。

そのクリアタイムをプレイヤーはどこで確認できるか迷っていたのです、結局ステージのセレクト画面にしました。ステージをクリアしたところは宝石に色が付きます。またその宝石にマウスを近づけることでクリアタイムを表示できるようにしました。

マウスを宝石に近づけています。これでタイムの確認ができます。
全体のUIも考えていたのですが、こっちがいいかな・・

また世界中の人に遊んでもらえるように言語も切り替えもできるようにスクリプトを変えています。これがすこし厄介でした。初めてではあるのですが、今回は日本語、英語、スペイン語と中国語でリリースできればと思います。Google Translatorがちゃんと略してくれることを願います・・!

着々を進めてはいますが、気になるのはこちらのバージョンを更新したときにセーブがそのままかどうかが気になる。

がんばろう・・リリースしたい。

2020年7月7日火曜日

Steamに向けて「ギルガメジャンパー」リリースまでの開発 #3



おはこんばんにちは!ギルガメです!

前回のアイデアがやっぱり面白そうだったので、今回はそのアイデアを実装しました。前までのステージのクリア条件はステージの最上階までいって、宝石をゲットして終わりでしたが、新しいシナリオを追加しました。シナリオはソンブラ(影)という組織に宝石を砕かれ、それぞれの砕かれた宝石を集めるためにギルガメは妖精を手伝うことにしました。

このシナリオのように、ステージに砕けた宝石のパーツを設置して、プレイヤーはその宝石を集めることでステージをクリアできます。

ゲーム画面の左上にステージ事に集める宝石が確認できます。
また宝石のかけらを手に入れるたびに手に入れたかけらに色がつくので
足りないかけらを確認できます。

またゲームとして考えないといけないのは、セーブになります。今回のプレイヤーのセーブはPlayerPrefsを使ってセーブすることにしました。これは使いやすくて、最高・・簡単にセーブ機能を実装できます。またシナリオのシーンも最初だけ見れるようにPlayerPrefsに登録するようにしました。

宝石のかけらもそのまま設置しただけじゃちょっと物足りなかったのでアニメーションをつけました。(多きなったり小さくなったりするアニメーション、簡単だからこれでパパっと実装しました)。

アニメーション、また宝石をゲットしときのサウンドエフェクトも追加しました。

エメラルドのステージはこれで完成しました!次はルビーのステージを開発していきます。マップのドット絵から始めるので時間は少しかかりそう。ルビーのステージは最初のステージと違って、違う仕様にしようと思います。

ギルガメ的にはナイスアイデアだと思っているので、お楽しみに!!