前書き
遠距離攻撃を設定するときにものによっては「敵を貫通する武器を作りたい」と考えるかもしれません。TopDonwEngineの基本は敵を貫通する武器ではないですが、少し設定を変えることで「敵を貫通する武器(弾薬)」を作ることができますので、スクリプトのロジックと合わせて設定方法の紹介をしていこうと思います。
敵を貫通しない武器
まず、敵を貫通しない武器から説明していきます。イメージとしては以下のような形になります。
敵に当たった段階で攻撃が非活性になり、敵の後ろ側にまで攻撃が行かないことを指します。
敵を貫通する武器
今度は敵を貫通する武器になります。イメージとしては以下になります。
敵に当たっても攻撃が非活性にならず、敵の後ろにも攻撃が続いていることが分かります。
どういうロジックか?
攻撃の活性・非活性については「攻撃にも体力(Helath)設定をする」ことで切り替えることができます。
通常、キャラクターに体力(Health)を設定して、体力が”0″(=死亡)判定になった場合、キャラクターを非活性にする処理がデフォルトで決まれていますが、今回はその体力が”0″(=死亡)判定になった場合、キャラクターを非活性にする処理を使って「攻撃が敵に当たった場合、体力が”0″(=死亡)にしないで攻撃を活性状態にする」ことで攻撃が止まらずにすることができます。
敵を貫通する武器はどうやって設定するのか?
設定するところはDamage On Touch にあります。
Damage On Touch
Damage Takenの”Damage Taken Every Time”、”Damage Taken Damageable”、”Damage Taken Non Damageable”を”0″に設定することで、攻撃が敵や敵以外の壁などに当たった場合に受けるダメージを”0″にすることができます。
こうすることでどうなるかというと、「攻撃が敵に当たった場合、体力が”0″(=死亡)にならずに攻撃を活性状態(常に存在する状態)にする」ということになります。
逆に敵を貫通しない武器はどうやって設定するのか?
設定するところはHealthとDamage On Touch にあります。
Health
HealthのInitial HealthとMaxinumHealthを”1″(もしくはDamageOnTouchのDamageTakenの値を同じ)にします。こうすることで、敵や壁に当たった時に受けるダメージがHealthと同じになるため「攻撃が敵に当たった場合、体力が”0″(=死亡)になり、攻撃が非活性状態」になります。
Damage On Touch
HealthのInitial HealthとMaxinumHealthと同じ値にDamage Takenの”Damage Taken Every Time”、”Damage Taken Damageable”、”Damage Taken Non Damageable”を設定します。
処理としては上記Healthで説明した内容と同様になります。
まとめ
今回は攻撃がヒットした時に敵を貫通する/しない方法紹介しました。
TopDownEngineの機能を使うことでパラメータを変更して簡単に実装ができますが、”0″から実装を組む場合は結構悩む処理なのかなと思います。
攻撃によっていろいろなバリエーションを増やすことでゲームの楽しさも増えると思いますので、ぜひ、今回紹介した方法を使っていろいろな攻撃方法を実装してみてください。
コメント