最後に、Guardian BHAVを作成します。
■Part 7: Adding a guard function
体力が十分あるシムでベッドをクリックしても、「寝る」という選択肢は出てきません。
女性シムは小便器をクリックすることも出来ません。
TTABで、Flagsにチェックを入れることによって、「老年」「成人」「十代」「ゲスト」などパイメニューを使用できるシムを特定することが出来ました。
しかしシムの体力や性別など、より細かくパイメニューが使える条件を設定したい場合、BHAVによってそれを行います。
このBHAVは「Guard」と呼ばれます。
【1】
Guardian BHAVを作ります。
(1)適当なBHAVをCloneします。InitというBHAVは中身が0x0しかないので、後でカスタマイズしやすいです。
(2)新しく出来たファイルをクリック
(3)Filenameを変更します。
【2】
Resourceタブをクリックして、忘れずにInstanceも他のBHAVとかぶらないように変更します。
Groupもちゃんと0xFFFFFFFFになってるか、確認しておきます。
【3】
さて、BHAVを変更します。
Opcodeに0x0002(Expression)を入力。
Instruction Wizardを開き、上図のように設定します。0x0032は十進法で50です。
「空腹値が50以上ですか?」という条件文になります。
【4】
False TargetをReturn Falseにします。
シムの空腹値が50以上あった場合、緑の矢印の先であるTrueに進み、パイメニューを表示させます。
50以下だった場合は赤の矢印の先であるFalseに進み、パイメニューを表示させません。
Commitしてセーブします。
これでGuard BHAVができました。
【5】
早速設定しましょう。
TTABを開いて、My New Interactionをクリック。
Guardian BHAVの所に、0x1003を入力。右のBHAV名が正しいかどうか確認。
OKならばCommitしてセーブ。
ゲームに導入して動作確認です。
【6】
さて、空腹が減っている状態で、絵をクリックしてみました。
パイメニューが出ていませんね。
次に、スナックを食べてもらって少し空腹を回復させてから絵をクリックしてみました。
パイメニューが出てきました!
空腹値50以上って、結構お腹が一杯になった状態なんですね。
カスタマイズ成功です!
今回のGuard BHAVは一行のみの簡単なものでしたが、もっと長いBHAVにしても構いません。
矢印の行き先が「T」であればパイメニューが表示され、「F」であれば表示されない、ということだけ覚えておけばOKみたいです。
ここで再び練習問題が出ています。
「便意が低い男性シムだけにメニューを表示させるGuard BHAVを作ってみましょう」
一通りチュートリアルを終えたので、練習問題に挑戦してみます。
まずはPart5で保留にしていた「シムの性別を尋ねる条件文」を作成してみます。
■Challenge !!
【7】
さっきのGuard BHAVを開きます。
0x0で、OpCodeを0x0002(Expression)に設定。
Instruction Wizardを開いて色々な項目を探し、最終的にこんな感じに設定しました。
Gender(0=male/1=female)とあるので、直定数(Literal)として0x0000を設定すればいいことがなんとなく分かります。
Commit&セーブ。
この設定が正しいかどうか、ゲームで確認してみましょう。
【8】
はい。
見事に男性のみが「My New Interaction」のメニューを利用できるようになっています。
設定は正しかったのでしょうか。うまくいったから正しかったんでしょうけど。
……不安なので、同じ様に性別によって使用が制限されるデフォルトオブジェクトをクローンで抽出し、BHAVを覗いてみることにしました。
【9】
小便器をクローンで取り出しました。
Guard BHAVを覗いてみます。Guard BHAVは基本的にTESTという文字がFilenameに含まれているみたいなので、すぐ分かります。
設定は正しかったようです。
こんな感じでデフォルトオブジェクトのBHAVを見ながら、新しいコマンドを覚えていけそうですね。
sims2wikiの検索窓にOpCodeナンバーを入力することで、該当OpCodeの説明が得られる場合もあります。
【10】
Guard BHAVに、「便意が低い男性シムのみ使える」設定を作ってみました。
0x1で「Bladder<-50」の条件を加えています。-50は16進法だと0xFFCEと表記されるようです。
ゲームに導入して確かめると、うまく動作してくれました。
【11】
最後に。
日記2-2の【20】でちょっとひっかかった事項について、再確認していきます。
アニメーションを設定する際、このようにOperandsの下の記述が、STR#に登録したアニメーションと食い違うハプニングがありました。
チュートリアルのスレッドを読むと、「STR#とOperandsの設定さえ正しければ、SimPEの言う事は気にせずにCommit&セーブしてゲーム内で動作確認してごらん」というアドバイスが出ていました。
上の画像は、チュートリアルと一緒に配布されているお手本オブジェクトのBHAVです。
【12】
同じく、お手本のSTR#0x81です。
OperandsとSTR#の設定は、当然のごとく正しいです。
このお手本をゲームに入れて動作確認した所、正常に機能しました。
どうやら、SimPEのOperandsの翻訳がおかしかったようです。
設定さえ正しければ、自信を持ってゲーム内で確認してみろって事でしょうか。
BHAVいじりは、時間と忍耐だけでなく大胆さと勇気も必要みたいですね…(゚ー゚;
もちろん私が今回とった方法も間違いではないと思いますし、Operandsの設定とSimPEのOperands翻訳が一致している点で、初心者向けかもしれません。
このチュートリアルに挑戦する際は、お好みの方法を選んでみてください。
というわけで、今回のチュートリアル挑戦はここで終了です。
簡単な回復オブジェクトやアニメーションMODであれば、危なげなく作れそうですね。
前へ
感謝ですv
Re:感謝ですv
この記事にトラックバックする