Heliodor 2020/05/05 02:34

復活ポイント

いつの間にかDLsite様にてヴィータ大脱出が1万ダウンロード達成していました。
本作を購入して頂いた皆様、本当にありがとうございます。

いつの間にかと言ってももう7年も前の作品ですし、半額セールでブーストも掛かってますし、人気アニメの二次創作ですし……なんか色々ズルいような気もしますが、それでも1万本という大台は本当に嬉しいです。


今後ともヘリオドールをよろしくお願いします。



ヴィータ大脱出は現在半額セール中(唐突な宣伝)
DLsite様では半額+10%還元、FANZA様はなんと半額+20%還元というお得状態。この機会に是非どうぞ。


DLsite 販売ページへのリンク
FANZA 販売ページへのリンク


さて、今回はそんなヴィータ大脱出の話でも。

ヴィータ大脱出でユニゾンヴィータを使うと、死んでもその場で自動復活します。これ、一見単純な処理のようでいて、けっこう試行錯誤したんですよ。

まず普通に敵にやられたら、その場で復活して(ダウン状態からむくりと起き上がって)完了です。簡単です。空中で敵にやられた場合でも、着地後にダウン状態になるので、そこから起き上がって復活完了です。ここまでは良いのです。でも、もし奈落の底に落ちて死んだら?


落下死は騎士甲冑フル装備でも一発即死。でもユニゾンヴィータなら何回落ちても大丈夫!?

ヴィータ大脱出では画面外に落下するとそこで終了ですので、着地という状態にはなりません。着地後にむくりと起き上がることはできないのです。仮にできたとしてもそれは画面外での出来事ですから、意味がありません。なので、画面外に落下して死んだら落ちる前の場所まで戻すようにします。落下後に地面のトゲに当たって死んだような場合も同様で、飛び降りる前の場所まで戻せば良いわけです。
(追記:すっかり忘れてましたが、落下即死はあまりにも評判が悪かったので、アップデートで通常のヴィータでも騎士甲冑が一段階壊れて復帰するようになりました)

落ちる前の場所とか飛び降りる前の場所とか気軽に書きましたが、具体的にはどこに戻れば良いでしょうか。真っ先に思いつくのは「最後に立っていた場所」です。ヴィータには接地状態と空中状態の2つがあります。接地状態とはキャラクターが地面の上で動いている状態で、空中状態とは完全に地面から離れているときの状態を指します。どちらの状態になっているかはキャラクターの足元に地面が存在するかどうかで決まります。ヴィータが接地状態の時にだけ座標を復活ポイントとして記録しておきくようにし、これを一定時間ごとに繰り返します。すると復活座標がどんどん上書きされますが、空中状態の時は位置を記録しないため、結果的には最後に接地状態だった場所、つまり最後に地面に立っていた場所が記録されている事になります。


空中で敵に当たって落下からの即死という理不尽なピ○ゴラスイッチ。……さて、どこに復活する?

余談ですが、ヴィータのアニメにも接地アニメと空中アニメの2種類があります。接地アニメとは地面の上で動作することを前提に描いたアニメで、空中アニメとは完全に地面から離れているという想定で描いたアニメです。接地アニメのときに何らかの原因で空中状態になってしまった場合は、自動的に落下アニメに移行します。逆に、空中アニメの時に接地状態になった場合は、自動的に着地アニメに移行するようになっています。こうすると、空中で立ってしまうという事故を無くすことができます。ちなみに、想定外の出来事で空中状態になってしまった場合は落下アニメに自動的に切り替わるようになっています。例えばスライディング中に落下したときなどに起こります。

話を戻します。前述のとおり、復活するには最後に接地状態だった場所に戻せばよいわけですが、このままだと針の床みたいに立っているだけでダメージを受ける場所に戻されてしまう可能性もあります。それではマズイので接地状態かつ非ダメージ状態の場合のみ復活座標を更新するようにしました。正確には「接地状態かつ操作可能状態だった場合のみ」です。ダメージを受けていたり、ダウンして地面に横たわっていた場合も含めて、とにかく操作不能になっている時には座標を記録しないようにします。あくまでも接地状態かつ自由に操作できている場合のみ、その場所を記録します。ただ、これだけですと「無敵アイテムを取っている最中にダメージ地形を通過した」ときにも復活ポイントとして記録されてしまう場合があるため、「マップに配置されているダメージ範囲と重なっていないこと」も条件に追加します

こうしておくと、奈落に落ちて死んだ時には直前まで立っていた(接地していた)場所まで戻ります。ジャンプ中に敵に衝突して死んだときはジャンプした場所まで戻ります。地面を走ってトゲトゲ地形に突入して死んだ時は、ダメージを受ける直前の場所に戻ります。普通に地上で敵にやられた時はその場で復活です。その場合は敵の目の前で復活する事になりますが、少しの間無敵にしておけば良さそうです。

これで大丈夫?

いいえ。
長くなったので続きは次回にします。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索