2020年7月5日日曜日

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



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

前に行った企画「一週間でゲームを制作チャレンジ企画第一弾」で制作したゲーム「ギルガメジャンパー」を正式にSteamとモバイルOSアンドロイドに向けて開発進めていくことにきめました!

企画で作ったものはでもプレイとしてこのままにしておきます。正式にリリースするためにはちょっとしたシナリオとステージを追加になります。今回はそんなちょっとしたシナリオの実装になります。

シナリオに関しては頭にあるのですが、シナリオをunity3Dで動かすことは初めてです。動きやセリフを順番に動かしていくという認識のみで試してみます。

ちょっとしたシナリオ
シナリオ1
ある日、ギルガメはいつものように「世界樹イグドラシル」の枝を散歩していました。そこでまがまがしいものを見つけます。確認の為にギルガメは近づいたが、それは時空のようなもので吸い込まれそうになります。離れようとしたが、すでに遅くギルガメは吸い込まれていきます。

シナリオ2
ギルガメは目をさまします。そこは出口のない密室で見たこともない場所でした。何かがギルガメに話しかけます。それは妖精でした。ギルガメは事情を妖精から聞きました。妖精は神殿の奥にある三つの宝石を守っていましたが、ある日突然なにものかに宝石を盗まれそうになります。つかまりそうになった犯人は宝石をランダム時空に放り投げ、そのまま妖精を神殿に閉じ込めて脱走しました。そこで妖精は助けを求め、時空を開きました。その時空がギルガメの世界に開き、吸い込まれた。

3つの宝石を手に入れるステージ
  • 緑の宝石「エメラルド」
  • 赤の宝石「ルビー」
  • 青の宝石「サファイア」
各ステージで宝石を手に入れて、ゲームクリアになります。

すべての宝石を手に入れて、ギルガメは元の世界に戻るという短いシナリオになります。

最後の一つをてにいれて、最後はドット絵のイラストでその後を表現しようと思います。

まず緑の宝石「エメラルド」はすでにあるステージを使います。風のギミックを追加できそうだったら実装します。

次に赤の宝石「ルビー」は、溶岩をイメージしたステージになります。こちらは横スクロールで死んだら、最初からまたは中間地点からになります。

そして青の宝石「サファイア」は海の海底をイメージして、暗くちょっとしたギミックをすでに考えています。お楽しみに!

またステージで集めてるクリスタルも用意して、キャラクターの開放とかも実装してみたいな。

Steamから開発して、順調だったらそのまま携帯でも実装します。これで利益がでたらiOSでもリリースする考えです。できるだけたくさんの人に遊んでもらいたいのでこれに集中します。7月17日にリリースできればと思うので、その日までガンガンプログラミングします。

2020年7月4日土曜日

ローグライクゲーム #4「テレポートトラップの床を実装」



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

今回は床の色んなギミックの一つ、「テレポート床」を実装していきます!

実装に関しては、コライダーにトリガーをつけて、プレイヤーがそのコライダーに接触することで壁以外の障害物のない床にをランダムで取得してプレイヤーの位置をそこに移動します。

今回も無料のエフェクト「JMO Assets」というアセットでテレポートをより派手にしました。こういうエフェクトがついてるとダンジョンゲームって感じがしてきますね!さらに回転もつけてこれから飛びますよって感じにさせてみました。

これが今回実装したものです!

不断はテレポートの床はわからないので、できれば踏みたくない!

床もカモフラージュとして、同じ床にしました。一度発動すると次はふまないように、またわかりやすいように床を変更します。毎回ふんでテレポートさせられたら結構きついとおもったので、一度のみカモフラージュします。

敵のAIやアイテム、UIのデザイン・・次はUIでちょっと雰囲気変えようと思います。

2020年7月3日金曜日

ローグライクゲーム #3「ダンジョンマップのデザイン変更」



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

ギルガメのプレイヤーを追加して、次は敵を追加しようと思っていましたが、AIを考えていると頭から煙がでてしまい、気分転換にマップのデザインを変更しようと思いました。

AIのアイデアはあるのですが、ギルガメ的にちょっとロジックがあまり好きではないので、開発を始めるかちょっと迷っています。迷ってても進まないので今はこのアイデアで進めていくしか方法はないかも・・

これはさておき・・

マップのデザインだ!!

今のデザインのままだとちょっと殺風景なので、やっぱりいろんなデザインがほしいと思い、ギルガメがデザインするとちょっと時間がかかりそうなので、無料アセットでちょっと使えそうなものがないか探していたら・・

なんと!!

ありました・・おお神よ、ありがとう。

見つけたアセットの名前は「3D Cartoon Box Map」です。無料アセットで色んなデザインがあり、とてもデザインが気にっております。これで無料でいいの?というくらいクオリティも高く、さっそく使わせていただきました!

こんなにバリエーションのデザインがあります!

今回はスターツはダンジョンをイメージしているので、ダンジョンらしいデザインを使わせていただきました。次に自然かな・・正直はやく使いたいけど、またゲームとしての要素がゼロなのでまだまだ先かな・・

これが一番ダンジョンらしいデザインなので、君に決めた!

床のデザインが2種類と障害物のデザインが6種類あります。ランダムでマップを生成するので、これはものすごくありがたい。プレイヤーは毎回違うマップを体験できるので、新鮮でいいかもしれない。

さっそく実装してみました!

壁で少し隠れるけど、これもちょっとした要素として使えそう。

雰囲気が一気に変わった気がします。これでモンスターやアイテム、次のステージに進むたびに難易度がかわるシステムができたら完成です。完成までまだまだですが、今月で終わらせないな。色んなジャンルのゲームを作ってみたいので、それも楽しみです!



2020年7月2日木曜日

ローグライクゲーム #2「ランダムダンジョン生成」



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

前回はランダムでマップの生成を実装したので、今回は生成されやマップをプレイヤーを作成して、自由にマップを回れるようにしました。

使ったプレイヤーはギルガメの3Dバージョンです!

Blenderで作りました!3D初心者ですが、これはかなりお気に入りです。

ギルガメのモデリングをBlenderで作成してボーンをいれます。アニメーションは時間がかかるので、FBXのフォーマットでエクスポートしてからMIXAMOにアップロードしてボーンのチェックしてから好きなアニメーションを選択してダウンロードできます!

MIXAMOは無料で使えるし、色んなアニメーションが見れて楽しい。
まさに神・・

Blenderでモデリングしてから、MIXAMOでボーンとアニメーションできるのですが、ボーンのウェイトがあまり精確ではないので動いてほしないとこが動いてしまうので、Blenderでボーンを設定した方がおすすめです。

Unity3Dにエクスポートできます。これもすごく助かる!

ここからダウンロードして、Unity3Dにインポートします。もしテクスチャーが真っ白だった場合はインポートしたオブジェクトからMaterialsからExtract TexturesとExtract Materialsするとテクスチャーとマテリアルが自動で生成されてテクスチャーが付くと思います。

ギルガメをインポート後は、トーンシェーダーを設定しました。こちらはアセットストアから無料でゲットできます。トーンシェーダーは大好き。アニメみたいな感じがすごくいい。

次にギルガメの移動をスクリプトに追加しました。キーボードをジョイスティックに対応しました。最近はPCにコントローラーを設定してからテストはジョイスティックでするようになりました。やっぱりコントローラーが使いやすい。

これでプレイヤーはターンごと用の移動が可能になりました!

次はエネミー(敵)を追加したいのですが、マップの仕組みとAIの実装を合わせるがちょっとまだピンときていないので、かかりそう・・

脳みそをフル回転させて頑張る・・

2020年7月1日水曜日

使えるコード集 #1 「Singleton シングルトン」


おはこんばんにちは!ゲーム開発で気づいたらご飯も食べずに深夜までおきてるギルガメです!

今回は開発中に「これすごい使える!」と思ったことを忘れないようにブログにしていきたいと思います。沢山やくに立つコードがあって、人の頭って永遠に記憶を保存できないので(ギルガメがただすぐわすれてしまうだけ)、こうして残すことであとで「そういえばこういうのあった!使おう!」というパターンがよくあるので、こうしてシンプルに残していきます!

今回はすごく役に立つと思ったのは「シングルトン」です!

簡単に説明すると、シーンが切り替わる場面で残しておきたいゲームオブジェクトがあるときに、例えばゲームの進行やデータをシーン移行時に削除されずに次のシーンに残しておきたい場合は、「DontDestroyOnLoad」を使います。

ですが、これだけだとそのゲームオブジェクトが作成されるシーンに戻るとそのゲームオブジェクトが二つになるので、とてもよくないです。こういうのがあって、めんどくさいコードを増やした時がありました。

それを回避するためにこのシングルトンが役に立ちます!

singleton.cs

シーンで被ってほしくないゲームオブジェクトにこれを追加します。また「isPersistant」にチェックを入れることで、シーンに戻ってきたときにすでに存在しているかを確認して、前にあったものをキープしてくれます。

これ・・すごい役にたった。もっと前に知りたかった・・。でも出会ってくれてありがとう。

これはどのゲームでもとても役に立つと思うので、忘れないようにしよう。うん。

以上、シングルトンでした!