がんばれーる1stのPVをver. 1.01にあわせて更新しました。
また、委託販売の準備が整ったので近日中に販売開始の予定です。
がんばれーる1stのPVをver. 1.01にあわせて更新しました。
また、委託販売の準備が整ったので近日中に販売開始の予定です。
がんばれーる1stの v1.01 アップデータを公開しました。
ダウンロード
ダウンロードしたgb1st_v1.01_Update.exeを実行してください。
このような画面になるので、ダイアログに従ってアップデートを行ってください。
1点だけ注意点ですが、参照先を選択するダイアログのところでがんばれーるのインストールフォルダを選択するところがあるので、環境に合わせて変更してください。
アップデートの内容ですが、環境設定の機能強化が主になります。
ポストエフェクトの「Antialiasing」「Ambient Occlusion」「Bloom」を個別にON/OFFできるようになりました。ポストエフェクトを全て無効にすると描画パフォーマンスはかなり変わりますので、実行環境に合わせて設定してみてください
ポストエフェクトを全てONにしたときと、全てOFFにした場合、見た目はこれぐらい変わります
「Ambient Occlusion」を有効にするとキャラの顔が怖く(?)なりますが、背景の見た目はよくなります
ちなみにポストエフェクトは画面全体にかかるので、Ambient Occlusionをキャラの顔だけOFF、背景だけONというのは標準ではできません。
(今作っているシェーダーはステンシルバッファを使って任意のマテリアルだけAmbient Occlusionをかけないように出来ます)
Bloomはキャラの見た目よりゲーム中のエフェクトに影響がでます
賑やかしのボイスを追加しました。
それに伴い、音量調整の部分にボイスが追加され、再生テストボタンを追加しました。
いずれボイスも何パターンか用意してカスタマイズ項目に追加したいですね。
ゲームパッド+ラジコン操作だとスティックの構造上アクセル100%右旋回100%のような操作が行えませんので、閾値を設けてスティックの入力をデジタル的に扱うように出来ます。
ただ、操作がピーキーになるのでゲームパッド時はラジコン操作ではなく「方向キーの入力方向に移動」を選んだ方がいいと思います。
地味な改良ですが、タイトル画面のメニューの選択だけマウス対応しました。
以上、version 1.01 の更新内容についてです。
最後に、アップデータにはPatchWise Freeを使わせて頂きました。
(自前のaoUpdaterを入れてもよかったんですが、ノートンなどのセキュリティソフトに削除されるトラブル対応が面倒で…)
がんばれーるのゲーム本体についてです。
実はがんばれーるの元になるゲームは10月に既に作っていました。
これがいわゆるプロトタイプになります。
このゲームは
を主目的とし、さらに個人的に不定期で実施している
という「一人ハッカソン」的なもので誕生しました。
このゲームにキャラカスタマイズ機能を追加したのが「がんばれーる1st」になります。
ただ、ゲームロジック部分の思想が異なっていて、プロトタイプはシューティングゲーム的な自機と敵の組み合わせに対し、がんばれーるは自機も敵も「タンク+キャラ」という部分を共通化し、プレイヤーが操作する自機に相当するタンクにはユーザー操作を許可するコンポーネントを追加することでキー操作を行っています。
そのため、がんばれーるの内部ロジック的にはCPUs vs CPUsのような自動バトルロイヤルが可能だったりします。
一応プロトタイプの流れでシューティングゲームとして作りましたが、もしかしたら次は(がんばれーる2nd?)シミュレーションゲームになる可能性もあったりなかったり…
次回は使ったAssetについてです。
ゲーム本体についての前に、がんばれーるの動作が遅いとの意見を頂いたので、手持ちのPCで特にパフォーマンスの出にくいノートPCでFPSを計測してみました。
解像度は1280×720(GT330のみ1280×768)、No Effect はPostEffect処理(Antialiasing、Ambient Occlusuin、Bloom)を無効にした場合です。
※頒布中のがんばれーるではPostEffectを無効にすることはできません
Good | Beautiful | Fantastic | |||
i7-640M GeForce GT330M |
D11 | 15 | 11 | 9 | |
D9 | 16 | 13 | 11 | ||
D11 | No Effect | 27 | 19 | 14 | |
D9 | 30 | 25 | 17 | ||
i7-4650U Intel HD Graphics 5000 |
D11 | 21 | 19 | 13 | |
D9 | 28 | 23 | 17 | ||
D11 | No Effect | 37 | 27 | 19 | |
D9 | 40 | 30 | 23 | ||
i7-6650U Intel Iris Graphics 540 |
D11 | 34 | 31 | 29 | |
D9 | 39 | 35 | 29 | ||
D11 | No Effect | 60 | 43 | 37 | |
D9 | 60 | 50 | 36 |
若干ですが、DirectX9モードで動かした方がFPSは出るようです。
また、やはりPostEffectの無効化はやはり影響が大きいです。
もちろん見た目もこれぐらい変わりますが…
ちなみにPostEffectはImageEffectではなくこっちを使っています
まぁ結論としては当たり前ですが描画クオリティの設定機能は必要ってことですね。
後は動作スペックの下限をどのあたりに設定するかも課題かもしれません。
一覧には入ってませんが、Intel HD Graphics(i7-640M)ではDirectX11で起動せず、DirectX9でGood品質の時 4fps(No Effect で7fps)でした。さすがにこの世代でプレイするのは非常に厳しいです。
【補足】
FPSを計測したのはタイトル画面です。
環境によりますが、ゲーム中(見下ろし画面)のFPSはタイトル画面の 1.5 倍程度出ます。
がんばれーるのキャラクタの描画についてです。
がんばれーるのキャラやタンクの描画にはToony Colors Proを使っています。
Toony Colors Pro+Mobile(Asset Store)
シェーダーの構成としてはStandard PBS(物理シェーダー)+アウトライン+ランプです。
特に難しいことはやっていませんが、当初カスタマイズで色変更を考慮していなかったので、後から色変更(そのために複数テクスチャ化)に対応するため1メッシュ複数マテリアルというパフォーマンスの悪い実装になっています。もっともPCならさほど問題でもないでしょう。
例えば髪のレンダラーはこんな感じに複数マテリアルになっています。
chara_bobcut_colが髪、chara_bubcut_maskがハイライトになり、chara_bobcut_colの Albedoを変更することで色変更に対応してます。
ただ、やはりパフォーマンスや取り回しを考慮するならシェーダーを自作するべきでした。
例えばStandard PBSでテクスチャを3枚重ねるだけなら
#pragma surface surf Standard fullforwardshadows
void surf (Input IN, inout SurfaceOutputStandard o)
{
fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;
fixed4 tex2nd = tex2D(_Tex2nd, IN.uv_MainTex) * _Color2nd;
c.rgb = lerp(c.rgb, tex2nd.rgb, tex2nd.a);
fixed4 tex3rd = tex2D(_Tex3rd, IN.uv_MainTex) * _Color3rd;
c.rgb = lerp(c.rgb, tex3rd.rgb, tex3rd.a);
o.Metallic = _Metallic;
o.Smoothness = _Glossiness;
o.Albedo = c.rgb;
o.Alpha = c.a;
}
だけで済みますし、アウトラインを入れるならUsePass “Toon/Basic Outline/OUTLINE”でUnity標準のアウトラインシェーダーを呼べばいいでしょう。
ランプテクスチャを用いた階調表現はUnity標準のToonLit.shaderを参考にすればいいと思いますが、Standard PBSと合成したいとかなると自前で実装する必要があると思います。もしShaderForgeを使うなら
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
の30ページからランプシェーダーについての説明があるので、これを参考にするのがいいと思います。
なお、今回の反省をから後日シェーダーに関しては自作してみました(途中)。
普段なら直接シェーダーを書くところですが、せっかくなのでShaderForgeで作ってみたり。
※ShaderForgeを使うにあたり、上記Unity道場の内容は非常に参考になりました!
左がToony Colors Pro、右が自作シェーダーになります。
ランプの実装がまだ途中なのでいまいちですが、全ての処理が1マテリアルで完結しているので、マテリアル情報が MaterialPropertyBlock で変更出来るようになります。
(MaterialPropertyBlockはレンダラーに対しての設定のため、マテリアルが複数ある場合の設定のしかたがわからなかった…)
ちなみにこれらで得られたノウハウはもれなくDustShootersに反映されています。
次回はゲーム本体についてです。
がんばれーる1st反省会(その1?)
前作のスウィンぐるんは3週間、それもかなりのオーバーワークで作ったので、今回は何を作るにしてもとりあえずゆるゆると6週間で開発すると計画したものの、結果的に5週間のオーバーワークという前回より状況は悪化しましたw
大雑把な内訳は
でしょうか。
特にキャラカスタマイズに半分以上の時間を使ってしまったのは大失敗でした。
実装方法をあれこれ試していたのもありますが、一番の問題はエディタ拡張を作るのに時間をかけてしまったことです。なにせゲーム自体の進捗にはほとんど寄与しないので…
どうせゲーム内でカスタマイズするので、最初からランタイム動作のカスタマイズエディタを作ってしまえばよかったんですよねぇ。
ちなみにUnityエディタ上で動作するカスタマイズエディタはこんな風です。
それでも今までエディタ拡張を積極的に使ってこなかったこともあり、今回のカスタマイズを作って色々と得るものはありました。今更でしょうが Inspector が見やすくなるのが素晴らしいですw
次回はキャラクタの描画についてです
がんばれーる1stに収録されている車体と砲塔の追加説明になります。
車体は「履帯」「多脚」、砲塔は「戦車砲」「連装砲」「ガトリング」が収録され、ゲームを進めていくと選択できるようになります。
戦車砲が他の砲塔のパラメータの基準になっています。よって後述する砲塔は戦車砲に比べて速い遅い等の表現になります。
ただ、他の砲塔にはない戦車砲固有の特徴として
というのがあります。
命中すれば敵の向いている方向が変わりやすいので攻撃をそらすきっかけになるかもしれません。もちろん敵の戦車砲が当たるとこっちの向きも変わってしまうわけですが…
なお戦車砲は連射していてもステージ開始序盤ならエネルギー回復量>エネルギー消費量になりエネルギー量を気にせず撃ちまくれます。
履帯は特に特徴がないのが特徴です。
履帯の移動速度等を基準に他の車体のパラメータを決めています。
多脚
今回、履帯以外に唯一選択できるのが多脚になります。
多脚の特徴は
になります。
です。
1発あたりのダメージは低いものの弾速も連射速度も速く、さらに同時に2発出るため撃ち合いにはかなり強いです。
です。
1発あたりのダメージは戦車砲にやや劣るものの、弾速も連射速度もかなり速いため攻撃力としては最高の部類にはいります。
ただ、その分エネルギー消費量も高くなるので無駄撃ちするとあっという間にエネルギーがなくなってしまいます。