忍者ブログ

雑記帳

シムズ2のスキン、オブジェクトのダウンロード記録

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

SLOTの追加

机やコーヒーテーブルなど、物が置けるオブジェクトにはSlotというものが設定されています。
SLOTの話はこちら。
「An introduction to Slots 」 by Numenor
http://www.modthesims.info/showthread.php?t=146440

「Slot」 at simswiki
http://www.simswiki.info/wiki.php?title=SLOT

SlotにはRouting Slot、Container Slot、Target Slot の3種類あるそうです。
このうち、オブジェクトやシムを乗せられるのが、Container Slot 。
まずはこのSlotをオブジェクトに追加する方法について、調べてみました。

「Creating Working Slots for Extended Objects.」 by fisheeyes
http://www.modthesims.info/showthread.php?t=143252

見つけられたチュートリアルはこちらのみでした。(02/11/2010訂正もうひとつ見つけました><)
内容は、すでにSlotを持つオブジェクトに追加でSlotを設定するものですが、チュートリアル冒頭で紹介されているチュートリアル(占有タイル追加)の続編扱いとなっているので、読みすすめる際注意が必要です。
また後半は、シムが食事をするための皿を置くSlotの設定と、皿をテーブルに置く際の立ち位置を決めるRouting Slotの設定ですが、この覚書ではそこまではやりません。――出来ません;
とりあえず、Slotを持たないオブジェクトに「オブジェクトを置けるようにするだけ」のSlotを追加する設定から挑戦していきたいと思います。
BHAVの編集も含みますが、元からSlotを持つオブジェクトに追加Slotを設定する場合は、編集の必要はないと思います。

(02/11/2010追記)
この覚書を書き上げた後に見つけた、もう一つのSlot追加のチュートリアル。
「Adding slots」 by HugeLunatis
http://www.modthesims.info/showthread.php?t=387275
本棚に大量の飾り用Slotを追加するチュートリアルです。
画像が多くて説明も簡潔。
複数タイルオブジェクトにSlotを追加する方法にも触れられています。

上記の他に参考にした情報はこちら。
「Changing the object Placement 」 by Numenor
http://www.modthesims.info/showthread.php?t=82685
オブジェクトがどの種類のSurfaceに乗るか、設定する方法です。
SLOTのI7の設定に関連。

「Does anyone know how to add slots and routes to an object? 」
http://www.modthesims.info/showthread.php?t=97779
8番目のコメントで、SnowStorm氏がdecorative Slotを追加する方法を完結に教えてくださってます。
こちらの手順とfisheeyes氏のチュートリアルを参考にして、作業を進めます。

「Slot Tutorial Part1」 by AnoeskaB
http://www.thesimsresource.com/tutorials/view/category/sims2-objectmeshes/id/2715/
Slotの座標の設定や、Slotの角度など、具体的でとても分かりやすいです。

「The Resource Node (CRES) 」 by Numenor
http://www.modthesims.info/showthread.php?t=84487
CRES全般のお話ですが、「 PART 2 - TRANSLATIONS AND ROTATIONS 」の所が、Slotの設定に関連があります。

今回Slotを追加するのはこちら。

45868214.jpeg

クローン元が右の絵画となる、箱型の棚です。
これにSlotを1つ設定して、物が置けるようにしたいと思います。


手順は以下。

0、Slotの座標を決める
1、STR#、Instance0x90のファイルの編集
└Slot名の登録

2、SLOTの各値設定

3、CRESでSlotの座標設定
├「Edit Blocks」で「cObjectGraphNode」を追加
├追加したエントリの「Filename」にSlot名入力
└「cTransformNode」タブ内で座標設定(必要があればRotationも)

4、Parentの設定
└Parentエントリの「cTransformNode」タブ内「Child Nodes」の編集

5、BHAV編集(必要ない場合もあれば、必要ある場合も)
└「 init 」BHAVにOpcode 0x0002「My support strength := Literal 0x0032」を設定

6、おまけ
オブジェクトが壁非表示時に壁と一緒に消えない、カメラを近づけてもフェードアウトしない設定

オブジェクトPackageのバックアップをとっておきます。


0、Slotの座標を決める
オブジェクトを置きたい位置を決めます。
3Dツールで座標を調べるだけです。

例えば(x,y,z)=(0,0,0.8)は、高さが0.8で、タイルの中心にSlotが存在することになります。
これはデフォルトのテーブルと同じ設定でもあります。
Blenderだと、3Dカーソルを目的の位置において、「View」の「View Propertys...」から3Dカーソルの座標を知る事が出来ますが、他にいい方法があるかもしれません
この辺は自分が使っている3Dツールの使い方を調べて、座標を特定してみてください。
どうしても分からない場合は、ゲーム画面で「真正面」「サイド」「真上」のスクリーンショットを取ってプリントアウトし、定規を使って比率計算してだいたいの座標を求める方法もあります。

11f6f8d4.jpeg
ゲーム内での座標はこうなっているみたいです。
自分なりに調べた1タイルのサイズと一階分の高さ、大体の壁の厚みも添えておきます。
壁は2タイルにまたがってますが、1タイルに乗ってるのは厚み0.08ぶんです。
……違ってたらすみません。

追加したいSlotの数だけ座標を調べて、メモします。

1、STR#、Instance0x90のファイルの編集
ファイル名に恐らく「Bone」の文字が含まれていると思います。
無ければ、別のカスタムオブジェクトからexportしてaddします。
もしくは既存のテキストファイルをクローンして、Instanceを0x90に変えます。InstanceとGroupに注意して間違わないようにします。
addしたりクローンした場合、テキストリストに登録されているものは全て必要が無いので削除しておきます。

Slotには全て異なる名前を設定する必要があります。
追加するSlotにも名前が必要なので、新しい行を「Add」して登録していきます。
念のためにSLOTファイルを覗いて、各スロットの「I9」の値と同じ行番号は使用しないように気をつけます。「I9」は十進法で表記されているので、行番号と対応させる時は注意。

Slotの名前は、デフォルトに習って名前の前に「slot_」を付けます。

9038dc09.jpeg
こんな感じにしました。
今回テキストファイルはCloneして新しく作っています。
「0x0」行は既存のSlotが使用しているようだったので空欄にしておき、「0x1」行目から使用しました。
Commitします。


2、SLOTの各値設定
SLOTのファイルをクリックします。
「Add」を押して新しい行を加えます。
新しく加わったSlotの種類が「Container」であることを確認します。

24da9cd1.jpeg
各値の設定は右側の入力欄と各タブ内で行います。

ここで各項目に適切な値を入力していきますが、多くの項目は値の設定をどうすればいいのか分かりません。
項目の値は、基本的にデフォルトのContainer Slotの設定を調べて、書き写すことで埋めて行ってください。
ただし以下の項目だけは、自分で値を決めなければなりません。

・I7
Slotの分類です。どんなオブジェクトを乗せられるようにしたいかによって、決定します。
1  :地面・床
2  :コーヒーテーブル
3  :ダイニングテーブル(と勉強机)
4  :カウンターの上
5  :Non Standard(食事用、料理用、宿題用)
6  :シムの手
7  :シム用(椅子、ソファー、ベッド、バスタブ等)
8  :エンドテーブル
9  :カウンターの中(シンク)
10 :カウンターの下(食器洗い機、ごみ圧縮機)
11 :飾り用(暖炉の上等)
12 :ドライブウェイ
13 :ショップライフの商品棚

・S2
「2」を入力。
設定値「2」だと、Slotの位置をCRESから参照します。
設定値「0」だと、F1、F2、F3の値をXYZ座標として参照するらしいですが、一般的ではない設定みたいです。
F7はSlotに置けるオブジェクトの重さという説明もあります。S2の設定値によってF1~3の使い方が変わるのかも。

・I9
Instance0x90に登録されているSlot名の行番号を十進法で入力します。

・I10
全Slot の通し番号。Routing、Container、Targetの種類を問わず、全てのSlot の通し番号です。
十進法みたいですが、とにかく番号が重複しない事が最重要らしい。
SLOTファイルが複数ある場合でも、全てのSlotでこの番号は通しになっています。全てのSLOTファイルを見て、何番から始めたらいいのか調べます。
普通は「1」から始まっていますが、既存のSlotには「-1」なんてものが重複してあったりする場合もあります。
その場合は、「1」から数え初めて下さい。一応問題なくSlotが使えることを確認しています。


最終的に、こんな設定にしてみました。
837a0dfb.jpeg

ここではSlotの種類を「I7=3(テーブル)」に設定。
上で説明した以外の項目は、デフォルトのテーブルから値を調べて入力しています。

Commitします。

※複数タイルのオブジェクトの場合
タイルごとにSLOTファイルがあり、増設するSlotがどのタイルに属するかで設定を追加するSLOTファイルを見極める必要があります。
それぞれのSLOTファイルがどのタイルに属するかは、各OBJD内RawDataの「slot id」にてInstanceナンバーで指定されています。
各OBJDがどのタイルに属すかはこちらのチュートリアルを参照してください。
「Adding reserved floor tiles to single tile objects.」 by echo
http://www.eternal-echo.net/sims/tutorials/footprint/

3、CRESでSlotの座標設定
手順0で調べた座標を入力します。
Resource TreeからCRESを選び、Resource Listのファイルをクリック。

b24b7b1b.jpeg
まずはBlock Listに新しいエントリーを加えます。
「Edit Block」タブをクリック。
Block Listの一覧があります。
プルダウンから、「cObjectGraphNode trans=0.00;0.00;0.00,......」というのを選びます。
「Add」ボタンを押すと、一覧に新しいエントリーが加わります。
ここでは「0x4」として新たに加わりました。

0a120a64.jpeg
「Content」タブを選び、Block Listのプルダウンから先ほど加えたエントリーを選びます。
次に下の「cObjectGraphNode」タブを選びます。
「File name」に、テキストファイルで入力したslotの名前を入力します。


5705bc92.jpeg
「cTransformNode」タブをクリック。
「Translation」の枠内に、Slotの座標を入力します。

また上に置くオブジェクトの設置角度をいじりたい時は、隣の「Quaternion(クォータニオン?)」か「Rotation」もしくは「Euler Rotation(オイラー角?)」を設定します。この3つは、設定の仕方が異なるだけです。
以下、「Rotation」に関する説明です。
X、Yに0、Zに1を入力。Angleに好きな角度(単位は°)を入力すると、オブジェクトを設定した角度だけ回転させて設置することができます。
XYZで回転軸の設定、Angleで回転角度の設定をするようになっています。
XYZの設定については、MTSのSilentLucidity氏のOMSPに使われている値を参考にさせてもらった方がいいかもしれません。
同氏のOMSPを見るに、どうやら座標設定はXYZの絶対値の合計が1になるようにしないといけないようです(|X|+|Y|+|Z|=1)。

複数のスロットを加える場合は、さらに新しいエントリーを追加して、同じ要領でファイル名と座標を設定していきます。

4、Parentの設定
親(Parent)となるエントリーは、[Joint #]の文字列を含みます(#には数字が入ります)。
エントリー名を読んで、オブジェクト本体のJointをParentにします。
[Joint#]がなかったら、Practicalのエントリーを親にします。
ただし、既存のSlotやRouting Slotを子(Child)として持つエントリーがあったら、それを優先的にParentにします。

話は一つ戻るのですが、入力するSlotの座標は、Parentとの相対位置を入力することになります。
普通Parentは(x,y,z)=(0,0,0)なので、3Dツールで得た数値をシムズ2用に変換して入力すれば大丈夫です。
しかしオブジェクトが鏡等の場合、ペアレントは原点にないのでちょっとやっかいです。ゲーム画面で確認しつつ、Slot座標の微調整が必要かもしれません。


d6805478.jpeg
Parentに新たに加えたSlotのエントリをChildにする設定をします。
Block Listで、Parentにするエントリを選択。
下の「cTransformNode」タブを選択。
右の「Child Nodes」という枠内で、「add」を押して新しい行を加えます。
新しい行を選択し、「Unkown 1」に「0x0001」、「Child Index」にBlockListのIndex番号を入力します。
ここの例では、「Child Index」は「0x00000004」です。

Commitします。

5、BHAV編集(絶対必要な操作というわけではないようです)
HugeLunaticさんのチュートリアルによると、この操作はいらないようです。
ここでセーブしてゲーム内で確認し、Slotがうまく働かないようなら(特定カテゴリのオブが乗らない等)、上記までの作業でミスがないか確認したうえでBHAV編集をしてみる、といった程度でいいかもしれません。

オブジェクトがどれだけの重さのオブジェクトを乗せられるか、の設定ですが、「0x32」の値を使います。
デフォルトでよくある値みたいです。
BHAVの操作の詳細は、「BHAVに挑戦?」の覚書でやったチュートリアルを参考にしています。

Resource TreeからBHAVをクリック。
Resource Listから「Function -Init」というファイルをクリック。
0x0行から緑の矢印をたどっていき、処理が終わっている最終行を探します。
その行を選択して、「insert via true」をクリック。
新しい行が加わったら、それを選択してOpcodeに0x0002を入力。
True TargetはReturn True。False TargetはErrorにします。
Operandsの右側にある、トンカチとスパナが交差してるっぽいボタンを押してInstruction Wizardを開きます。

ed92abd1.jpeg
こんな風に設定してOKします。


84efd576.jpg
こんな感じ。
このオブジェクトの「Function - Init」は一行しかなかったので、楽でした。
もしBHAV内にすでに「support strength」の設定があったなら、そこの数値をいじって下さい。新たに行を加える必要はないと思います。

Commitします。

念のため、ファイルメニューの「Tools>Object Tools>Fix Integrity」を選び、ウィンドウが開いたらそのままOKボタンを押します。
セーブします。

最後にCRESで、Slotの設定とParentがちゃんと親子の関係になっているかHierarchyの確認をしておきます。
ここはセーブして初めて正しく更新されるようなので。
cd27eb7c.jpeg
「CRES Hierarchy」タブをクリックすると見る事が出来ます。
よければSimPEを閉じて、ゲームで動作確認です。

767cf63d.jpeg
無事オブジェクトが乗るようになりました。
BHAVをいじったので、チートでデバッグモードにして確認した方がいいかも知れません。
テスト用の近所と区画を使えば、安心して動作確認できると思います。

6、おまけ
b45a21df.jpeg
さて、オブジェクトが乗るようになったのはいいものの、クローン元は絵画です。
こんな風に壁が非表示になると、オブジェクトも壁と一緒に見えなくなります。
ところが、設置された飾りオブジェクトだけはそのまま表示されており、なんとも不自然な光景。

というわけで、壁が非表示になってもオブジェクトが消えない設定を追加します。
BHAV編集で出来ます。
先ほどの要領で、新しい行を加えます。
Opcodeは同じく0x0002。
True TargetとFalse Targetの設定も前と同じです。
Instruction Wizardで以下のように設定します。

e70b28e1.jpeg
ちなみに「Set Flag」にすると、壁が非表示になったらオブジェクトも非表示になります。

b97d414b.jpeg
前のと合わせてこんなになりました。
似たような設定で、
My 0x0028 (flag field 2) Clear Flag flag# Literal 0x0004 (Obstructs View)
というのがあります。
これは天井から下がっているオブジェクトを、カメラが近づいてもフェードアウトしないようにする設定です。

これらのBHAVも、既存のBHAV内にすでに設定があったら、そこをいじります。

Cmmitしてセーブ。
ゲーム内で確認します。

32e09fad.jpeg
消えなくなりました。
デバッグモードでもエラーはでないので、うまくいったようです。

ここまでの操作でオブジェクトが「No Pic」になってたりしたら、STR#のInstanceが間違ってたとか、CRESでParent設定をうっかり忘れちゃったとかの間違いがあると思いますので、再確認してみてください(経験より;)。

■まとめ
ここで設定したSlotは、購入モードでオブジェクトを置く事が可能になります。
電話を置けるようなSlotの種類を選べば、シムはそこに置かれた電話を使う事が出来ます。
受話器をとるアニメーションが不自然になるかもしれませんが。
しかし、シムが新聞や請求書を置いたり、置かれた新聞を再び手に取ったりは出来ません。
シムにSlotを認識させるのも、シムがSlotに物を置いたり取り上げたりするのも、BHAVが関連していて難しいようです。
その辺のお話が「An introduction to Slots 」のスレッドの2ページ目にちょっと出ていました。
PR

Comment

お名前
タイトル
E-MAIL
URL
コメント
パスワード

Trackback

この記事にトラックバックする

SimPE覚書リスト(Sims2)

■拡張対応アップデート■
├ 冷蔵庫のシーズンズ対応
├ オブジェクトのフリータイム対応
├ アパートライフのシフト機能添付
└ カスタムドアのアパート区画対応

■近所関連■
├ 家系図編集
├ 生涯願望変更
├ 瞳と肌の変更
├ シムの性別変更
└ シムを整形する(AltSimsSurgery使用)

■スキン関連■
├ 服のカテゴリ変更
├ カスタムヘアの整理
├ 職業服のロック解除
├ アクセサリーの青点滅修正
├ 同メイクの重ね張り(アクセサリ複数使用)
└ Hairリカラーの不必要な年代削除

■オブジェクト関連■
├ オブジェクト日本語化
├ Subsetの追加&Recolorable化設定
├ Repository Technique (Master&Slave Object)
├ Slotの追加
├ エフェクトの追加
├ 複数リカラーを1ファイルに
├ Allowed with Foodな飾りオブジェクト
├ GMDCの複製
├ ベッドの回復値変更(BCON編集)
└ オブジェクト制作メモ

■Food関連
├ 料理の整理(パイメニュー階層化)
├ 朝食シリアルのリカラー(カスタム料理作成基礎?)
└ 料理のメニュータイム操作

■package総合■
├ packageファイルの構造
├ Material Difinition(TXMT)をいじる
└ BHAVに挑戦?

■その他■
├ 便利メモ
├ 音楽抽出
├ 絵画や写真の抽出
├ オリジナル絵画の描かせ方
└ BodyShopで髪リカラー

シム作成の覚書(シムズ2)

■遺伝システム■
遺伝とカスタムシム1

■ボディショップでシム作成■
下準備
テンプレート選び
眉と目の編集
鼻と口の編集
顔と顎の編集

■リンク■
個性付けメイク

■シム置き場■
女性シム
男性シム

シム作成(シムズ3)

■シム置き場■
男性シム
女性シム

プロフィール

HN:
うに
性別:
非公開
自己紹介:
シムズ2、3のレビューは、上のリンクからどうぞ。
■The sims2プレイ環境
本体+キャンパス+ナイト+ショップ+ファミリー+ゴージャス+ペット+ウィンター+シーズンズ+パーティー+H&M+トラベラーズ+ティーンエイジャー+フリータイム+K&B+IKEA+アパート+M&G
■The Sims3プレイ環境
本体のみ

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

ブログ内検索

最新コメント

[01/05 Abuiship]
[12/10 ぺや]
[12/03 ぺや]
[11/25 小原沙貴]
[06/19 めい]

最新トラックバック

バーコード

Copyright © 雑記帳 : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]