インタラクション
概要
インタラクションオブジェクトは、プレイヤーがインタラクションできるシーンオブジェクトです。プレイヤーが Interaction
レイヤーのコライダーを持ち、IInteraction
インターフェースを実装したコンポーネントを含むオブジェクトを狙うと、インタラクションのプロセスが開始されます。
アイテムボックス
アイテムボックスはマップ上に点在し、プレイヤーに武器、グレネード、弾薬、シールドパック、ヘルスパック、ジェットパックの燃料を提供します。ボックス内のアイテムは、プレイヤーによってボックスが開けられたときにスポーンされる通常のピックアップアイテムです。アイテムはアイテムボックスのプレハブで指定された確率に基づき、ランダムに選択されます。箱は時間が経つと自動的に閉じられ、クールダウンが切れるまでそれ以上開くことはできません。
ピックアップ
インタラクションアクションで拾うことができるアイテム、またはプレイヤーがピックアップボタンを押すと自動的に拾われるアイテムです。現在のFusion BRでは、2種類のピックアップがあります。アイテムボックス内のピックアップと、プレイヤーがドロップするピックアップ(武器、グレネード)です。
武器ドロップ
Fusion BRでは、プレイヤーは自分の武器を地面に落とすことがあります。ドロップは、インタラクションキー(F)を押しながら、既にあるスロットと一致する武器を拾うか、プレイヤーが死亡すると、そのプレイヤーのすべての武器がドロップされます。
ドロップが開始されると、特別な DynamicPickup
オブジェクトが生成されます。DynamicPickup
はプレイヤーがドロップできるすべてのオブジェクトのラッパーとして動作します。このオブジェクトには、ドロップに必要なセットアップ(具体的には、NetworkRigidbody
コンポーネント)が含まれています。Fusion BR の全ての武器は個別のネットワーク・オブジェクトなので、武器の GameObject 全体が DynamicPickup
を親にして、ワールドに投げ出されます。これにより、他のプレイヤーがウェポンを拾ったときに、ビジュアルや弾薬など、ウェポンの状態など、前の所有者のプロパティを保持することができます。
武器は IDynamicPickupProvider
インターフェースを通して DynamicPickup
に重要な情報を提供します。例えば、インタラクションUIに使用される名前や説明、正しいリジッドボディの動作を保証するためにドロップの前に有効にする武器のコライダなどです。
C#
public interface IDynamicPickupProvider
{
public string Name { get; }
public string Description { get; }
public Transform InterpolationTarget { get; }
public Collider Collider { get; }
public float DespawnTime { get; }
}
新しい所有者が武器を手にすると、単に DynamicPickup
から武器オブジェクトを解凍し、その武器を自分の武器リストに追加し、その武器に入力権限を割り当てるだけです。
足音
足音は、AgentFootsteps
コンポーネントによって処理され、完全に計算されます(tick accurate animationsアドオンでは、アニメーションイベントには対応していません)。足の変形位置の変化は、足が実際に地面に触れたかどうかを検出するために単純にチェックされます。タッチが検出されると、小さなレイキャストが発射され、サーフェスに関する情報が取得されます。サーフェスコライダーゲームオブジェクトに割り当てられたUnityタグは、異なるサーフェスタイプを区別するために使用されます。
C#
public class FootstepSetup : ScriptableObject
{
[SerializeField]
private AudioSetup _fallbackWalkSound;
[SerializeField]
private AudioSetup _fallbackRunSound;
[SerializeField]
private FootstepData[] _footsteps;
[Serializable]
private class FootstepData
{
public string Tag;
public AudioSetup SoundWalk;
public AudioSetup SoundRun;
}
}
各エージェントには、各サーフェスで再生されるサウンドを指定する足音のセットアップを割り当てることができます。足音の設定には、歩いたり走ったりするときのバリエーションも含まれているので、移動速度に応じて異なる音や音量を実現できます。