FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

更新するだけ

ゲームプレイの仕様についてサクッと書きます。

・連合編と枢軸編がある
・ステージは連合編45、枢軸編45、おまけ10で合計100
・マップは共通のものもあり、全体で70程度になる見積もり。たとえば何もない海やミッドウェー周辺など
・各ルートは完全に独立。分岐はなし。

・連合編と枢軸編にはWSG2のように2周目がある
・2周目には敵ユニットの追加配置、開発可能パーツの増加、出撃可能ステージの追加が行われる。1周目は双方43ステージで終了。
・敵超兵器は色々と強くなる
・どちらか片方のルートをクリアすると、ルートを選択し直して2周目に行く。同じルートを選択してもいいし変更してもいい。

・2周目イベントがある分、PC版従来の編成値イベントはカット

概要はこんな感じ。
編成値イベントについては、完全に主観ですが、いるのこれ? と思ったので工程簡略化のためにとりあえず削除の方向。
(敵ユニットに派手な追加があるならともかく、航空機部隊の追加とか気付かないだろ常識的に考えて……)

そもそも編成値イベントは、リプレイ性の上昇のための存在だと考えられます。
かつ、想定より高い編成値でプレイヤーが出撃した際のバランサーでもあります。

前者に対しては、ならばゲームとして2周目を組み込んだ方が確実であり効果的だと考えます。
そして後者ですが、副目標と役割が被っています。
従って、副目標と編成値イベントをマージします。
プレイヤーが強く、多くの敵を倒すほど連続クエストのように副目標が発生するようにすればいいのです。

ステージごとの副目標は、多くて4つ程度かなあと考えています。
敵ユニットの追加はことさら面倒ではないのですが、1ステージに何十分もかけたくないでしょうし。
スポンサーサイト

今日考えたこと

兵装1~7の区別をする方法

兵装のプレハブには
・WeaponStatus
・WeaponLauncher
・WeaponPlacementのコンポーネントをアタッチする。
WeaponPlacementにはWeaponNumberを保持させる 。
HLGの設置段階では、「設置モード」を切り替えながらパーツを配置する。
「兵装n設置モード」のときに、インスタンス化した兵装オブジェクトのWeaponPlacement.WeaponNumberを設置モードに応じて設定。
PlayerのRootにアタッチした(はずの)WeaponControllerにWeaponLauncherコンポーネントを取得させる。
これを、WeaponNumberごとに配列に格納する。
表示する弾薬数は、WeaponLauncher.Ammoを配列の数だけ足したものに一致する。

WeaponControllerでは、配列ごとに兵装の状態を管理する。
装填時間や弾薬など、Transform以外は特定の兵装のどの砲塔も共通しているので、上位クラス、
すなわちWeaponControllerに管理させることが可能。
というか、そうしないと大変なことになる。

とすると、HLGでの設置時には、兵装ごとに新しくプレハブをインスタンス化するというより、既にあるものを複製するのが理にかなっているように思われる。
Transform以外共通しているということは、それぞれがコンポーネントを持っている必要はなく、
WeaponControllerが自動的にアタッチするようにすることも可能。
ロードは長くなるが、ゲームの容量は削減できる。

……しかし、市販のゲームではどうするのが一般的なのか不明。
プロジェクトの研究が必要。

Weapon System

兵装の操作にあたってもう一つ購入していたアセットがあって、それは「Weapon System」というその名もズバリなものだったのですが、これについて勉強していきます。
32ドルですが、セール中に16ドルで買いました。
weaponsystem.jpg
「Smooth Turret」に比べると、値段の割にやってることは単純(使いやすいとも言う)。

まず自機である「Tank」は兵装のキャリアーでしかありません。鋼鉄でいう船体です。こいつは移動するだけです。
その移動方法も物理演算ではなく座標の加算という……参考にならない……

ともあれ、「HeadPart」にある「Weapon Controller」が、プレイヤーの操作を管理している場所です。
Weapon Controllerでは装備のリストを管理します。
このリストは、「HeadPart」以下にある「Gun Base」にくっついている「Weapon Launcher」を数えてリスト化したものになります。
weaponsystem2.jpg
「GunBase」はよく見るとめちゃくちゃ物々しい。

「Weapon Launcher」が鋼鉄でいうところの砲塔になります。
これが重要そうなので、詳しく見ていきたいと思います。

続きを読む

兵装のバランスについて

鋼鉄の咆哮といえば多様な兵装。
過去に作成したシートによると、3の時点で458種類の兵装がありました(航空兵装含む)。
ただし兵装3Dモデルの数は61種類。砲の連装・高さ違いは無視していますが、そんなに多くないかも?

今回はそんな兵装の仕様と、新作でやりたい変更点を書きます。
前提となる思想は、「カテゴリごとに特色を強く出す」
かつ
「どの種類の兵装でも最終的には同レベルのDPSを発揮でき、ラスボスを撃破できなければならない」
です。
まあ波動砲を筆頭に、クリア後はその限りではないんですが……

続きを読む

艦船の速度について

Unityでは、Rigidbody.velocity.magnitudeから物体の速度を取得します。
しかしこのmagnitudeの単位は何なのか……
km/h? それともmph……と思ったら、そもそもUnityの距離の単位はunit(別にシャレではなく普通にユニットなんだろう)らしい。
で、1ユニットは1m四方として設計されている。
そしてここによれば、magnitudeはunit/s=m/sの数値とのこと。

これを鋼鉄らしくノットに変換するとなると、
1m/s=1.94384ノットらしいので、少数第二位までを有効数字として、velocity.magnitude * 1.94が欲しい数値となる。
これを参考にプロパティとして記述すると、

float currentSpeed{
get{
return GetComponent().velocity.magnitude;
}
set{
GetComponent().velocity.magnitude * 1.94 = value;
}
}



これをGUIに持っていけばノットで速度が表示されるはず。
しかしこれはリアルタイムで動いている物体の速度を検出するやり方、つまり戦術画面の話です。
設計時に最大速度を表示するにはvelocity.magnitudeでは不適切なんですよね。

まあ、そもそも順番が逆なのでちゃんと考えてみましょう。
鋼鉄だと、まず設計時に最大速度が決定されるので、これをfloat値として保持します。
名前はmaxSpeed。currentSpeedとは関係ない数値を準備することで問題は解決しました。
意味が分からない、という方は、筆者が頭悪い書き方をしているだけなので気にしないでください……
速度の単位は航空機だとkm/hになるんですが、ノットでよくない?まあ現実感覚的には分かりやすいんですが、艦船との相対速度のほうがゲーム的には重要な気がするし。

速度の取得については問題なさそうです。
次に、戦術画面での艦船の動かし方を考えてみましょう。鋼鉄では、
機関後進=1/2 * -maxSpeed
機関停止=0
微速=1/10 * maxSpeed
巡航速度=1/2 * maxSpeed
全速=maxSpeed
という風に速度が切り替わります。PC版では一応10段階かそれ以上に速度を調節できたのですが、普通は使わないせいか、PS2版だとその機能は削除されました。
筆者もぶっちゃけあの機能はいらないと思うのでPS2版準拠にしたいと思います。

しかし、長くなりそうなので今回はこのあたりで終わりにします。

SmoothTurret

Unityを使って開発していくということは前回述べた通りですが、Unityには心強い叡智の集積、すなわちアセットストアという仕組みがあります。
3Dモデルにしてもプログラムにしても、自作するのではなく目的に合ったものを購入すれば時間短縮に繋がるよね。
ということで、他の人が作ったリソースを自分のプロジェクトに流用させてもらえる素晴らしい仕組みです。
ストアとはいうものの、無料のものもたくさんあり、しかもそれがめちゃくちゃ有用だったりします。
逆に「評価が高い」ってだけで買ったアセットが実は無用の長物だったりする……よくある……

「鋼鉄の咆哮」は昔のゲームということもあって基幹システムは単純なので、アセットが活躍しそうな予感。
まずは「Smooth Turret」。27ドルでした。
以前は☆4評価(アセットストア的には☆5でない場合地雷率が飛躍的に高まる)でしたが、いつの間にか☆5になってた。

続きを読む

はじめまして

「3」から14年。
「P」から9年。
待てども待てども新作は出ず。

じゃあ、作っちゃいましょう。

それにしても「鋼鉄の咆哮」は陳腐とはいえ良タイトルだと思います。
商標の都合で類似した単語に変えようと思っても、あまりかっこいいものにならない。もしくは一般的な単語から離れすぎる。
というわけで、タイトルは「鋼鉄の咆哮」の原題だった「遊撃部隊」(仮)としましょう。

ここはUnity初心者が「遊撃部隊」の開発記録を綴っていくブログです。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。