ヘルスコントローラー

キャラクターに付与されるコンポーネントは、HP を管理するために「Health Controller」 (vHealthController) クラスから派生されている。

インスペクター

デバッグ用フィールド
  • Is Dead死亡しているかどうかを真偽で表示する
  • Current Health現在の HP をゲージで表示する
プロパティ
  • Is Immortal不死にする (デフォルト無効)
  • Fill Health On Start開始時に HP を全快する (デフォルト有効)
  • Max Health最大 HP (デフォルト100)
  • Health Recovery回復量/時間経過で徐々に回復する量 (デフォルト0.0)
  • Health Recovery Delay被ダメージ後に回復を遅延させる時間 (単位秒/デフォルト0.0)
  • Death By死亡時のアニメーション処理を選択する
    • Animationアニメーション
    • Animation with Ragdollラグドールありのアニメーション
    • Ragdollラグドール
  • Remove Components After Die死亡後にコンポーネントを除去する/死体を残す場合に不要なコンポーネントを除去するために用いる
イベント
  • On Start Receive Damage被ダメージ計算の開始時に呼び出される
  • On Receive Damage被ダメージ処理の完了後に呼び出される
  • On Dead死亡時に呼び出される
  • On Change HealthHP が変化した場合に呼び出される
  • On Reset HealthHP がリセットされた場合に呼び出される

API

HP やダメージの処理をスクリプトから操作する場合、「Health Controller」 (vHealthController) クラスに実装された API を使用する。

プロパティ
  • currentHealth
  • isDead
  • canRecoveryHealth
メソッド
  • AddHealthHP を指定した値だけ増減する
  • ChangeHealthHP を指定した値に変更する
  • ResetHealth(float)キャラクターを指定した HP で蘇生させる
  • ResetHealth()HP を全快させる/キャラクターを蘇生させる
  • ChangeMaxHealth最大 HP を指定した値だけ増減する
  • SetHealthRecovery回復量を設定する
  • TakeDamegeダメージを受ける

ダメージパーティクルを設定する

ダメージを受けた際にエフェクトとして発動させるパーティクルを設定するには、キャラクターに「Hit Damage Particle」 (vHitDamageParticle) コンポーネントを付与する。

  • Hit Damage Particle (vHitDamageParticle)
設定
  • Default Damage Effectデフォルトのエフェクトとして使用するパーティクルを含むプレハブを指定する。
  • Custom Damage Effects追加でエフェクトを指定するリスト
    • Damage Typeダメージの種類
    • Effect Prefabエフェクトとして使用するパーティクルを含むプレハブ
    • Rotate to Hit Direction
    • Attach in Receiver
    • On Trigger Effectエフェクトの発動に伴って呼び出すハンドラ

参考:

custom Hit Damage Particle – Invector Forum

Hit Damage Particle doesn’t instantiate at the right spot – Invector Forum

ダメージオブジェクトを作成する

接触したキャラクターにダメージを与えるオブジェクトを作成するには、オブジェクトに「Object Damage」 (vObjectDamage) コンポーネントを付与する。

  • Object Damage (vObjectDamage)
設定
  • Damage Optionsダメージオプションを指定する
  • Override Damage Senderキャラクターに持たせる場合に、キャラクターを指定する (デフォルトNone)
  • Layer To Collide衝突レイヤーを指定する (デフォルトNothing)
  • Tags衝突対象のタグを指定する (デフォルトNothing)
  • Continuous Damage継続してダメージを与える (デフォルト無効)
  • Damage Frequency継続してダメージを与える際のダメージ頻度 (単位秒/デフォルト0.5)
  • Collision Method衝突を判定するイベント
    • On Trigger Enterトリガー
    • On Collision Enter剛体
    • On Particle Collisionパーティクル
  • Particle衝突を判定するパーティクル/「On Particle Collision」を使用する際に自動的に設定される
  • Limit Particle Collision Eventパーティクルの衝突イベントを制限する (デフォルト無効)
  • Max Particle Collision Event1フレームに処理するパーティクル衝突イベントの最大数 (デフォルト1)

ダメージオプション (Damage Options)

ダメージに共通する項目の設定を行う。

設定
  • Damage Typeダメージの種類
  • Damage Valueダメージの量 (デフォルト15)
  • Stamina Block Costブロックした場合のスタミナ消費 (デフォルト5)
  • Stamina Recovery Delayスタミナ回復開始までの遅延時間 (デフォルト1)
  • Ignore Defense防御不可能にする (デフォルト無効)
  • Active Ragdollラグドール状態にする (デフォルト無効)
  • Reaction ID被ダメージモーションを指定する (-1 の場合には被ダメージモーションが発動しない/デフォルト0)
  • Recoil IDブロックされた場合の反発モーションを指定する (デフォルト0)

ラグドール (Ragdoll)

使い方
  1. ヒエラルキーでキャラクターを選択し、アクティブにする。
  2. メニューから「Invector > Basic Locomotion > Components > Ragdoll」を選択し、「Create Ragdoll」ウィンドウを開く。
  3. ボーンが適切に割り当てられていることを確認し、「Create」ボタンを押してラグドールを生成する。

動画:

How to Set Up Ragdoll

被ダメージ部位を設定する (Body Part)

参考:

head shot animations – Invector Forum

attacking body parts – Invector Forum

changing damage to enemies for different parts of the body – Invector Forum

BodyPart health – Invector Forum

achieving detachable limbs method? – Invector Forum

コンポーネント

  • Health Controller (vHealthController)
  • Hit Damage Particle (vHitDamageParticle)
  • Object Damage (vObjectDamage)
  • Ragdoll System (vRagdollSystem)ラグドール
  • Damage Receiver (vDamageReceiver)部位別の被ダメージ処理を実装する
  • Hit Box (vHitBox)近接格闘用に当たり判定を設定する
  • Hit Effects (vHitEffecs)近接格闘用にヒットエフェクトを設定する

クラス

  • vDamageダメージオプションのクラス (Damage Options)

サンプル

プレハブ
  • Spike Group (SpikeGroup.prefab)刺突トラップ
  • Toxic Area (ToxicArea.prefab)毒エリア
記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。

Protected by reCAPTCHA