前回は、Unity の TopDown Engine アセットのサンプル KoalaRifle を見本に、作成した薬きょうパーティクルを放出する Particle System がなぜか武器を装備した瞬間しか放出されないテストプレイの現象を説明しました。
その対策のために ProjectileWeapon コンポーネントの自作とサンプルのプロパティの違いをグループ単位 (Animation, Animation Parameters Names, Feedbacks) で変化させ、ついに射撃中に薬きょうパーティクルが放出されるようになりました。
前回の記事:TopDownEngine Weapon設定値の調査3/4 | Compota-Soft-Press
今回は前回の続きで、自作とサンプルの武器プレハブそれぞれの ProjectileWeapon コンポーネントの値の意味についてグループ単位(今回は 12 個中残り 2 個) で調べ、差分を確認します。
今回紹介するグループによって、射撃で発射される弾丸の最初の位置を銃に合わせて微調整したり、連射したときの弾丸の方向のばらつきを設定できます。
※ Unity のバージョン 2021.3.25f1、 TopDown Engine のバージョンは 3.2 です。
Settings グループ (Weapon.cs)
差分がないので各プロパティの説明だけ記載します。
InitializeOnStart | If this is true, the weapon will initialize itself on start, otherwise it’ll have to be init manually, usually by the CharacterHandleWeapon class これが true の場合、武器は起動時に自身を初期化します。それ以外の場合は、通常は CharacterHandleWeapon クラスによって手動で初期化する必要があります。 |
Interruptable | whether or not this weapon can be interrupted この武器が中断できるかどうか |
Flipped | Weapon.cs, ProjectileWeapon.cs に該当変数名が見つかりませんでした。 |
Projectiles グループ (ProjectileWeapon.cs)
ProjectileSpawnOffset の座標を変更することで発射された弾丸の出現位置を銃の中心ではなく銃口のあたりに変更できます。
弾道のぶれの範囲も設定できます。
ProjectileSpawnOffset | the offset position at which the projectile will spawn 発射体がスポーンするオフセット位置 |
DefaultProjectileDirection | in the absence of a character owner, the default direction of the projectiles キャラクター所有者がいない場合、発射物のデフォルトの方向 |
ProjectilesPerShot | the number of projectiles to spawn per shot ショットごとに生成される発射体の数 |
SpawnTransforms | a list of transforms that can be used a spawn points, instead of the ProjectileSpawnOffset. Will be ignored if left emtpy ProjectileSpawnOffset の代わりにスポーン ポイントとして使用できる変換のリスト。空のままにすると無視されます |
SpawnTransformsMode | the selected mode for spawn transforms. Sequential will go through the list sequentially, while Random will pick a random one every shot スポーン変換に選択されたモード。 Sequential はリストを順番に調べますが、Random はショットごとにランダムな 1 つを選択します。 |
Spread | the spread (in degrees) to apply randomly (or not) on each angle when spawning a projectile 発射体の生成時に各角度にランダムに(または適用せずに)適用するスプレッド(度単位) |
RotateWeaponOnSpread | whether or not the weapon should rotate to align with the spread angle 武器を回転させてスプレッド角度に合わせるかどうか |
RandomSpread | whether or not the spread should be random (if not it’ll be equally distributed) スプレッドをランダムにするかどうか (そうでない場合は均等に分散されます) |
SpawnPosition | the projectile’s spawn position 発射体のスポーン位置 ※同じグループ内の ProjectileSpawnOffset プロパティをサンプルと同じ値にすると同じ値に変化しました。 |
ObjectPooler | the object pooler used to spawn projectiles, if left empty, this component will try to find one on its game object 発射物を生成するために使用されるオブジェクト プーラー。空のままにした場合、このコンポーネントはゲーム オブジェクト上で発射物を見つけようとします。 |
SpawnFeedbacks | 変数が宣言されている ProjectileWeapon.cs でツールチップが見つかりません。 |
TestShoot(ボタン) | a button to test the shoot method |
Spread をサンプルの 10 から 100 に増やすと、狙った方向とは異なるブレた方向に射撃します。
RotateWeaponOnSpread により、ブレた方向に合わせて銃を回転させるかどうかを選択できます。
まとめ
今回は、Unity の TopDown Engine アセットのサンプル KoalaRifle を見本に、 ProjectileWeapon コンポーネントの自作とサンプルのプロパティの違いをグループ単位 (Settings, Projectiles) で変化させ、銃から発射される弾丸の出現位置や射撃方向のばらつき度合を調整しました。
これで TopDown Engine の Weapon / ProjectileWeapon コンポーネントのプロパティについては全て説明し、サンプルとの差分による効果について紹介しました。
参照サイト Thank You!
- Unity のリアルタイム開発プラットフォーム | 3D/2D、VR/AR のエンジン
- TopDown Engine | システム | Unity Asset Store
- TopDown Engine: MoreMountains.TopDownEngine.ProjectileWeapon Class Reference
- TopDown Engine の Weapon.cs, ProjectileWeapon.cs のツールチップ文章。
記事一覧 → Compota-Soft-Press
コメント