2020年5月31日日曜日

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


2Dスクロールゲーム開発

ゲームマスターのギルガメです!

だいぶゲームらしさが出てきたところで、一番楽しみのアニメーション追加だ!
これがあるだけで雰囲気がすごくかわるから、この追加はいつもワクワクするギルガメです。

それではアニメーションに必要な画像を用意します。
ギルガメは行動していないときのアニメーション、走っているときのアニメーション、そしてジャンプのアニメーションを追加したいのでそちらの画像を用意します。

オフィシャルサイトから自由につかってください!

アニメーションリスト
  • ldle
  • run
  • jump(upとdown)
プレイヤーが簡単にアニメーションをスイッチできるようにアニメーションのコントロールするAnimatorを作成します。

2Dスクロールゲーム開発日記
用意した画像をシーンにドラッグすると簡単にAnimatorとAnimationを作成できます。

Animatorができたとことで、Animationの調整をします。

2Dスクロールゲーム開発日記
囲っているとこを動かしながら調整できます。

ここまで出来たらさっそくテストだ!
作ったAnimatorをプレイヤーに追加して動かします。最初に作ったアニメーションはAnimatorにデフォルト設定されているので、Animatorを追加するだけで動いてくれます。


プレイヤーにコンポーネントでAnimatorを追加して、先ほど作ったものをドラッグして設定は完成です!ldleのアニメーションを作ったのでテストしてみます。

2Dスクロールゲーム開発日記
おお!ldleアニメーションしてる!感動!

このように他のアニメーションをAnimator追加していきます。
今度はAnimatorでコントロールするためにパラメータを設定します。
走るアニメーションにはrunというパラメータ、ジャンプ用にjumpというパラメータを追加しました。

今回はfloatでパラメータを作成しました。

今度はldleからrunアニメーションに切り替えるための条件を設定します。ldleのオプションからrunのアニメーションにつなげてください。その後は矢印の設定からHas exit timeのチェックを外して、Settingsのグラフで切り替えのタイミングを短くしてください。この設定することで、パラメータが変更したときに、すぐにアニメーションが変更されます。

上記にように設定するをすぐにアニメーションの切り替えが可能になります。

このようにrunやjumpアニメーションを設定してください。
Animatorが終わりましたら、今度は作成したパラメータをスクリプトで変更しながらアニメーションを調整します。

playerAnimator.SetFloat("run"Mathf.Abs(move));

Animatorのコンポーネントを読み込み、作成したパラメータの値を変更するコードを追加します。値が変更することでAnimatorが切り替えてくれます。

Animatorを追加したスクリプトはこちらになります。


よし!runとjumpを追加したので動かしてみよう!


走ってる!ジャンプしてる!アニメーションを追加して雰囲気がかわった!
アニメーションってすごい・・。もっといろんなアニメーションを追加していきたいです。

アニメーションの追加でした!今度はステージっぽいものを作っていこうかな。

2020年5月29日金曜日

おすすめアセット #1 「Ferr2D Terrain Tool」


おすすめアセット

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


2D開発に役に立つおすすめのアセットを紹介したいと思います。


アセットの名前は「Ferr2D Terrain Tool」です。

有料アセットですが、ものすごく役に立ちます!


どのゲームもマップやフィールドを一から作成するとかなりの時間が必要になります。その時間を短縮してくれます。


自由に簡単に変更できるとこが楽しい!

白い丸い部分を動かしながら地形を自由に変更できます。


インポート後はデフォルトで草原やダンジョンなどがあるのですぐに使えます。また個人で作って追加することも可能なのですごくありがたい。

また草原のフィールドは草がなめらかに動くのでものすごくエレガントに見えます。

こちらのアセット使ってゲームを実際に作ってみました。


https://yosapps.com/game/play/game1/

シンプルではありますが、ぜひ遊んでみてください!


こちらのアセットはこちらから購入できます。


https://assetstore.unity.com/packages/tools/level-design/ferr2d-terrain-tool-11653


もし2Dフィールドで困っているときはぜひ使ってみてください!


まだまだおすすめのアセットがあるので、どんどん紹介していきたいと思います。


よろしくね!

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


2Dスクロールゲーム開発

ゲームマスターのギルガメです!

キャラクターもルームも出来たので、カメラを設定しよう!

このままじゃプレイヤーが移動してもカメラがプレイヤーを追跡しないので、プレイヤーが枠からはみ出てしまいます。


このような状態になってしまいます。

カメラがプレイヤーを追跡するようにスクリプトをつくります。
カメラのスクリプトはこちらになります。


こちらのカメラのスクリプトをカメラに追加します。


カメラに追跡する対象を指定が必要なのでfollowTransformにプレイヤーを選びます。またはプレイヤーのオブジェクトをfollowTransformまでDragアンドDropしてください。

これでカメラは完了です!
動かしみると・・


左右に移動してもカメラが追ってきてくれるので、枠からはみでなくなりました!

移動してもプレイヤーのアニメーションが変わらないので、次回はアニメーションを追加します!


2020年5月28日木曜日

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


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

ゲームマスターのギルガメです!

キャラクターを動かしてみよう!そのためにはコーディングが必要になります。
ギルはC#が好きなのでC#で進めていきます。またJavascriptや別の言語でも可能なのであなたの得意な言語で進めてください!

キャラクターを動かすために二つのスクリプトを用意します。
  • CharacterController2D (あたり判定や向きのコントロール)
  • PlayerMovement (ボタンなどのイベントのコントロール)
コードはこちらになります。

CharacterController2Dのコード

PlayerMovementのコード


こちらのスクリプトを用意してください。

スクリプトの用意が終わったらさっそくプレイヤーを追加していこう!
まずプレイヤー用のオブジェクトを作成します。プレイヤーのための画像を用意してください。ギルはピクセルアートで作成したものを使います。

用意した画像を先ほど作ったプレイヤーオブジェクトに設定します。Sprite Rendererとコンポネントを追加後、画像をSpriteにドラッグしてください。サイズを調整して、これで見た目は完成です。

プレイヤーのオブジェクトに地面の接しているかの判定用のオブジェクトを追加します。

GroundCheckerという地面の判定用のオブジェクト
を追加

GroundCheckerの地面の判定の調整をします。プレイヤーの足元あたりがいいです。

またcircleCollider2Dも追加します。

先ほど用意したスクリプトをプレイヤーオブジェクトに追加します。
スクリプトを追加した後に、GroundCheckerをスクリプトのGround Checkにドラック&ドロップしてください。またWhat Is GroundのLayerをTerrainにすることで、地面の判定が可能になり、ジャンプができるようになります。LayerにTerrainがない場合は追加してください。

プレイヤーのInspectorはこのようになっていればOKです!



これで動作確認をしてみてくさい!
動いた!でもまだカメラがプレイヤーを追ってくれないので、次回はカメラのスクリプトを追加します。

こちらを動画にしてみました。もしわからないことがあったら動画から確認してもらえると嬉しいです。



次回のカメラやアニメーションの追加も動画にしていきたいと思います。
よろしくね!

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


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

ゲームマスターのギルガメです!


前回はマルチプレイの設定の説明をしました。

今回はフィールドを設定の説明をしていきたいと思います!


まずプロジェクトを作ってください。


テンプレを2Dを選択してプロジェクトを作ってください。


プロジェクトを作成後はフォルダーを整理していくと楽になります。

デフォルトでScenesのフォルダがあるので、必要なフォルダーを追加していきましょう!

  • Animations
  • Materilas
  • Prefabs
  • Scripts
  • Sprites


上記のフォルダーを追加しておくととても分かりやすく制作を進めていけるのでぜひ追加してください。

この画像のようになっていればOKです!


ではさっそくフィールドの素材を用意していきます。

今回はルームのフィールドを作成していきます。素材はギルのオリジナルの画像を使います。使う素材はなんでもいいので用意してください。ギルのオリジナルをつかう場合はアセットからぜひダウンロードしてください!


素材がきまったらドラッグアンドドロップでSpritesの中に画像を追加します。


次にSceneのSpriteつきのObjectをつくります。


さきほどのSpritesのフォルダーにいれた画像を作ったObjectに設定します。


これで見た目のフィールドが完成です!ですがこれだけだとプレイヤーを追加したときに地面をすり抜けておちていきます。

これから地面や壁をすり抜けないようにBox Colliderを追加します。

先ほどのObjectを選択して、右の詳細のAdd ComponentからBox Collider 2Dを3つ追加します。左右に壁に2つ、地面の一つになります。

Edit Colliderを選択して地面や壁などを調整します。

こんな感じになっていればOKです!


これで簡単なルームフィールドの完成です!

次はプレイヤーを追加していこう!


2020年5月27日水曜日

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

2Dスクロールゲーム開発



ゲームマスターのギルガメです!


前回はゲーム開発に必要なものをまとめました。

今回はチャンレジとしてマルチプレイを実装したいので、必要なものをまとめました!


  • サーバー Centos7(自宅サーバーでチャレンジ)
  • NodeJS
  • MongoDB
  • Nginx
  • Colyseus


ざっくりではありますが、一つずつ説明していきます。


サーバー Centos7:単純にギルがCentos7が大好きだからです。AWS(アマゾンウェブサービス)でもCentos系のサーバーを使った経験があるのでその経験を生かしていこうと思います。こちらを自宅サーバーにセットします。


NodeJS:スケーラブルなネットワークアプリケーションを構築するために設計された非同期型のイベント駆動の JavaScript 環境です。これはもう最高!サーバサイドで動くJavaScriptなので、JavaScriptの知識があれば問題ありません。この先はNodeJSの世界だといわれているので、ギルはとても期待しています。


MongoDB:オープンソースソフトウェアのドキュメント指向データベースである。MySQLでもいいのですが、あまり細かいDBの設計を避けるためにNoSQLを使います。ギルは最近NoSQLにはまっています。Mongooseと組み合わせることで設計もすごく楽になるのでお勧めです!


Nginx:フリーかつオープンソースなWebサーバです。設定が簡単なのと、Webソケットのセキュアな通信を無料で実装したいのでNginx, Centos7とLets Encrypt を使ったHTTPS通信を可能にするこの構成で行きます!


Colyseus:全部の通信をコーディングするにはあまりに時間がかかるので、サーバーサイドの処理はColyseusを使いたいと思います。

リンクは https://colyseus.io/ になります。リアルタイム通信の処理はこちらを使って行います。ギルはすごく気に入っています!


2Dスクロールゲーム開発

オープンワールドを作って、皆さんと会えるのがとても楽しみです!みんなで集まってワイワイできるオープンワールドを作り、また各ステージではスコアを競って楽しめるゲームが目標です。


頑張って実装していきたいと思います。


次はさっそくプログラミングしていこう!


2020年5月26日火曜日

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

2Dスクロールゲーム開発



ゲームマスターのギルガメです!


2Dスクロールゲーム開発しながらここに進歩を残していこうと思います。


まずどういったゲームを作るのかをまとめてます。作りたいゲームのビジョンをはっきりさせてから開発するのが一番やりがいがあるので、ギルのゲーム開発のスタートアップを紹介していきます!



ギルはギル自身に質問していきます。



「どういうゲームを作りたいですか?」

2Dスクロールゲームが作りたい!


「デザインはどういう感じがいい?」

ドットが好きだからピクセルアート的な感じがいい。

あの雰囲気を楽しめるゲームにしたい。


2Dスクロールゲーム開発


「ストーリー OR ステージ?」

むむむ・・

ギルは妄想はすきだけど、今回はストーリーよりステージ型ゲームにしたい。


「なにをスコアにするの?」

これは一番大事な気がする・・

そうだね、今回はちょっとステージ型で進めたいからちょっとした「死にゲー」にチャレンジ!

死にゲーなので死んだ回数とクリアタイムで遊んで競ってもらえるゲームを制作したいと思います。


「チャレンジしたことは?」

マルチプレイを追加チャレンジしたい!

マルチプレイには夢がある!もちろん実装はかなりの知識と技術が必要だ・・だからチャレンジだ!

これができたらみんなとワイワイしたいな。



こんな感じで大体のビジョンがみえてきます。ここまで考えるだけでも楽しい・・ギルは妄想大好きです。


今度はなにを使って制作するかを決めていきます。ギルはUnity3Dが好きなのでこちらを使っていきます。

ですが、ギルには・・デザイン能力がない・・どうして!?この能力も欲しかったよ・・


制作に使うソフトはこちらになります。



Unity3DはC#を使ってコーディングします。こちらは無料ですので、興味がある方はぜひダウンロードして一緒にゲームを作ってみませんか?

ギルは今回の制作のコードはすべて載せていきます。


デザインはピクセルアートを使ってドット絵のキャラクターを作っていきます。ギルのようにデザイン能力がなくても少しは描けます・・(なんとか)・・

ギルは暇なときにたまに描いています。


ここまで決まったらあとはロジックを考えなら進めていきます!

次回はマルチプレイやサーバーサイドの設計を紹介したいと思います。


以上、GMギルでした。ここまで読んでいただきありがとうございます!