車体と砲塔の追加説明

がんばれーる1stに収録されている車体と砲塔の追加説明になります。

車体は「履帯」「多脚」、砲塔は「戦車砲」「連装砲」「ガトリング」が収録され、ゲームを進めていくと選択できるようになります。

最初から使用できるのはこの戦車砲と履帯の組み合わせです。

戦車砲が他の砲塔のパラメータの基準になっています。よって後述する砲塔は戦車砲に比べて速い遅い等の表現になります。

ただ、他の砲塔にはない戦車砲固有の特徴として

  • 命中時の吹っ飛びが大きい

というのがあります。
命中すれば敵の向いている方向が変わりやすいので攻撃をそらすきっかけになるかもしれません。もちろん敵の戦車砲が当たるとこっちの向きも変わってしまうわけですが…

なお戦車砲は連射していてもステージ開始序盤ならエネルギー回復量>エネルギー消費量になりエネルギー量を気にせず撃ちまくれます。

履帯は特に特徴がないのが特徴です。
履帯の移動速度等を基準に他の車体のパラメータを決めています。


多脚

今回、履帯以外に唯一選択できるのが多脚になります。
多脚の特徴は

  • 移動速度がちょっと遅い
  • 旋回速度がかなり速い
  • エネルギー上限がちょっと高い

になります。


連装砲
連装砲の特徴は

  • 1発あたりのダメージが低い
  • 同時に2発発射する
  • エネルギー消費量はちょっと高い(2発分なので)
  • 弾速・連射速度は速い

です。

1発あたりのダメージは低いものの弾速も連射速度も速く、さらに同時に2発出るため撃ち合いにはかなり強いです。


ガトリング

ガトリングの特徴は

  • 1発あたりのダメージはちょっと低い
  • エネルギー消費量は高い
  • 弾速・連射速度はかなり速い

です。

1発あたりのダメージは戦車砲にやや劣るものの、弾速も連射速度もかなり速いため攻撃力としては最高の部類にはいります。
ただ、その分エネルギー消費量も高くなるので無駄撃ちするとあっという間にエネルギーがなくなってしまいます。

 

C91お疲れ様でした

C91お疲れ様でした。

新作「がんばれーる 1st」以外にも「スウィンぐるん」や「PanzerStrike」も置かせて頂きました。

個人的にはUnibook(C91セット・電子版)が買えたので満足です。
(読みやすさでは紙の方がいいんですが、出先でも読める電子版の方が便利なのです)
vol.1 から買ってますが、カテゴリ別になったのはありがたい!

スウィンぐるんの主人公を方向パッドで操作する

スウィンぐるんの主人公(ルン子withクルクルマシン)の操作をゲームパッドのスティックではなく方向パッド(POV)で行いたい場合の方法です。

多くのゲームパッドでスティックとPOVのY軸の入力値は逆になっているため、上下の操作が入れ替わってしまいます。

以下、スウィンぐるんで方向パッドを使う場合のY軸上下反転のやり方になります。

※Xbox360コントローラ限定の内容になりますが、一般的なゲームパッドでも概ね同じ方法が使えると思います

1. スウィンぐるんが実行中なら終了してください。

2. スウィンぐるん実行ファイル(swingrun.exe)と同じフォルダ内に以下のファイルを作ります。

ファイル名:config.csv
文字コード:UTF-8(BOM付き)
改行コード:CR+LF

20161001_conifg%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e8%bf%bd%e5%8a%a0

3. 2.で作成したconfig.csvに

GamePadVInvert,Int,1

と記述して保存してください。

※ここにconfig.csvを置いておくので、このファイルをダウンロードしてswingrun.exeと同じフォルダに入れてもらっても構いません

4. swingrun.exeを実行し、起動時のダイアログの Input タブの Horizontal と Vertical を方向パッドの各軸に設定してください。

20161001_input%e3%82%bf%e3%83%96%e3%81%ae%e8%a8%ad%e5%ae%9a%e7%ae%87%e6%89%80

これでゲームを開始すれば方向パッドで操作できるようになります。
フリーモードのステージ選択でカーソルが方向パッドの入力向きと一致すれば正しく動作しています。

なおスティック操作に戻す場合はconfig.csvファイルを消すか

GamePadVInvert,Int,0

と記述を修正してください。

またconfig.csvに

ShowFPS,Int,1

と記述すると画面左下にFPSが表示されるようになります。

161001_fps%e8%a1%a8%e7%a4%ba

スウィンぐるん開発裏話(6)

ゲーム中の残り時間が少なくなると、ヒントとしてまだ見つかってない宝石も「キラッ」と光るようになります。
(わかりにくいですが、右上のミニマップでも光っています)20160914_%e5%85%89%e3%82%8b%e5%ae%9d%e7%9f%b3

仕組みはシンプルで、宝石を光らせるだけの専用ライトを作り、常にシーン上を高速回転させています。
20160914_%e5%ae%9d%e7%9f%b3%e3%83%a9%e3%82%a4%e3%83%88

ライトといえば平行光源x3+アンビエントな世代(?)なので、簡単にライトが増やせシャドウまで面倒見てくれるのは非常に助かりますね。ただ、その分絵作りが難しいというかセンスが問われるというか…

もちろんライトを置けばおくほどシェーダーのパスが増えて描画負荷は上がります。
この辺りの詳細は

「いけにえと雪のセツナ」グラフィック解説(第3回・シェーダ編)

や Unity公式ドキュメントの
Forward Rendering パスの詳細

の説明がわかりやすいと思います。

ただUnityを5.3から5.4にアップデートしたら光らなくなったような…
なにかシェーダーの仕様変わったのかな?
(時間が確保出来たら調べるつもりです)

(続く?)

PanzerStrikeがインプレス「窓の杜」で紹介されました

PanzerStrikeがインプレス「窓の杜」で紹介されました。

【週末ゲーム】第648回:物理演算による真面目な3D戦車シューティング「PanzerStrike」
http://forest.watch.impress.co.jp/docs/serial/shumatsu/1019182.html

PanzerStrikeの一番最初の体験版を出したのが2013年8月(c84)なので、もう3年以上経っているんですね。そこから完全版を出すまでさらに時間かかってますが…

最初の体験版はスウィンぐるんと同じ3週間で作ったり、リアルタイムシャドウ欲しさにコミケ前ギリギリで Unity 4.2に変更したり、今思えばかなり無茶をしていたかもw
(当時使っていたIntel HD5000だとUnity EditorがDX11モードでないと動かないけど、DX11だとUnity Editor上でリアルタイムシャドウの確認ができないとかかったりとかトラブルも色々あったなぁ…)

ちなみに今なら紹介記事で指摘されている問題のほとんどを解決できると思うので、いずれ新しい戦車ゲーを作ってみたいとは思っています。…PanzerStrike bis.?

スウィンぐるん開発裏話(5)

スウィンぐるんはWindows専用で作っているため、特に最適化や高速化のテクニックは使っていません。最近のPCは速くて助かります。

もちろんUnity的に一般的に推奨されない記述は出来るだけ避けています。
代表的なものとしては

  • Update内でGetComponent系を使用しない
  • Update内でFind系を使用しない
  • Update内で文字列操作を行わない
  • 使用しないMonoBehaviourのコールバック(UpdateやLateUpdate)は宣言しない
  • 空文字列チェックはstring.IsNullOrEmptyを使用する
  • IDやHashでアクセス出来るものはそれを使用する(マテリアルやAnimator)

でしょうか。

まぁこれらは高速化というよりは低速化を防ぐ意味合いの方が強く、高速化はもっと実装アルゴリズム寄りの話(代表的なところではオブジェクトプール等)だと思います。あと高速化はちゃんとプロファイルしてから検討することが大事です。

とりあえずUnityのランタイムで処理が遅いものとメモリ操作(暗黙に行われるものにも注意)だけ気をつければ、少なくともWindowsプラットフォームならそれほどパフォーマンスに影響はないと思います。

高速化に興味がある方はUnite 2016のこの資料を読んでみるといいと思います。

モバイル端末向けのUnityアプリケーションの最適化実践テクニック
ハードウェア性能を引き出して60fpsを実現するプログラミング・テクニック

(続く)

よく使うVisual Studioのショートカット

その昔、UnityVS のおかげでUnityとVisual Studioの連携が格段に良くなり、コード編集もデバッグも快適になりました。Debug出力は重かったけど…

現在はVisual Studio Tools for Unityが提供され、Unity 5.2 からWindows環境においてはVisual Studioが標準エディタになりましが、どうにもVisual Studioは出来ることが多くて使い切れない感があります。

おそらく便利な機能は沢山あるんでしょうが、私がコード編集時によく使っているショートカットはこれぐらいです。
※キーボードのマッピングは Visual C# 2005 です

コメントアウト Ctrl + E, C
コメントアウトの解除 Ctrl + E, U
VS内ファイルの切り替え Ctrl + Tab
Intellisenseの呼び出し Ctrl + Space
戻る(カーソル位置) Ctrl + -(マイナス)
次に進む(カーソル位置) Ctrl + Shift + –
全ての参照を検索 Ctrl + K, R
選択した関数の定義へと飛ぶ F12
名前の変更 F2

この中でも頻繁に使うのはカーソルの戻る・進むと全ての参照の検索です。
コードを行ったり来たりすることが多いので…

ショートカットとは違いますが、コードスニペットを使えばコード入力が楽になります。よく使う定型コードがあるなら独自のコードスニペットとして追加することも出来ます。
例えば私はenumeqcp[TAB][TAB]で以下のようなIEqualityComparerのひな形を作るスニペットを追加しています。まぁ滅多に使わないんですけどw

ちなみにコード編集以外にもUnite 2016でVisual StudioをImage EditorやModel Editor、Shader Designerとして使う方法が紹介されました。積極的に使うかどうかは別ですが、とりあえずVisual Studioでこんなことも出来ると覚えておいて損はないと思います。
Visual Studio 2015 & Graphics Design Tool

スウィンぐるん開発裏話(4)

またまた方針の補足の続き。

  • デバッグに時間のかかるゲーム内容は避ける

これはなかなか難しい問題で、デバッグやバランス調整はどうしても時間がかかります。
そしてこれらの時間をかけないようにするには、例えばゲーム内容をシンプルにしたり規模を小さくする必要がありますが、これはデメリットとして内容が薄くなり飽きやすいゲームになる可能性もあります。
また、期間を優先することで本当に作りたいモノが作れるのかという問題もあります。が、逆に作りたいモノを追い続けて完成しないケースもあります。まぁこの辺は作る人次第ですし、それも含めて作品だと思います。

その辺の折り合いをつけながら決まったのが現在のスウィンぐるんになります。
「ゲームルールがシンプル」「ステージの量産が可能(ステージ毎の調整が不要)」、ストレートに言ってしまえば、1面が完成すればゲーム部分はほぼ実装完了になる内容です。

ただ開発が進んでいくとどうしても追加したくなる機能がいくつも出てきますが、今回はじっと我慢していずれ続編を作ることがあるなら入れようという気持ちで完成させました。
それでも明らかに入れないと困る機能は追加しました。例えばアーケードモードのコンティニューが追加されたのはコミケ前日の8/13だったりします。最初は総ステージ数が少なかったのでコンティニューはなくてもいいかなと思っていたんです…

ステージの作成はゲーム内にステージエディタを実装し、協力者の方々に作ってもらいました。
実際のステージエディタはこんな感じです。
160829_ステージエディタ

これで方針については終わりです。
さて、次は何を書こうかな…

(続く)