シムズ3オブジェクト作成備忘録: 卓上鏡編(クローン元はフロアミラーのまま装飾オブにする)

絶対忘れると思うので、忘れないうちに記録しておきます。
他の形の卓上鏡を作りたいとき、ペット発売時のような作り直しが迫られるかもしれないときのために。
テスト時間が少ないのでまだ不具合は見つかってませんが、正直私自身よく解らずいじっているので;、間違ってたらご指摘いただけるととてもありがたいです!(完成していないのに書く一番の目的はは…;

問題と目的

クローン元をフロアミラーとして作成し、SlotPlacementFlags を装飾オブジェクトと同じに変え、机の上に載るように設定しました。
これで机の上に載せることは出来たものの、鏡コマンド(「着飾る」など)を使用しようとすると「机が邪魔!」とシムに言われてしまいました(下記画像左)
机の一番手前に置くと、鏡機能を使えたものの、シムが宙に浮いてしまう結果に…(下記画像右)
机の上に鏡を置いて使ってみた結果

下手にメニューが出てくると、鏡として使えるのだと思ってしまいますよね。でも実は使えないので、シムが手を振って使えんと訴えたらイラッとすること間違いなしですしw、頂いたご意見を参考に、やはり装飾オブジェクトとして作ることにしました。

そこで適当な装飾オブジェクトをクローンし、s3pe でメッシュをインポートして、その package を TSRWorkshop でさらにインポートして(Milkshape 持ってないためにこうせざるを得ませんw)、鏡面に当たる group の Shader を Flat mirror に変えてみました。
鏡面がおかしい図
しかしゲームに入れると、画像のように狙い通りの描写になってくれませんでした。数値とかはフロアミラーと同じに変更したんですけど。

GardenBreeze の pocciさんが教えてくださったのですが(いつもありがとうございます…!)、鏡面が床と垂直になってないとうまくいかないようで。でも垂直にするとちょっと不自然…。
クローン元がフロアミラーの package だとこの問題が発生しなかったので、こちらのパイメニューを変える方向に持っていくことにしました。

目次

必須ツール

s3peTSR Workshop

今回は s3pe を使っての方法です。
[追記] 以下の説明にある一部の機能は Extras for S3PE も入れていないと使えませんのでご注意ください。

TSR Workshop にも相当する設定箇所があるはずですが、一部見当たらなかったので、本格的にいじりたい場合は s3pe を使ったほうがいいかもしれません。
TSR Workshop も補助的に使いますけどw

TSR Workshop を使わない場合のその他必要ツールは、Object Creation start-to-finish tutorialTools Needed & Set-up Instructions が参考になります!

ここではオブジェクト作成方法を細かく説明しませんので、上記チュートリアル等をご覧ください。

簡易(すぎる)作成フロー

  1. s3oc でフロアミラー(スタンドミラー?)と装飾オブジェクトをクローンします。
    クローンするのは MirrorFloorModerate と SculptureAtriumFern
    今回は「リフレクティネイター」と「シダの番人デラックス!」を使用しました。
    卓上鏡にするのは、フロアミラーのほうです。
    植物はパイメニューを「眺める」に変えるために参考用に使うだけです。

  2. s3pe でフロアミラーのメッシュ入れ替え。
  3. TextureTweaker3 でテクスチャ(Mask、Multiplier、Overlay、Specular、パターン)の設定。
  4. s3pe で OBJD、OBJK、FTPT、VPXY を編集。

この記事では4番目を詳しくメモっていきます!
※テクスチャは後でもいいですが、メッシュの入れ替えは終えていること前提で話を進めています。

目次へ

OBJD の編集(基本パラメーターの変更)

OBJD

Defines the basic parameters of an object such as price, and buy/build mode sort flags, and links to additional resources.

価格やカタログの表示フラグ、追加リソースへの関連付けなどのオブジェクトの基本パラメーターを定義する。

via Sims 3:0x319E4F1D @ Sims Wiki

とまあ、私のテキトー訳があってるかはさておいてw、オブジェクトの基本データが入ってるみたいです。

編集画面の出し方

OBJD 編集画面の出し方
「Tag」が「OBJD」と書かれた項目を選択し、下の画面の「Grid」をクリック。

オブジェクトを机の上に載せられるようにする

参考にしたページ: Changing placement of objects @ MTS

編集前の SlotPlacementFlags の値は 0x00040001
では卓上鏡(クローンしたフロアミラー)の Data Grid を開きます。
ここで変更する箇所は SlotPlacementFlags です。
左の三角をクリックすると、32行ほど項目がずらーと出てくるのですが、編集前は [00] None と [12] Functional だけ True となっています。

これらを以下のように変更します。

  • [00] None: False
  • [12] Functional: False
  • [03] Small: True
  • [1D] FullRotation: True

これで SlotPlacementFlags が 0x20000008 に変わりました。
「シダの番人デラックス!」のような、こういう机の上にたくさん置けるタイプの装飾オブの設定と同じ値です。

カタログに表示されるオブジェクトの環境値などを変更する

「楽しさ:3」「環境:4」「+魅力」クローン元の鏡の場合、カタログには「楽しさ」「環境」「魅力」が上がると表示されています。
あとでパイメニューを「眺める」に変えた後、そのままにしておいたら詐欺になってしまいますので、変えておきますw

変更箇所は TopicRatings です。
編集前の TopicRatings
フロアミラーのデフォルト値は画像のようになっています。これらを以下のように変更します。

  • TopicRating [0]
        Topic: 0x00000001 (Environment)
        Rating: 0x00000004

  • TopicRating [1]
        Topic: 0x00000000 (EndOfTopics)
        Rating: 0x00000000

  • TopicRating [2]
        Topic: 0x00000000 (EndOfTopics)
        Rating: 0x00000000

環境値4は多すぎかなーと思ったので、実際には 0x00000002 にしてみました。
16進数で 0x00000001 ~ 0x0000000A の好きな値を入れればいいようなので、ここはお好きに♪

ちなみに 0x0000000A が 10進数(普段使う数え方)での 10 に当たります。0x0000000C 以上の値を入れると、カタログには表示されるみたいですが、実際に上がることはないようですw

0x0000000B は Topic で設定した値に+マークが付くものみたいです。
鏡でいう「+魅力」ですね。なので、Topic を環境や欲求以外に設定しないと機能しないと思います。

目次へ

OBJK の編集(パイメニューの変更)

OBJK

Identifies what kind of object this is and what its behaviour is.

これがどんな種類のオブジェクトなのか、それの動作はどれに当たるのかを識別する。

via Sims 3:0x02DC343F @ Sims Wiki

パイメニューの変更は MOD 制作の領分ですよね…。
というわけで、Tutorial:Sims 3 Object Modding をざっと読んでみると、ここで自作したスクリプトを OBJK で読み込んでいるみたいだったので、OBJK を編集すればいいんじゃない?! と思いました。

スクリプトを自作するまでの技術はないので、最初にクローンしておいた装飾オブジェクトを利用します!
このスクリプトを自作し始めたらきっとそれは オブジェクト MOD になりますね。C# 出来る人は是非!w

編集画面の出し方

OBJK 編集画面の出し方
「Tag」が「OBJK」と書かれた項目を選択し、右クリック。現れたメニューの中から「Edit OBJK」をクリック。

クローンした装飾オブジェクトを開く

「シダの番人デラックス!」の OBJKまず、「シダの番人デラックス!」の OBJK の内容を見てみます。
前述のチュートリアルでは、Script の文字列を自作スクリプトの名前に変えていましたので、ここでオブジェクトの動作を指定しているみたいですね。

この文字列をコピーして、適当にメモ帳などを開いて貼り付けておきます:
Sims3.Gameplay.Objects.Decorations.Mimics.SculptureAtriumFern

そして Component 列のどの項目にチェックが入っているのかもメモっておきます。
この画面をキャプチャーに撮っておくと楽ですね!

卓上鏡ファイル側の編集

編集前のクローン元がフロアミラーの OBJK 編集後の OBJK
同じく、OBJK の編集画面を開きます。
Script の文字列は、Sims3.Gameplay.Objects.Decorations.Mimics.MirrorFloorModerate となっていますね。
これを先ほどメモ帳に貼り付けた文字列に変更します。

次に Component を見てみると、装飾オブジェクトと違って Animation にチェックが入っています。
名前からしてオブジェクトがアニメイト出来るかどうかの設定みたい(?)ですけど、装飾オブジェクトに倣ってチェックを外しました
タンスみたいに、引き出しを開いたり出来るオブジェクトでオンになってるんじゃないかと思うのですがどうなんでしょう。でもフロアミラー自身は動かないので、FTPT が2つあるオブジェクトはオンになってるのかもしれません。まあ、ぶっちゃけさっぱり解りませんw

OBJK の編集は以上です。

目次へ

一旦テストしてみる

ここまで出来たところで、ゲームに入れてみますと――

  • 机の上に載せられるようになった。
  • パイメニューが「眺める」だけになった。
    パイメニューの変遷

との変化が見られます!
「眺める」を指示してみると、ちゃんとその動きもしてくれました。
これで完成! としてもいいのですが、気になる点がまだ残っています。

机の上に載せられるようになったものの、実は1つしか置けないのです…!
小さな卓上鏡なのに、エンドテーブル上には1つしか置けない図
こんなに小さいオブジェクトなのにねうー

フロアミラーをエンドテーブル上に載せたが、1つしか置けない図
このようにメッシュをフロアミラーのままで見ると、理解しやすいはず。
メッシュ自体は小さくなりましたけど、このオブジェクトが持つ大きさは、元のフロアミラーのまま変更されていません。見た目に反して、ゲームシステムは元のフロアミラーの大きさだと解釈しちゃっているのです。

というわけで、オブジェクトの境界も指定しておきましょう。

目次へ


オブジェクトの境界を指定する

参考にしたページ: [Tutorial] Changing an Objects Footprint @ MTS

このチュートリアルの内容をあんまり理解できていませんがw、これによると FTPTVPXYRSLT_RIG の4つを編集するようです。ですが、FTPT と VPXY だけでも意図通りになったので、とりあえずその2つだけでいいんじゃないかな? と思いますあはは…;

RSLT はスロットの設定ファイルなんですけど、Blender 2.63 TS3 Slot Editor Updated 7-8-2012 を使っていじってみるも、s3pe で取り込むとエラーが出ているようなので無視することにしたんです;(試しに Blender でいじらずにファイルをエクスポートした後、Blender に再びインポートしようとしてもエラーが出て取り込めなくなるので、バグがあるのかも…? 机のスロット設定いじれないのでどうしようかと悩み中…。TSRW でいじるしかないかな…。[追記] TSRW でスロット設定しました

_RIG は Sims Wiki で見ても、何を司っているのか判らなかったので無視w ボーンの設定ファイル?

[_RIG について追記] アニメーションさせなくてもボーンって必要らしい? という感じでよく解ってないんですけど、スロットにも関係していることが判りました。RSLT だけ変更してもスロットの位置は更新されず、_RIG も同じように変更したらスロットの位置が変わったので。
とりあえず RSLT と _RIG はスロット関係と覚えておきますw

Bounding Box の値を調べる

3D ソフトでメッシュを開き、XYZ それぞれの軸で、中心座標(0,0)から一番距離の遠い点2つの座標を出せばいいようです。
↓図書いてみた。言いたいことなんとなく感じ取っていただければ幸い…!
X軸の Bounding Box の最小値と最大値を出す例
チュートリアルでは Milkshape が使われていて、「Model Information」なるもので簡単に確認できるみたいです。

この記事を書くにあたってチュートリアル読み返してなんとなく理解しましたが、実際の設定当時は手動での出し方がよく解らなかったので、私は TSR Workshop を使いましたw

TSR Workshop を使って Bounding Box の値を調べる

TSRW の Mesh タブで見るべき所

  1. Create New Project → New import から、卓上鏡の package ファイルを取り込みます。
    保存しないので、Project Name はテキトウで OK。

  2. 「Mesh」タブをクリックし、本体となる Group の Extra → Boundingbox を開きます(画像参照)
    上から、最小値 XYZ、最大値 XYZ となっています。これらをメモっておきます。これもキャプチャーしたほうが楽かもしれませんw

TSR Workshop を閉じ、s3pe に戻ります。
TSRW だと FTPT の設定をメッシュから自動で入力してくれるので、このままこちらで作成を続けてもいいかも知れないですけどね。その場合、Project Name はきちんと付けたほうがいいですw

画像のは実際に私が作った卓上鏡なんですけど、Y の最小値がおかしいですよねはは…; E とハイフンが入っていることもおかしいけど、-3.なんぼって小さすぎるような…。目算で位置を動かしたとしても、普通 0 に近くなるはず…。ま、いっか。

目次へ

FTPT の編集

FTPT

Model Footprint

詳しくは Sims 3:0xD382BF57 @ Sims Wiki

足跡??? たぶんオブジェクト掴んだときに出る緑の四角のことかな? と勝手に思ってたんですけど、これ書くにあたって「フットプリント」と片仮名で検索したら出てきましたw
どうも装置とかを床や机の上に置いたときの設置面積のことだそう。
うん、以下で説明しているのはまさにそれですわw 日本語での定義を見てやっと、モヤモヤしていたのがすっきりしました!

その設置面積を設定してあるのが FTPT ですが、フロアミラーの場合、「mirrorFloorModerate」と「mirrorFloor_rig」の2つあります。
「mirrorFloor_rig」のほうは、鏡を使用するときのシムの立ち位置だと思われます。これはスルー。
編集するのは「mirrorFloorModerate」です。

編集画面の出し方

FTPT の編集画面の出し方
「Tag」が「FTPT」と書かれた項目を選択し、右クリック。現れたメニューの中から「Footsie」をクリック。

フロアミラーのフットプリントのデフォルト値
記事に載せるためにサイズを小さくしましたが、こんなウィンドウが出てきます。

Footsie で数値を入力

  1. まず Offset に、メモした Bounding Box の X と Z の最小値を放り込みます。
    私の場合、X: -0.08398694、Z: -0.0590838343 です。小数第六位までしか入力できません。
    するとオレンジの丸で囲まれた点の絶対値(Absolute)が、自動で Offset の値に変更されます。

  2. 「Add」「Delete」のボタンの下に、[] と () で挟まれた数字が書かれたセレクトボックスがあります。
    これの2行目を選択します。すると、中央の長方形の左下の点が赤くなります。

    Absolute の Z に、自分のメッシュの最大値を入れます。
    左右対称メッシュなら Offset の値をコピペして、マイナス記号を削除するとちょっと手間が省けますね。
    2行目の入力例

  3. 3行目(赤点は右下)に移動し、Absolute の XZ 共に最大値を入力します。

  4. ラスト4行目(赤点は右上)は Z の値はすでに正しく入っているので、X だけ最大値を入力。

Bounding Box 値をすべて入力し終えた画面
最終的に、こんな小さくなりましたw Relative のほうは自動で算出してくれるので、いじらなくて OK。
Commit を押して Footsie を終了します。ここの Commit ボタンは左にあるので注意!

Footsie で編集しきれなかった部分の編集

続いて、OBJD を編集したときのように「Grid」を押します。
以下の画像と同じように三角をクリックして展開してください。
FTPT の Data Grid

Lower に最小値を、Upper に最大値を放り込んで、Commit します。

目次へ

VPXY を編集

VPXY

The purpose of these files is to show which parts of an object are linked together, and what all the parts of the object are

このファイルの趣旨は、オブジェクトのどの要素が相互に関連付けられているか、そしてすべてのオブジェクトの要素が何であるのかを示すことです。

via Sims 3:0x736884F1 @ Sims Wiki

ここでも Bounding Box の値を設定します。

編集画面の出し方

VPXY の編集画面の出し方
「Tag」が「VPXY」と書かれた項目を選択し、右クリック。現れたメニューの中から「Edit VPXY」をクリック。

編集箇所

フロアミラーの VPXY のデフォルト値
フロアミラーのデフォルトはこんな感じ。

  1. Bounding box に自分のメッシュの値を入れます。今回は XYZ すべて必要です。

  2. これは必須かは判らないんですが、「Modular?」のチェックも外してしまいます。
    参照している FTPT は先程編集したものではなく、「mirrorFloor_rig」のほうなんですよね。装飾オブジェクトのほうでは Modular 設定ありませんでしたし、不要だろうと思って。

    ただ、「mirrorFloor_rig」自体は残しておきます。削除したことで他のどこに影響があるか判らないので。
    今後テストして不具合起きるようなら、ここの Modular を戻してみようと思ってます。

目次へ

最終テスト

Mods フォルダに package を入れ、ゲームを起動してみましょう!
エンドテーブル上に卓上鏡が9つ載った図
このように設置できたら成功です! でも並べすぎはちょっと気持ち悪w
もちろん、作成したメッシュの大きさによっては、このようにエンドテーブルで9個も置けない場合があると思いますが。

とまあ、色々なチュートリアルを読んで、自分なりに解釈してみました。間違ってたら教えてください…!(2回目w)
皆さんも卓上鏡、作ってみませんか?(笑)

目次へ

2013年1月24日追記

このほかに影の設定を忘れていました。
詳しくはシムズ3オブジェクト作成備忘録: 影についてをご覧ください。

このエントリーへのコメント

Disqus のほかにも Twitter や Google、Facebook アカウントでもログイン出来ます。
ログインしないで投稿するにはメールアドレスが必要ですが、サイト上には表示されませんのでお気軽にどうぞ(*^_^*)("アカウントを作成せず投稿する" にチェックを入れてください)

blog comments powered by Disqus