死体を解体する 3

1床の血が浮く。
2二人目を解体できない。

という問題が出ています。

まずは、床の血が浮く…ですが、血をほどよい高さに貼り付けるには、Z位置を調整します。
ところが、何度 SetPos Z しても、位置が変わりません。
「何でだろう?」と思っていたのですが、スタティックオブジェクトはそういう仕様だったのを忘れていました。
データ上は移動しているようなんですが、何故かオブジェクトは最初に生成したその場所に描画され続けるというバグなのか仕様なのか分からない挙動をします。

ということは、生成する前に場所を決めておかないと行けません。
また、床の血は死んでいるNPCに対してPlaceAtMeしているだけで、PlaceAtMeでは床の血のZ位置を指定できません。
あらかじめNPCのZ位置を変更してから、PlaceAtMeをするしかないようです。

120311_1.jpg120311_2.jpg

もうひとつ必要な処理は、PlaceAtMeする前にNPCの角度を0にセットしておきます(Z軸はいじらなくても良いかも)。
これをやらないと、床の血が変な角度で生成されてしまいます。
床の血が描画される角度も、生成主であるNPCの角度が影響します。

120311_3.jpg
120311_4.jpg

修正を行ったら、何故か二人目を解体できない不具合もなくなりました。
意味不明…。

更に問題が発生。

血を床に貼り付けても違和感が出ないように、平らで広い床でないと解体できない仕様です。
判定方法は簡単で、プレイヤーのZ位置と解体するNPCのZ位置を比較して、ある程度の高低差までならOKという処理を入れてます。
起伏の激しい地面では解体できません。
処理が大雑把すぎるので、もうちょっと判定ポイントを増やすかも知れません。

机の上に転がっているNPCで試したところ、解体できてしまいました。
判定処理がおかしいので修正する必要があります。

また、1つ気になる点が出ました。

NPCが持ってるアイテムを残すか残さないか…。
残す場合は、強化版死霊作成魔法でやったのと同じ処理を組み込む必要があります。
流用すればいいので組み込みは簡単なんですが、ちょっと保留します。
バージョンアップで対応かな…。
 

死体を解体する 2

死体を解体する 1の続き。

もうひとつ、死体を解体する際に、数時間待機しなきゃいけない…という機能を入れたかったんですが、めんどくさそうなので保留。

やり方としては、勝手に待機メニューが開いて、勝手に時間が決まって、勝手に待機ボタンが押された状態になる…。

TapControl, SetMenuFloatValue, ClickMenuButton でいけそうですが、対応は先送りにします。
今後のバージョンで追加するかも?的な感じのアレです。

現状出ている問題。

・床の血が浮いてる。
・二人目を解体できない(Bookshelfが怪しい)。

120312.jpg
 

死体を解体する 1

というと物々しい感じがしますが…。
単にNPCの死体から骨や肉や皮が取れるようになるMODです。
グロ描写はありません。

死霊術師ごっこでも触れているように、死体を解体するだけのMODが欲しいのですが、見つかりません。
基本的に死霊術MODの機能のひとつとして組み込まれてしまっているのを見ます。
それだと「死霊術の機能はいらねーから!」という場合に無駄が多いです。

ちょこちょこスクリプトだけ書いたりしてはいたんですが、あまり気が乗らないというか…。
最近、気が変わって気が乗ってきたので、この際、きちんと作ろうと。

で、まず、MODの名前を決めないといけないんですが、人間の死体を解体する場合の「解体」って、英語で何て言うの?というところがハッキリしません。

discompose? disassemble? dismantle? dissect?

あ、cannibalize っていう素敵な動詞があったw

カニバリズムを追加するMODは、そのものズバリな名前のものがあります。
あくまで目的は死体を解体することで、食べるのが目的ではないです。

cannibalizeって単語を使うとカニバリズムと勘違いされそうなので、別の単語がいいなぁ…こう、作業的に、淡々と、食肉工場の動物のように扱うという意味が強いもの…。
slaughterという単語もあるんですが、これは食肉用に解体するという意味なので不適当。
学術的な解剖とも違うのでdissectも違う。
など、色々考えて、disassembleを選択しました。

やりたい事はこんな感じです。

1とりあえずNPCの死体のみ(将来誰かクリーチャー版作ってくれないかな)
2Essential(不死)属性のNPCは除外
3しゃがんでアクティベート
4ナイフを装備してないとダメ
5各種骨、皮、心臓、血が採れる
6入手できるかどうかはランダム
7平らな床じゃないとダメ
8近くに人がいると殺人と疑われれる
9解体すると床に血が着く

死体をインベントリに突っ込むMODがありますが、それらと併用すれば、より快適な解体ライフが送れるはずです。

CSを開いて、コツコツ書いたスクリプトを適用して実行。

しゃがんでNPCの死体をアクティベート。
NPCのインベントリを閉じると、「解体しますか?はい・いいえ」という選択肢が表示されます。

120314_1.jpg

「いいえ」しか選べないw
死霊の神様のお許しが貰えないようです。
 

Bottomless Cavernいじり 2

CSで色々いじったりしてみたBottomless Cavernですが、問題の場所以外にも、他の場所でも多数のCTDが起きました。
MODなしの状態でプレイしても変わらなかったため、MODが原因ではなく、私の環境の問題…という結論に辿り着きました。
私の環境では進行不可能と判断し、非常に残念ですが、これ以上プレイすることは諦めました。

orz

Bottomless Cavern by David Brasher
http://oblivion.nexusmods.com/mods/24250

もし「プレイできた。」という方がおられましたら、どんな環境でプレイされているか詳しく教えていただけると助かります。
Steam版かどうか、使用MOD、MODの管理ツール(OBMMかWryeBashかなど)、どこまでプレイしたか、などなど…。
 

Bottomless Cavern いじり

確定CTDが発生したのでメモ

フロア1の一番奥にいるNPC "Bonewalker" Releth

戦闘を始めるとCTDします。
こっそり近寄って戦闘を始める場合は大丈夫なようです。

このNPCを非表示にすると落ちません。
念のため、セル上に配置されているNPCを一度削除し、再度、配置し直しましたが、変わりませんでした。

Nexusのコメントを見ても同じ報告はありません。
トラップチェストでCTDするという報告はある模様。

可能性として考えられるのは

1私の環境(PC環境や導入MOD)と相性が悪い。
2私のMODがきっかけを作ってる(他の方では起きないようなので)。
3このセルとこのNPCの組み合わせで起きる。
4このNPCにだけ原因がある。

1という話になると、どうしようもないです。

2なら、まだ改善の余地はあるので、試しに私のMODを全て外してプレイ→CTD
外したと言っても、MODのチェックを外しただけでESPファイルはDataフォルダの中にあります。

もし、このセルも影響しているなら、別のセルにこのNPCを配置してみれば、このNPCだけに原因があるのかどうか分かるはずです。
TestingHallに配置しました。

120325_1.jpg

確認したところ、CTDが発生したので、このNPCが原因です。

では、このNPCの何が悪いんでしょうか?

このMODは他にも多数の山賊を新規追加しています。
このNPCと遭遇する前に、それらの山賊と遭遇するんですが、CTDは起きていません。
このMODによって追加された全てのNPCが悪いというわけではないようです。

ステータス、ファクション、アニメーション、フェイス、AI、Dialog、コンバットスタイルなど、怪しい点は確認できません。
コンバットスタイルはVanillaの流用です。
戦闘が始まらないとCTDは起きないので、戦闘に関係するデータに問題があります。
AIかDialogか魔法くらいですが、前述の2つは候補から外れます。

そうなると、NPCが持っている鍵か、BCBonewalkerCurseという魔法が残ります。
鍵はこのNPCと遭遇する前に既に入手しているため、鍵が原因だとは考えにくい。
それから、鍵が原因なら、戦闘をする前のNPCをロードした段階でCTDするか、所持品をチェックした時にCTDしそうです。

魔法でしょうか?

魔法を外して確認→CTD

詰みました…。
戦闘をしなければCTDは起きないので、該当NPCのヘルスを0にして死体として配置し、CTDを回避することにしました。

120325_2.jpg
 
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。