Unityでネットワークゲームを創りたい(UNET)-14

はじめに

また今回も地味な進歩でここでの見た目には大きな進展はありませんが、実質内容的には進んでいます。今回はシングルプレイヤーモード(ネットワーク対戦モードではないという意味)での戦艦主砲射撃関連の創りこみの続編となります。

戦艦決闘アプリとしてのスケールの検討

今回の開発アプローチは自分的な通常アプローチとは異なり、元となるTANKSNETWORKINGアプリをベースに少しずつ戦艦決闘アプリ化するようにしています。その意味で本アプリの3D空間のスケールは元々のアプリでの漫画的タンクの3D空間スケールとなっています。

そろそろ戦艦主砲射撃処理を創りこんでいくフェーズですので、ここでちょっと本アプリとしてのスケールに関しての考察をしました。

投入している戦艦プレファブのサイズは元々のタンクのサイズをベースにしています。結果として、全長約250mの戦艦大和はunity単位で25です。通常は1mをunity1単位として創っていたのですが、ここでは10mがunity1単位となります。

重力加速度は元アプリではunityの物理シュミレーターのgを使っています。元々戦艦決闘アプリでは、ゲームとしての興味をアップするために、主砲の射程距離を20分の1とかに短縮するように物理現象を変更する予定です。結果として敵戦艦と目視距離での主砲砲撃戦をできるようにするためです。

これらを考慮し、戦艦の移動速度は1.5Unity単位/秒程度(戦艦的には30ノット弱)、砲弾の初速は100Unity単位/秒程度となります。

これらの条件を入れて全体調整を始めます。

敵戦艦主砲射撃処理を含む主砲射撃処理

これまでええかげんだった主砲砲弾初期速度の設定や主砲砲弾の実体化位置調整等を行いました。

砲撃の瞬間をステップ送りで確認するとプレファブ実体化の瞬間は下の図にあるように違う方向を向いていました。いろいろなところでオブジェクトの向きが90度違ったりするからです。

主砲砲身のtransform.upに1.5シフトして実体化させるとまあうまく調整できました。発射パーティクルのオレンジ色のだささは後で調整します。それと主砲砲弾が1発しか出ていないのも後で追加します。

実際に主砲で打ち合ってみる

シングルプレイヤーモードでの敵戦艦(プログラムコントロール)とプレイヤー戦艦での主砲決闘を実施してみます。当り判定等はまだありませんので命中してもダメージ等はありませんが、まあなんとか雰囲気が出てきているようにも思います。

元々のタンク主砲砲弾を見えなくする等の処理も実施しました。まだまだ創りこみが必要ですが、何とかシングルプレイヤーモードでの技術的課題はクリアしたように思います。

継続して実施すべきこと

ネットワーク対戦モードへ行く前に、もうちょっと主砲発射の処理の創りこみが必要です。砲弾数を増やすこと、弾幕パーティクルの見映え改善。照準機能の見映え攻城、砲弾トレース視認処理追加等々です。

現在できていることの整理(進展無し)

1.3種類までの軍艦を選択して登場できる仕組み

2.シングルモードで戦艦を自在に操艦操作する

3.ネットワーク対戦モードで戦艦を自在に操作する

4.主砲射撃制御:戦艦主砲による同時斉射処理およびパーティクル創りこみ

5.スマホ上でのタッチ処理による操作

現在できていないことの整理

1.インターネット接続を想定した遅延時間増の場合の動作調整

2.今回創りこんだ戦艦周りの各エフェクトのネットワーク対戦での確認

次に実現を検討すべきことを考えてみる

今回の継続でシングルプレイモードでの敵戦艦との砲撃戦の実現(続続)をもう少し進めます。その次にネットワーク対戦としての砲撃戦でしょう。

最後に

何とはなしにプロジェクト+スクリプト構成を理解しつつありますが、まあ目に見えて動き始めるとそれは嬉しく思います。それにしても進展が遅いですけどね。まあ産みの苦しみということで継続して頑張りたいと思います。

進展があればここでまた報告させて頂きます。

以上

参考:海戦関連のアプリを紹介しておきます。

戦艦決闘空間:何といっても第一人気です。

   

潜水艦決闘空間:最新アップデートでかなり好評価されています

 

空母決闘空間1942:かなり良くできていると評価を頂いています