開発資料/コンパニオン改造手引/蘇生機能追加

ねらい Edit

「コンパニオンを無敵にしない」と同様に、今度はコンパニオンの手によってプレイヤーを蘇生してもらうのが目的です。

流れ Edit

死んでしまったプレイヤーはコンパニオンの奮戦を見守って待つだけです。もしコンパニオンが敵を倒しきったら蘇生してもらえます。コンパニオンが死んでしまったら全滅となり通常通り終了です。そのときはあきらめてロードしましょう。

GG_CJE_append01.jpg

スクリプト Edit

short bOnPlayerDead
float rstTimer
begin GameMode

	;■プレイヤー死亡時。いったんResurrectした上で、Controls不可にしておく。
	if Player.GetDead == 1
		set bOnPlayerDead to 1
		Player.Resurrect 1
		DisablePlayerControls
	endif

	;■プレイヤーが死んでいて、戦闘中でなければ
	if bOnPlayerDead == 1 && IsInCombat == 0
		;演出上、少し間を空けておく
		if rstTimer < 3
			set rstTimer to rstTimer + GetSecondsPassed
		else
			set rstTimer to 0
			set bOnPlayerDead to 2
		endif
	elseif bOnPlayerDead == 2
		;会話しに来させる
		StartConversation player, GGValForceRST
	elseif bOnPlayerDead == 3
 		set bOnPlayerDead to 0

		MessageBox "あなたは手当てをしてもらい、一命を取り留めた。"

		;もう一度Resurrectした上でControls可にする。
		player.Resurrect 1
		player.EnablePlayerControls
	endif

解説 Edit

NPC蘇生とプレイヤー蘇生の違い Edit

NPCを蘇生させるのとは勝手が違っていて試行錯誤しました。いくらか挙動が危ういところがあります。
プレイヤー蘇生に関してはDeath Incを参考にしました。
Death Incで行っているのは下記のような処理です。

NPC同様、単純にプレイヤーをResurrectするだけでもいちおう復活はするのですが、死体がその場に横たわったままで操作しているキャラクターは透明になる(体を持たない)という現象が起きてしまいます。ここでもう一度Resurrectすることで正常になるようなのですが、一度死体になって横たわってしまった後では、視点がその低い位置のままになってしまうようです。

なので、

会話後に蘇生処理 Edit

上述のとおり、コンパニオンに蘇生させるといっても実は死亡後に即復活させています。なのでプレイヤーは死体ではありません。生きているキャラクターなので、その状態を利用してコンパニオンの会話対象にプレイヤーを指定することで一声かけた後に蘇生させるようにしました。

StartConversation player, GGValForceRST

会話コマンドに、会話対象のplayer、そして会話内容のトピック(GGValForceRST)を指定しています。

GGValForceRSTは新規に作成したトピックで、「しっかりして」「大丈夫?」などといった台詞を格納しています。この台詞のResult Scriptに

set GGValeria.bOnPlayerDead to 3

を指定して、会話終了のタイミングで次の処理に進むようにしてあります。

既知の問題 Edit

魔法効果が解除されてしまう問題 Edit

現象: Edit

Resurrect後に起きる大きな問題としては、全てのActiveな魔法効果が解除される現象があります。アクセサリなどの装備品、種族・星座ボーナスなど全てがリセットされてしまいます。

対策: Edit

装備品は一度外して装備し直せば大丈夫です。ボーナスについてはCharacter Generate Amuletなどを使って種族などを指定しなおせば適用されるようです。

Resurrectのキャラ飛び問題 Edit

現象: Edit

Resurrectコマンド実行後には対象キャラの位置がずれてしまうようです。大抵はちょっと移動するだけで問題無いのですが、下手すると建物にめりこんだり、異常なときには高く吹き飛んだり、別エリアまで飛ばされたりします。

対策: Edit

このへんは仕様なのか、対策があるのか良く分かりません。
まあ今回の蘇生処理自体はあくまでおまけであって、もともと死んだらリセットなわけで、ダメで元々くらいの気持ちで使ってください。

Resurrectしたのにまた倒れる Edit

現象: Edit

どういう条件で起こるのか良く分かってないのですが、歩いている途中でいきなり体が死体化してその場に倒れてしまうことがありました。視点や動作は通常のままで、ちょうど幽体離脱したかのような現象です。

対策: Edit

コンパニオン会話のその他メニューに「強制Resurrect」を設けてあります。これでもう一度Resurrectをかけてもらうと直るかもしれません。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-01-12 (日) 17:53:53