Unity2D Unity2018.2で追加されたPixel Perfect Cameraを使ってみる
先程Unityエディタを2018.1.6から2018.2にアップデートしたところ、Text Mesh ProとEnergy Bar Toolkitがエラーを起こして全スクリプトがMissingになり、すわプロジェクト崩壊かと思いました。
前者は複雑そうなのでとりあえず削除、
後者はNetworkingが削除されたことによるエラーだったようで、エラーメッセージで推奨されている書き方に変えてみたものの、新たに出たエラー、引数intの部分をTransformにしろとの無茶振りの対応の仕方が分からなかったので、該当部分を削除しました。まあスタンドアローンのゲームなので関係ないですが、アップデートには注意しないとな……
エディタアップデートの目的はこれ。ピクセルパーフェクトカメラです。
Window→Package Managerからインストールできます。
今までは無料アセットでいいかなーと思ってましたが、公式が出すならこれは使うしかない。
使い方は、テラシュールブログさんが詳しく書かれているので埋め込みで……
OFF(画像のカオス度は気にしないでください)
ON(画像のカオス度は気にしないでください)
Upscale Render Textureで解像度を下げてくれるのが強い。
コンポーネントの設定だけではUIには適用できませんが、
Canvasの設定をScreen Space - Cameraにして、Pixel Perfect Cameraを取り付けたカメラを指定すればUIも汚く(褒め言葉)なってくれます。
こっちのPixel Perfectは関係ないと思いますが、一応チェック付けてます。
スプライトを回転したときのGBAみたいなドット荒れもできます。最高。
ただ、(無料アセットのものと同様)Orthographic Sizeが固定されるため、この値を変更することでズームインアウトができなくなるので、そこは注意。
DoTweenのデフォルトでついてる機能が使えなくなってしまった……
ScriptableObjectはなぜセーブデータに使えないのか
どこを探しても「セーブデータには使えない」と書かれているScriptableObjectですが、
その理由は見るページによって「ゲーム終了時に値が初期化されてしまう」だったり「実行時にリセットされる」だったりと、どちらなのかよく分かりませんが、要するに値の保存ができないというものです。
しかし、実行時に値の変更はできるようです。
さらに、ランタイムでAssetを作成することもできるっぽい。
じゃあ、実行時に値を変更したScriptableObject(のAsset)を適当なフォルダに保存して、次はそれを読み込めばセーブデータとして使えるのでは?
※Unity&C#1年生並みの感想
というわけでやってみようとしてみた。
続きを読む今日の作業
HP増減を実装……と言いたいところなんですが、
ぶっちゃけ(有料)アセット使いました。
作者が買ったときにはあまり類似アセットはなかったような気がするんですが、最近はこの手の無料アセットがけっこう増えたので、今から「いい感じのプログレスバーほしい&&コード書きたくない&&その程度のことに30$も払えるか!」って人は「Progress Bar」とかで検索して無料アセットを試してみるのがいいと思います。
今回使ったのは一般的な「Filled Bar」なんですが、uGUIの9Sliceみたいに左右に独自のマージンを付けられる「Slice」やスプライトアニメーションをゲージにできる(!)「Sequence」、時計の針のような回転型ゲージなんかも作れる「Transform」もあって、使い道は無限大。
こんな感じで、GUIでグラデーションの色や閾値も指定できます。
バーの横に「HP」ってテキストを置きたかったんですが、キャラクターの位置に合わせるためにCanvasをScreen Spaceにしたところボヤボヤになってしまった。
画面が小さすぎるせいか、テキストのサイズを小さくしてもあまり効果がないので、Text Meshにして再挑戦しようと思います。
ところで、このブログに到達する人ってUnityでRPGを作りたい人なんですよね。
なので、そういう方向性で記事を書けたらいいなと思います。
今回はアセットに頼ったけどね。
完 全 放 置
……していたのですが、気分一新してこれからはちゃんと更新しようと思います。
なんといっても「今年中に体験版をリリース」すると言ったのが半年以上前ですからね……
作曲作業は5月に一段落して、RPG制作挫折原因トップの画像素材を作ったりしていたのですが、そちらはやはり一旦挫折しましたので、中身をちまちまと作っております。
RPGなので、主に2つの画面モードを作成します。
フィールドとバトルです。
フィールドはまあその気になればすぐできるだろ(慢心)ということで、バトル画面を先に作っています。こんな感じです。
特徴は、
・何よりもまず、フロントビュー。
・プレイヤーは画面下部に表示されている。
ここまでレトロなRPG。
そして独自の要素として、
・敵の攻撃はメッセージ表示ではなく、弾を撃ってくる。
・プレイヤーは画面下部に表示されている。
・プレイヤーに弾が当たらないよう、カーソルを操作して敵の弾を破壊する。
というものがあります。
自ターンにもちょっと変わった攻撃手段を考えていますが、それはまた今度。
昔から、シューティングとRPGを組み合わせたゲームってないよなあ……あってほしいなあ……と思っていました。
まあ、ゲームが3D化して以降はむしろそういうのがスタンダードになったというか、3Dアクションゲームってだいたいそれじゃね? と思わなくもないのですが、
もっとRPG寄りのやつがやりたい……
シューティングにプレイヤー強化要素があるやつじゃなくて、戦闘がシューティングのドラクエがやりたいんです。なんか前もこんなこと書いた気がする。
というわけで、ちゃんとタイトル通りの内容のブログを構築していきたいと思います。よろしくお願いします。