Unityで2DRPGを開発するブログ

Unityで2DRPGを開発する様を綴りたいブログです。

Unity2D Unity2018.2で追加されたPixel Perfect Cameraを使ってみる

先程Unityエディタを2018.1.6から2018.2にアップデートしたところ、Text Mesh ProとEnergy Bar Toolkitがエラーを起こして全スクリプトがMissingになり、すわプロジェクト崩壊かと思いました。

 

前者は複雑そうなのでとりあえず削除、

後者はNetworkingが削除されたことによるエラーだったようで、エラーメッセージで推奨されている書き方に変えてみたものの、新たに出たエラー、引数intの部分をTransformにしろとの無茶振りの対応の仕方が分からなかったので、該当部分を削除しました。まあスタンドアローンのゲームなので関係ないですが、アップデートには注意しないとな……

 

エディタアップデートの目的はこれ。ピクセルパーフェクトカメラです。

gyazo.com

Window→Package Managerからインストールできます。

今までは無料アセットでいいかなーと思ってましたが、公式が出すならこれは使うしかない。

使い方は、テラシュールブログさんが詳しく書かれているので埋め込みで……

tsubakit1.hateblo.jp

OFF(画像のカオス度は気にしないでください)

gyazo.com

ON(画像のカオス度は気にしないでください)

gyazo.com

Upscale Render Textureで解像度を下げてくれるのが強い。

 

コンポーネントの設定だけではUIには適用できませんが、

gyazo.com

Canvasの設定をScreen Space - Cameraにして、Pixel Perfect Cameraを取り付けたカメラを指定すればUIも汚く(褒め言葉)なってくれます。

こっちのPixel Perfectは関係ないと思いますが、一応チェック付けてます。

gyazo.com

スプライトを回転したときのGBAみたいなドット荒れもできます。最高。

 

ただ、(無料アセットのものと同様)Orthographic Sizeが固定されるため、この値を変更することでズームインアウトができなくなるので、そこは注意。

DoTweenのデフォルトでついてる機能が使えなくなってしまった……

ScriptableObjectはなぜセーブデータに使えないのか

どこを探しても「セーブデータには使えない」と書かれているScriptableObjectですが、

その理由は見るページによって「ゲーム終了時に値が初期化されてしまう」だったり「実行時にリセットされる」だったりと、どちらなのかよく分かりませんが、要するに値の保存ができないというものです。

tsubakit1.hateblo.jp

しかし、実行時に値の変更はできるようです。

さらに、ランタイムでAssetを作成することもできるっぽい。

https://i.gyazo.com/d495596526cde8d03d5a31b708afb18d.gif

じゃあ、実行時に値を変更したScriptableObject(のAsset)を適当なフォルダに保存して、次はそれを読み込めばセーブデータとして使えるのでは?

※Unity&C#1年生並みの感想

というわけでやってみようとしてみた。

続きを読む

Unity2D 見下ろし型画面でキャラクターを動かす

前回の記事でいきなりアニメーション実装を書いてしまったので順番が前後した感しかありませんが、

今回はトップダウン方式のキャラクター移動をやっていきます。

というか、前回はアニメーションの話をしたかったのに、

微妙に移動の話も入れてしまったので流れがややこしくなってしまった気がする。

 今回からコードはGistを使って埋め込みしたいと思いますが、うまく表示されない……

どうすりゃいいんだ。

続きを読む

Unity2D 見下ろし型画面で4方向に歩かせる

サイドビューの横スクロールなら情報がたくさんあると思いますが、見下ろし型=トップダウンのゲームの情報って全然ないんですね。みんなUnityでドラクエ作りたくないのか!?

今からでもRPGツクールに移行した方が賢明だなと本気で思いましたが、なんとか実装できたのでやり方を書いていきます。

この記事では上下左右の4方向のアニメーションをするように設定しますが、8方向でも大丈夫です。

続きを読む

今日の作業

https://i.gyazo.com/cb82dc755b9b3542c875ba62307ddcd1.gif

HP増減を実装……と言いたいところなんですが、

ぶっちゃけ(有料)アセット使いました。

assetstore.unity.com

作者が買ったときにはあまり類似アセットはなかったような気がするんですが、最近はこの手の無料アセットがけっこう増えたので、今から「いい感じのプログレスバーほしい&&コード書きたくない&&その程度のことに30$も払えるか!」って人は「Progress Bar」とかで検索して無料アセットを試してみるのがいいと思います。

 

今回使ったのは一般的な「Filled Bar」なんですが、uGUIの9Sliceみたいに左右に独自のマージンを付けられる「Slice」やスプライトアニメーションをゲージにできる(!)「Sequence」、時計の針のような回転型ゲージなんかも作れる「Transform」もあって、使い道は無限大。

https://i.gyazo.com/199434b76ddcc43019e0bd8dd269b0a2.png

こんな感じで、GUIでグラデーションの色や閾値も指定できます。

 

バーの横に「HP」ってテキストを置きたかったんですが、キャラクターの位置に合わせるためにCanvasをScreen Spaceにしたところボヤボヤになってしまった。

画面が小さすぎるせいか、テキストのサイズを小さくしてもあまり効果がないので、Text Meshにして再挑戦しようと思います。

 

ところで、このブログに到達する人ってUnityでRPGを作りたい人なんですよね。

なので、そういう方向性で記事を書けたらいいなと思います。

今回はアセットに頼ったけどね。

完 全 放 置

……していたのですが、気分一新してこれからはちゃんと更新しようと思います。

なんといっても「今年中に体験版をリリース」すると言ったのが半年以上前ですからね……

作曲作業は5月に一段落して、RPG制作挫折原因トップの画像素材を作ったりしていたのですが、そちらはやはり一旦挫折しましたので、中身をちまちまと作っております。

 

RPGなので、主に2つの画面モードを作成します。

フィールドとバトルです。

 

https://i.gyazo.com/0869a1152c324c72fcb6a5e8b73c3369.gif

 

フィールドはまあその気になればすぐできるだろ(慢心)ということで、バトル画面を先に作っています。こんな感じです。

 

特徴は、

・何よりもまず、フロントビュー。

・プレイヤーは画面下部に表示されている。

ここまでレトロなRPG

そして独自の要素として、

・敵の攻撃はメッセージ表示ではなく、弾を撃ってくる。

・プレイヤーは画面下部に表示されている。

・プレイヤーに弾が当たらないよう、カーソルを操作して敵の弾を破壊する。

というものがあります。

自ターンにもちょっと変わった攻撃手段を考えていますが、それはまた今度。

 

昔から、シューティングとRPGを組み合わせたゲームってないよなあ……あってほしいなあ……と思っていました。

まあ、ゲームが3D化して以降はむしろそういうのがスタンダードになったというか、3Dアクションゲームってだいたいそれじゃね? と思わなくもないのですが、

もっとRPG寄りのやつがやりたい……

シューティングにプレイヤー強化要素があるやつじゃなくて、戦闘がシューティングのドラクエがやりたいんです。なんか前もこんなこと書いた気がする。

 

というわけで、ちゃんとタイトル通りの内容のブログを構築していきたいと思います。よろしくお願いします。