■Part 2: Making the sim come
【1】
さて、BHAV編集に移ります。
ResourceTreeから、BHAVをクリック。
ResourceListのInitというファイルを右クリックして、Cloneします。
【2】
新しく出来たファイルをクリック。
チュートリアルと順番が違うんですが、忘れそうなので先にInstanceを修正しておきます。
下のResourceタブをクリックして、Instanceの値を上に並んでいる他のBHAVとかぶらない値に設定します。
設定できる値は、0x1000~0x1FFFの範囲まで。
もし同じInstanceを持つのBHAVがあると、どちらが実行されるか分からないのでよろしくないそうです。
ここでは連番として0x1002にしました。Commitします。
【3】
PluginViewに戻って。
Filenameもふさわしいものに変えておきます。
Commitします。
【4】
(1)0x0のBHAVをクリック。
(2)OpCodeの右の矢印をクリック
(3)ウィンドウが開くので、Primitivesのタブをクリック。
(4)Go to Relative Position(0x001B)を探し出してクリック。
(5)Okayを押す。
【5】
Go to Relative Positionという大まかな行動は決まりました。
しかし、より細かい情報をさらに加える必要があります。
それを設定できるのがOperands。
適切な値を適切な場所に入力することで、何をどうさせるのか、より詳しく指定することが出来ます。
まずは、全ての箱に00を入力します。×印のボタンを押してもオールゼロになるみたいですね。
上段左から3番目と4番目の箱に適当に数値を入力して、Operandsの下の説明文がどうなるか見るのも面白いです。
遊んだ後は、ぜんぶ00に戻しておきます。
【6】
上段四番目に04と入力。
これでシムは、オブジェクトの正面に行き、向かい合って立ち止まります。
False Tagetも、Return Falseに変更します。
True TargetはReturn Trueになっている事を確認します。違ってたら直します。
Commitしてセーブ。
【7】
再びTTABに戻ってきます。
先ほど作ったBHAVを新しいパイメニューと関連付けましょう。
上図のようにActionBHAVに0x1002と入力しました。右に出たBHAV名が間違いないか確認して、Commit&セーブ。
ゲームに導入して、今までの操作がうまく出来ているか確認です。
■Part 3:Simple Motive Boosts, and the Expression command
【8】
BHAVに戻ります。
Resource Listから自作BHAVファイルをクリック。
(1)0x0の箱をクリック。
(2)PluginViewの右下辺りにSpecial buttonsというのがあるので、チェック。
(3)すると下に色々出てくるので、Insert via Trueボタンを押します。
0x0と緑の矢印でつながった0x1の箱が付け加わります。
【9】
0x1のBoxをクリック。
False TargetをErrorにします。
True Targetは緑の矢印、False Tagetは赤の矢印で表されます。
そのコマンドの実行が無事終了したら、緑の矢印の先に進み、無事終わらなかったら赤の矢印の先に進みます。
False TargetがErrorになっていると、コマンドがうまくいかなかった場合、エラーを表示させます(ゲームをデバッグモードにしていた場合)。エラーログも作成されたと思います。
【10】
(1)OpCodeの右の矢印をクリック
(2)Primitivesをクリック
(3)Expression(0x0002)を選択
(4)Okayを押す。
Expressionは、ゲーム内の様々な値を読み取ったり、書き込んだり、変更したり、テストしたりできる、とても有用なOpCodeらしいです。
ここでは、シムの欲求の値をいじくります。
【11】
Operandsの右側にある「金づちとスパナが交差」していると思われるボタンを押します。
するとInteraction Wizardというウィンドウが開きます。
ほとんどのコマンドはこのWizardを持ってないそうですが、Expressionは基本的に持っているんだとか。
ここで設定をすると、それに従ってOperandsに値が入ります。もちろん値を知っているならば、Operandsに直接入力しても良いですが…。
【12】
Wizardを、次のように設定します。
Water / Hygieneは衛生もしくは植物シムの水分の欲求になります。
:=はプログラミング用語で、「次に示す値をstore(格納 ?)しなさい」という意味だそうです。
Literalは定数。0x64は十進法に直すと100。
全体を通して読むと、「シムの衛生値に100を収めなさい」つまり「シムの衛生値を100にしなさい」となる感じですかね。
ちなみに、シムの欲求値の幅は-100から100です。0だと、ちょうど緑のバーがど真ん中まである状態。
【13】
Okayを押してWizardを終了すると、ひとりでにOperandsに値が入ります。
Commitしてセーブ。
ゲーム内で動作を確かめます。
うまくいけば、次の作業に入ります。
■Part 4: Animating the sim
【13】
再び自作のBHAVを見ます。
今度はシムにアニメーションをとらせます。
0x1の箱をクリックしてInsert via Trueボタンを押し、新しい箱0x2を追加します。
0x2にアニメーションのコマンドを設定していきます。
これまでの手順同様、OpCodeにAnimate Sim(0x006A)を入れて、Operandsを上図のように入力。
……なんか赤線の部分がチュートリアルのSSと根本的に違う。
チュートリアルには「No AdultAnims~」と書いてあってアニメーションが見つからない状態になってるんですが。
【14】
とりあえず、作業を進めてみましょうか。
Text ListにInstance0x0081のテキストファイルがなかったので、SemiGlobalsからImportしてきます。
TTAB、TTAsをImportしたときと同じ手順でやります。
【15】
Importしたら、最初にGroupの値を0xFFFFFFFFに修正します。
【16】
ImportしたファイルをPluginViewで見た所。
すでにたくさんアニメーションの名前が並んでます。
とりあえず、BHAVの記述がどうなったのか見に行ってみます。
【17】
まだチュートリアルのSSと違います。
[Fallback: SemiGlobal]の文字がなくなったのは、Instance0x0081のSTR#が同package内に見つかったからでしょう。今までは同Package内に(Group0xFFFFFFFFの)0x0081のファイルがなかったので、SemiGlobalから該当ファイルを参照していたものと思われます。
しばらくはチュートリアル通りに進めてみます。
セーブして一度ファイルを閉じ、アニメーションファイルを探しにいきます。
【18】
C:/Program File/ EA Games/ザ・シムズ2/TSData/Res/Sims3D/Sims00.packageを開けます。
拡張パックで追加されたアニメーションなどは、それぞれのフォルダの同じ場所にあります。
ResourceTreeからName Mapをクリック。ResourceListのファイルをクリック。
PluginViewの下に、アニメーションファイルの名前がずらりと出てきます。
ここではチュートリアルに従って、この名前のアニメーションを探し出しました。
名前の先頭が「a」は、老年、大人、大学生、十代、「t」は十代、「c」は子ども、「e」は老年、「p」は幼児、「o」はオブジェクト用のアニメーションです。
「a2c」は「2」を「to」と読んで、「成人から子どもへのアニメーション」、「a2o」は「成人のオブジェクトに対する動作」ということになります。
ここで選んだアニメーションは、死神のバックダンサー達のフラダンスのアニメーションです。
「_anim」より前のファイル名をメモします。
【19】
再び、オブジェクトのファイルを開け、STR#のAnims-Adultの0x0000の行に、アニメーションファイルの名前を入力してCommit&セーブします。
【20】
再びBHAVの記述がどうなったのか確認。
……変わってないですね。
一度ファイルを閉じて開きなおしても、BHAVの記述は上記のまま。
しばし考えた後、ちょっとやり方を変えることにしました。
【21】
先ほどのSTR#に戻ってきました。
0x0000に入力したアニメーション名を消去。
Addボタンを押して、新しい行を加えます。
新しく出来た行0x0025に、改めてアニメーション名を入力しました。
Commitしてセーブ。
【22】
再びBHAVに戻って、Operandsの上段一番左のマスに「25」と入力。
すると、Operandsの下の説明がようやく正しくなりました。
日記1でやったチュートリアルの知識が役立ちましたね。
※追記:
実はOperandsの下に出るアニメーション名がおかしいままでも、正しく数値設定さえ出来ていればBHAVは正常に機能します。2-4の【11】で説明しています。
【23】
最終的にこんなになりました。
Commitしてセーブ。
ゲームに投入して動作確認です。
【24】
アニメーションの設定でてこずりましたが、うまくいったみたいです。
【25】
十代、老年も使えました。
ちゃんと衛生値も全快します。
子どもはちゃんと使えなくなってます。
アニメーションは別のものを設定してもいいですが、幾つかのアニメーションはうまく働かないものもあります。
チートでデバッグモードにして、これらのアニメーションをやらせようとすると、「IK Objects」というエラーが出るらしいです。
シムのとるアニメーションの中には、それと連動して動くオブジェクトのアニメーション、相手シムのアニメーションがあります。こういった種類のアニメーションは、特定のオブジェクトが対象の時などにしか正常に動かないことがあるらしいです(例:ドアを開けるシムの動作と、ドアオブジェクトのアニメーション)。
前へ / 次へ
ありがとうございます!
Re:ありがとうございます!
この記事にトラックバックする