ライト・ハック・チュートリアル

SSOWカウンタトップディスプレイベースで
       オリジナル商品が買えるディスプレイを作ろう!

-その1 準備-



オリジナル商品が買えるようになるディスプレイ・ベースをSSOWのハッカー・Raevenさんに作成していただいたおかげで、無事和菓子の買えるカウンタトップ・ディスプレイが完成ました。
このベースはいつからかはまだ未定だそうですが、SSOWさんで配布されるそうです。

このハックベースをSSOWさんで配布予定があれば、ぜひ日本語チュートリアルを作成したいとRaevenさんにお伺いしましたところ、「配布はかなり先になりそうですが、かまわずどうぞ書いちゃってください!」というありがたいお返事をいただきましたのでチュートリアルを書かせていただくことにいたしました。
感謝!

ところで、ベースといいましても、このオブジェクトの場合は、ただクローンするだけで使用できるわけではありません。
iff pensilを使って、自分で書き換えなくてはいけないポイントがかなりあります。
そのほかに物によってはアクセサリの作成や、通常のオブ同様画像の作成などがあります。
つまり、これを作るには通常のオブ作成のほか、簡単なメッシュを作れる必要があります。

−どうしてiffが2つあるのか?−

拙宅の和菓子オブなどをダウンロードされると分かりますが、1つの品物のiffファイルが2つ1組になっているのがわかります。
この2つのiff役割分担ですが、ディスプレイケースのiffは、タウンでの購入モードで設置するオブジェクトの本体になっています。こちらは購入モードに出てくる品物の画像、商品名、商品の説明のほか、設置されたディスプレイ本体の画像、gift.iffとの連絡などをこちらのファイルが受け持ちます。
一方、_giftと付く方は、Raevenさんがギフトトークンと呼ぶものです。
このファイルは購入モードには出てきませんが、「贈り物をあげる」を行なったときにポップアップで出てくる画像や、実際にシムが購入するときの、商品のアクセサリの呼び出し、シムの持ち物の追加(持ち物の商品画像も)、誰かにプレゼントするときなど、一連の持ち物になったあとの動作全てを受け持つものです。
実はこれ、デフォルトの贈答用購入品−キャンディや花束など−とほぼ一緒です。
これらも購入用ディスプレイと、giftファイルがペアになっているのです。
いわば、レジのNPC.iffとレジの関係と同じようなものです。

チュートリアルのラストで出てきますが、このRaevenさんが考案されたハックオブでは、giftのiffではBHAV #4103、ディスプレイケースのiffでは#STR303に記述された、「特定のファイル名」を参照することで、処理の受け渡しを行なう仕組みになっています。
「特定のファイル名」をつけるだけで新規購入品オブジェクトを指定することができますので、この名前が重複さえしなければ、新規に多種類のディスプレイをを作り出すことが出来るわけです。

Raevenさん曰く、「「特定のファイル名」を参照するだけにしておけば、処理が単純で新しいものを作るのも容易。シンプルでしょう?!」

この辺は最後に読み返していただくと、なるほどと思えるところがあるかと思いますが、とりあえず、現段階では、2つで1ペア、「特定のファイル名」を参照することで、情報の受け渡しを行なう仕組みであるということだけ覚えておいてください。

-準備−

それでは、作成チュートリアルに参りましょう。
ここでは例としてすでに配布している和菓子ディスプレイのうち、水饅頭の作成手順を追っていきます。

必要なツール:

Transmogrifier
手に持つ時のアクセサリをオリジナルメッシュにする場合はメタセコイアとSkn2mqo+SimMeshBuilder(またはMilkshape3Dとskn2obj)
Photoshop、Paintshop、Pictbear、Gimpなどの減色機能付きペイントソフト(無論ペイントソフト+減色ソフトでもOK)ペイントソフトはPhotoshop ElementやPaintshopなど有料ソフトのほか、GimpやPictbear、J-trimなど高性能でフリーのものもたくさんあります。自分にとって使いやすそうなものを探してみましょう。
iff pensil2 (Sim Programs またはTSRのContent>programでダウンロードできます)

1  クローンする

まずは、どんな商品を売るか決めましょう。今回作るのは、カウンタトップ・タイプですから、商品もテーブルに載るものの方が無難ですね。
今回の例では、和菓子の水饅頭を作ります。

このベースはさっきも述べましたように1個のディスプレイに付き、2個のiffファイルがペアになっています。ディスプレイケースのiffと、後ろに、gift.iffとつくものの2つです。

まずはこの2つのベースに名前をつけて、通常と同じ手順でクローンします。名前はあとから変えることも出来ますが、出来るだけ先に決まった名前をつけてしまったほうが、今回の場合は混乱しないですむと思います。すべてのオブにサイトや管理人の名の略称をつければ、ダウンロードした人も整理しやすいかもしれません。これもよそ様とかぶらないように要注意。
また、2つとも同じオブジェクトに使用するものですから、同じあるいはペアが連想できる名前の方が間違えずに済むと思います。
そんなわけでうちの和菓子は、enc_wg_mizumanjyu_hack.iffと、enc_wg_mizumanjyu_giftとしました。
この段階ではまだ、名前をつけてクローンしただけです。通常のオブと同じですね。

2 商品の画像を作る 

さて、どんなものを作るかと、ファイル名は決まりました。クローンも終了。

enc_wg_mizumanjyu_hack.iff
enc_wg_mizumanjyu_gift


この2つが新規のクローンです。ここで、一度enc_wg_mizumanjyu_giftだけをコピー(このコピーは最終的に削除しますので、IDは重複していてかまわないので、トラモグでではなく、普通のファイルコピーします)して、1つをどこか最初のペアとは別の場所に保存します。この理由はあとで述べますが、必ず行なっておきましょう。

たとえばクローンの作業場所がローカルディスクD: sagyouフォルダ内なら、sagyouフォルダ内にcopyフォルダなど適当な名前のサブフォルダを作り、その中にenc_wg_mizumanjyu_giftのコピー品を入れておきます。

トラモグで作成したクローンは、Downloads内のTransmogrifier(このフォルダは自動的に出来ます)にありますよ。

次に、ペイントソフトを立ち上げて、購買時の画像を作成します。両方とも、機能、画像は同じものですから、ディスプレイiff、gift.iffとも同じ画像でかまいません。
ディスプレイiff、gift.iffの画像を両方をトラモグで画像エクスポートしますが、画像の作成はディスプレイの方だけでまず行ないましょう。



私の場合は、この3つです。形状変更もあるので、3チャネルとも出力していますが、デフォルトのものと形状は変えないのであれば、書き換えはp画像のみとなりますね。
これでよし、となるまで、ディスプレイの方のzバッファ、αチャネルの調整も行ないます。
この辺が不明な場合、通常のオブジェクト作成チュートリアルを読んでください。

ディスプレイの方が完成しましたら、ディスプレイの画像ファイルをコピー、ファイル名をgift.iffのエクスポートしたファイル名に変更して、そちらもインポートしましょう。
←これを←こう

ディスプレイ画像をコピーして、名前を変えて、エクスポートした画像に上書き。
購入する、見てみるときシムが思い浮かべる画像を、設置するディスプレイと変えたいときは、giftとディスプレイの画像を違ったものにしても良いです。
これでまず画像が出来ました。

3 アクセサリーを作る 

オリジナル商品ですから、購入時にシムが商品を手にしてレジへ行きます。
プレゼントするときにも、どこからともなくモノを取り出しますね。
あの、取り出されたモノです。

手にしている花束やチョコレートはシムと同じスキンファイルです。
ですので、sknとcmx、テクスチャを作成します。
無論、デフォルトのチョコや花をリカラーしてもかまいません。
私のケースではは、多数の和菓子を作成しましたから、カテゴリごとに4パターンの和菓子パックを作成しました。実は、メッシュは全て同じです。

このアクセサリ・スキンは、シムの体の比からして、とても小さいものです。
テクスチャは主に、64×64ピクセルです。128×128でもかまわないですが、サイズを小さく出来ればそれに越したことはないです。
具体的なメッシュの作成方法については、各種スキン作成チュートリアルを参考にしてください。

今回は四角い箱が欲しかったので、メタセコイアを立ち上げ、基本図形>直方体で、平たくて細長い箱を作成しました。
UVマップ出力、テクスチャを作り、ちゃんと目的どおりに表示されるかメタセコイア上で見ます。全てを三角面に変換し、とりあえず完成。テクスチャを256色に減色するのも忘れずに。
この箱はプレゼント品ですから、アニメーションで差し出される右手に持ってもらわないと困ります。
ですから、設定すべきボーンも自動的にR_HANDになります。
メッシュのゲーム中での表示座標は、メタセコイアでシムを呼び出し、そこにアクセサリを読み込んだとき、シムの体に対して表示された位置にくっつきます。無論、角度や向きもこの時点で対応します。

ですからまずデフォルトの開いた状態の右手(購入・プレゼント時には「パー」の右手が呼び出されます)を呼び出し、そのまま右手だけカギをかけて非表示にして、それからアクセサリーを作れば必要なボーン情報が入ってしまいますから楽でしょう。アクセサリの角度や大体のサイズ調節も右手を表示すれば確認でき、面倒がないです。
比較のために、プレゼント品のメッシュを呼び出して、角度などを見てみるのもお勧めです。

右手はxskin-hmro-R_HAND-HANDMR.skn等というのがそうです。
そういうわけで、デフォルトの右手を挿入コマンドで呼び出し、作成アクセサリの箱と、右手との角度やめり込み具合を見ながら、適当な位置に来るまで調整します。
サンプルの右手の方を動かさないよう、さっき書いたようにカギをかけておくと良いでしょう。
うっかり左手だったりすると、変なところに箱がついてしまうので注意!

とりあえず、こんな感じでよさそうです。
また、箱が裏返っていないか、テクスチャを張って確かめてみることをお勧めします。
手のひらを上にして差し出しますから、メタセコイアで上側になっている部分が、相手に差し出すとき裏側になります。和菓子はあげるとき裏返しに差し出しますね・・・汗。

良さそうなら、SimMeshBuilderでsknに変換しましょう。
Sim Viewなどビューワーでキャラクタと一緒に表示して、動かしてみましょう。

どうですか?アクセサリの位置調整は上手く行きましたか?
上の図のようになればOKです。箱がちょっと大きいですが、小さいと良く見えないのでこれで良しとしましょう。

位置がよければ、sknファイル名と、cmxファイルを作りましょう。


左がcmx、右がsknファイルです。

cmx5行目にcmxIDが入ります。ここで指定された名前が、あとでオブジェクト側からアクセサリを呼び出すときに使われます。cmxファイル名と一致させておくと間違えにくいです。

ここでは購入用チョコレートに倣ってgiftとしてありますが、別名でもかまいません。名前が一致していさえすればちゃんと呼び出されます。
ただ、accessoryとかgift、suitをファイル名につければ、アクセサリファイルとわかりやすいのでこの名前にしています。
また、よそのサイトさんのアクセサリや、デフォルトとファイル名がかぶらないようなオリジナリティがある名前にしないといけません。例えばaccessory-flowersなんてつけてしまうと、デフォルトの花束とコンフリクトしてしまいます。

cmx10行目には、sknのファイル名が来ます。R_HANDの直前の1は、くっつくsknの数です。2個のアクセサリを組み合わせてつけるのなら、2になります。

sknファイル側は、1行目がsknファイル名、2行目はテクスチャ名(bmpファイル名)が来ます。アクセサリのうち、ボディやヘッドとcmxが共用ではない場合、テクスチャはsknファイルでダイレクトに指定したものが張られます。

アクセサリの場合、名前は単純なケースが多いので、bmpファイルとcmxファイル名は同じでもかまいません。もちろん、何らかの理由で違う名前をつけたければ、それでもかまいません。
メッシュが一渡り出来上がったところで、cmxIDをメモしておきましょう!コピー&ペーストが確実です。
動作テストは全て出来てからでないと出来ませんから、Simviewなどで適当なボディと一緒に読み込み、アニメーションさせておかしくないか見てみましょう。
これでアクセサリの作成はいったん終了です。

-画像と解説文の作成-へ
EnchantedSimsにもどる