2015年08月19日

(SimPeople)Blenderでシムピのモーションを作ってみよう その2


さて、前回でモーションの出力をしたわけですが、ゲーム中で利用できないとお話になりません。
今回はオブでモーションを再生する方法を見てみましょう。



と言っても、モーションを再生するのはそんなに難しいことではありません。
まずは素材として適当な置物などを用意しましょう。「見る」とか「観察する」というメニューがあるものならなんでもいいです。今回は(多分)無印に入っているScluptures.iffから"クラシックレプロ社のアテナの胸" をクローンしました。


anim2-1.jpganim2-2.jpg
いつも通りiffPencil2で開いて、BHAV→"View" を開いて右クリック→Rewriteで並び替えます。
見てみると、3行目に (semi:)react とあります。これが置物などを見た時のリアクション部分です。

(semi:)とあるのは、"セミグローバルファイルの関数" という意味です。セミグローバルファイルは、左のリストにある"GLOB"で指定されたファイルです。
よく見る "(glob:) Standard entry" などはGlobal.iffに入っていて、これらのGlobal.iffに入っている関数は特に指定をしなくても呼び出すことが出来ます。
同様に、"GLOB" でファイルを指定しておくと、その中の関数を呼び出して使うことが出来ます。ドア用、明かり用などがあらかじめ用意されていて、共通の関数はその中に入っています。



anim2-3.jpg
ここをそのままアニメーションを再生する命令に置き換えてしまいましょう。
Functionを44の"Animate Sim" にして、Parameter0は取りあえず適当な数字で1に、他を0にします。
下に
"Animate Sim (id 1 from object) {return event in Parameters 0} {flags = 0, 0}"
と出ましたね。要するに、「このオブジェクトの "id 1" に指定されているアニメーションを再生する」、という事です。後ろの{return event in Parameters 0} {flags = 0, 0}辺りは取りあえず気にしなくてもいいです。ただ、"Paramerters 0" を使うようなので、右上にある"Number of parameters" を1にしておきましょう。

※"Number of parameters" が1だと、"Parameters 0" までの1つが使えます。
"Number of parameters" が3だと、"Parameters 0"〜"Parameters 2" までの3つが使えるという事です。
プログラミングになれていない方には分かり辛いと思いますが、変数の番号は0から振られるのでこんな表現になっています。

"return event in Parameters 0" とは、再生するモーションの.cmxでイベントが指定されていたら、その番号が "Parameters 0" に入って返ってくるという事です。
Animate Sim 関数は、 「再生が終わったらTrue line に進む、イベントが起きたらFalse lineに進む」となっています。False lineに進んだ時はまだモーションの再生途中で、イベントを処理し終わったらもう一度Animate Sim関数を同じIDで呼べば、次のイベントが起きるか再生が終了するまでスクリプトが待機状態になります。
例えば、「シムが壷を叩くモーション中にイベント発生→壷のグラフィックを割れたものに変更→続きを再生」の様に使われます。


後は "True line" はそのまま4行目で終了処理へ、"False line" はイベント発生ですが何も処理しないので、3行目にして再生が終わるまで再実行するようにします。
ここで一旦OKで変更を保存しておきましょう。



さて、とりあえず "id 1" のアニメーションを再生するようにしましたが、それは一体どこにあるんでしょうか。


anim2-4.jpg
では、左のリストからSTR#を開いてみましょう。中に"a2o" "c2o" とありますね。この中に大人用、子供用のAnimationIDがそれぞれ入っています。


anim2-5.jpg
開いてみると4番まで埋まっています。このまま追加してしまいましょう。右クリック→ADDで追加して、先ほど作ったモーションのAnimationID、"a2o-kap-test-motion" にします。子供用にも同じものを追加しましょう。大人用のモーションでも再生することが出来ます。ちょっと宙に浮かびますが。

先ほど書き換えた "Animate Sim"関数では "id 1" だけで大人子供の区別はありませんでしたが、対象のシムが大人か子供かによって、"a2o" "c2o" のどちらかから自動的に選ばれます。


anim2-6.jpg
さて、追加したのはid5番ですから、戻って "id 5" に変更しましょう。これで終了です。結局、モーションを再生するのに必要なのは命令1行とAnimationIDを追加することだけでした。


anim2-7.jpg
ついでに名前を変えておきましょう。そのままだと置くときにどっちか分からなくなります。名前は左のリストから"CTSS"に入っています。もちろんトラモグなどから変えても問題ありません。



これでオブは完成です。前回出力したモーションファイル2つは、オブと同じフォルダに入れて構いません。別にAnimationフォルダでもいいんですが、普通はオブとセットで使う物ですから一緒のフォルダに入れておいた方がいいでしょう。モーションなどのリソースは、シムピ本体が認識していればどのオブからでも利用できます。もし配布するなら、.cmxを.bcfに変換してからFarfaで1つのファイルに固めておくのがお勧めです。



ではゲーム中で見てみましょう。フリーウィルでも見に来ますが、吸引力は低いのでシムに見にいかせています。ちゃんとモーションが再生されていますね。子供が大人用のモーションを再生した時は少し体が浮きます。
※モーションが残念なのは見逃してください、しんでしまいます



置物だと既に見に来る部分があるので、ちょっと変更するだけでそれっぽいものが作れます。絵を鏡にしてポージングする鏡とか、やってきて一緒にくねくねするダンシングフラワーとか、そばに来てハァハァする人形とか。

今回は単純に再生させただけですが、Animate Sim 関数 にはループ再生やバックグラウンドで再生(再生が終わっていなくても、すぐにTrueで戻ってくる)など色々なオプションがあるので、その辺も利用すると色々できるでしょう。

では今回はこれで。



.

2015年08月18日

(SimPeople)Blenderでシムピのモーションを作ってみよう その1

さて、今回はモーションの読み込み・編集についてです。
まあこちらは今更やる人もほぼいないと思いますが。モーション作るのはかなり大変ですからね…。
書かなきゃいけないことも多いので長くなりますが、やってみたいという方はどうぞお付き合いください。



まずはモーション用のモデルを読み込む必要があります。普通はモデル作成用と同じものが使えるんですが、シムピでは色々不思議な仕様になっているので別となっています。

大人・子供の一人用のみですが、設定済み・タイルと机、椅子のサンプルモデルが入った.blendファイルを用意してあるので、それしか使わないという方は読み飛ばしてもらって構いません。


anim1-1.jpg
ではモデルの読み込みですが、通常のSkinの読み込みとほとんど変わりません。インポート時に"Anim Model"をONにするだけです。

ただし、モーション用のモデルでは読み込みの際にシムピで言う所のブレンド頂点、一般的にはウェイトが複数のボーンに付けられている部分は無視され、一番関連性の高いボーンに付くようになっています。
なので、若干関節部分などで表示がおかしくなるかもしれません。
これはBlender上での表示だけで、ゲーム中では問題ありません。


anim1-3.jpg
Skinの時と同じく、各メッシュを読み込んでテクスチャを貼った所ですが、ちょっとポーズが違うだけでSkin作成用と特に変わりはないように見えますね。
ここで、下の"RestPosition"を押してみると、なんだか訳の分からない塊になります。
これがシムピでのリラックスポーズ(RestPositionとも)です。すべてのボーンの位置と回転が0の時のポーズ、つまり基本的なポーズです。
普通は直立していたり腕を広げたポーズを取っていて、モデルの作成などもリラックスポーズで行われるのが普通なんですが、シムピではすべてのボーンが原点に対して位置と回転が0になっています。


anim1-4.jpg
参考画像 : MMDのリラックスポーズ

前述したブレンド頂点の問題は、この仕様とBlenderの仕様が合わないためにブレンド頂点の位置が正しく計算できないことによるものです。


anim1-5.jpg
もう一度"RestPosition"を押せば普通の立ち姿に戻ります。インポート時にタイムラインの1フレーム目に基本となる立ちポーズのキーを打ってあるので、これをモーション作成のベースにして下さい。

また、Skin読み込み時に手と足にIKを追加してあります。もし不要なら、L/R_ARM2,L/R_LEG1にIKが設定されているので、削除するかInfluenceを0にすればIKをOFFに出来ます。


ほとんどのモーションは、目的地に移動後に立っている状態から始まるので、これをスタートにすると滑らかに繋がります。適当な名前で保存しておいて、必要な時にコピーして使うためのベースにするといいでしょう。まあ、設定済みファイルを使う方が楽ですが。




anim1-6.jpg
設定済みの.blendファイルですが、キャラクター以外に、机・椅子・タイルのサンプルモデルも置いてあるので参考にして下さい。
1タイルの距離などは実際に開いてもらえれば分かると思います。
また、基本となる立ち姿のポーズをポーズライブラリに登録してあります。




では、試しに適当なモーションとして、SimShowに入っている"a2o-approve"を読み込んでみます。

モーションは男女共用で、"a2o-"から始まっていれば"大人(Adult)がオブジェクト(Object)に対して"行うモーションになります。子供なら"c2o"(Child to Object)、大人同士なら"a2a"(Adult to Adult)とかです。この名前は分かりやすいように付けられているだけで、必ずこのルールに従う必要があるわけではありません。
なので、子供に大人のモーションを再生させたり、人が犬のモーションを再生することも出来ます。


anim1-7.jpg
この画面で出ている"a2o-approve" がAnimationIDとなります。ゲーム内でモーションを再生する時は、このAnimationIDで呼び出すことになります。


モーションは.cmxと.cfpの2つのファイルで1セットですが、一つの.cmxで複数のモーション(.cfp)を定義していることも多いです。.cfpの方は、必ず1モーションにつき1ファイルです。

これらモーションが格納されているファイル名は、.cfpファイルの方は必ず
"xskill-(AnimationID).cfp"
となっています。
.cmxの方はそれらしいファイルをテキストエディタで開いて、目的のAnimationIDが書かれていればそのファイルとなります。大体は関係のあるファイル名になっているのでわかると思います。
今回の場合は、SimShowのインストールフォルダ内 "GameData\cmx\" 以下にある、"adult-approve.cmx"と、"xskill-a2o-approve.cfp" です。


anim1-8.jpg
スキンを読み込むのと同じ手順で、モーションを読み込ませたいモデルを1つ選択後、.sknの代わりに.cmxを指定すると、読み込むモーションを選択するメニューが出ます。今回は1つしかありませんが、.cmxによっては複数のモーションが出てくるので、必要なものを選んで下さい。

"Adult" "Child" などのボタンは、「今モーションを読み込ませようとしているSkin」を指定してください。
普通はSkinとモーションは両方同じ種類だと思うので迷うことは無いと思いますが、例えば「大人用のモーションを子供Skinに読み込ませて修正したい」という時には、子供Skinを読み込んだ後に、ここで"Child"を指定することになります。
まあ、間違えたら何だか妙なことになるのでわかると思います。

"Load all LOC" をONにすると、モーションファイル中にあるすべてのLOC(ボーンの位置情報)を読み込みます。特別な事情が無い限りはOFFのままにして下さい。
OFFだと、ROOTとPELVIS(体全体の移動)のみ読み込みます。

大人用のオブを子供で使えるようにしたハックオブなどで、たまに子供の体が伸びたりするものがありますが、そういったオブではこのオプションをONにしたモーションが使われています。
ちなみにそういったモーションをこのオプションをOFFにして読み込んでもモーションは変わりません。元から指定されているのと同じ値で上書きしているだけだからです(例えば"大人の足の長さ"を"大人の足の長さ"で上書きしている)。ただ、それを子供Skinで再生すると、大人の足の長さに伸びてしまいます。

なので、このオプションをONにすると大人と子供でモーションを共有できなくなります(子供が大人モーションを再生すると大人の体型と同じサイズに伸びる)。
なので、基本的にはOFFで使用してください。
ですが、それを利用して、使用すると伸びてしまった体を戻すオブや逆に伸ばすオブ、ゴムゴムごっごなども出来ます。シムピには使われていないBone(FINGER0,TOE01,TOE02)がありますが、それに対してウェイトを付けたアクセサリーを装備してそれを飛ばすとか色々応用は出来ると思います。


これらを指定して "Import" ボタンを押せばモーションが読み込まれます。
右のActionEditorウィンドウはスクロールとかしないと更新されないので注意してください。
anim1-9.jpg
TimeLineウィンドウに切り替えれば、再生ボタンがあるので実際に動かして見ることが出来ます。



ゲーム中で使われているモーションを読み込みたいなら、Farfaで "GameData\Animation\Animation.far" を展開した中や、各ExpansionPackを展開したAnimationフォルダ内にあります。.bcfファイルならCMX2BCFで.cmxに変換しておきましょう。.bcfには対応していません。
展開した.cmxと.cfpをSimShowの "GameData\cmx" フォルダにコピーしてやれば、SimShowでモーションを見て探すことができます。数が多いので見つけるのも大変ですが。

目当てのモーションを再生しているオブジェクトが分かるなら、iffPencl2でオブジェクトを開いて、"STR#" 内の "a2o" "c2o" を見ればAnimationIDが分かるのでそこから探すと早いです。あらかじめすべてのExpansionPackなどを展開しておいて、AnimationIDでファイル名検索すれば出てくるはずです。




Blenderでのモーション作成などについては他のサイトに譲りますが、シムピのモーション作成の手助けになりそうな事についてざっくりと。

モーションを作成するときは、何かベースになるアニメーションがあるならそれを読み込むと色々楽になります。
そのままだと全フレームにキーが打たれているので、このまま編集するのは自殺行為です。
必要な動きの節目節目だけをPoseLibraryに登録して、終わったら全部のキーを削除してしまいましょう。
後は登録してあるポーズを元に新しいモーションを作ればいいでしょう。
モーションを多数作るつもりなら、色々なモーションを読み込んでPoseLibraryに登録すると便利です。


anim1-10.jpg
また、スクリプトで不要なキーをある程度削除することも出来ます。
スクリプトウィンドウを開いて、Scripts→Animation→Clean Animation Curves を選択、Object Action で不要なキーを削除してくれます。

anim1-11.jpg
大体半分以下にはなると思いますが、それでもまだまだ多いので、モーションの一部を切り取って使う時などに利用してください。



最後にモーションの書き出しです。
と、その前にTimeLineウィンドウで、モーションの開始/終了フレームを確認してください。出力されるのはここで指定されている範囲だけです。
まあ、テストで再生する時もこの範囲しか再生されないので、既に設定されていると思いますが。


anim1-12.jpg
出力するには、File→Export→"Sims Skin/Motion File (.skn .cmx .cfp)" で出てくるメニューから、"Animation" を選択します。
モーションのタイプは大人と子供が共通で"Human"、あとは犬猫用になっています。

"Save all LOC" はインポート時と同じです。通常はOFFにして下さい。


anim1-13.jpg
後は"Export" ボタンで出力できますが、ここで保存するファイル名が非常に大事です。
指定するのは.cmxのファイル名だけですが、このファイル名がそのままAnimationIDになります。

例えば、保存時に"a2o-test-motion.cmx" という名前で保存すると、
"a2o-test-motion.cmx"
"xskill-a2o-test-motion.cfp"
の2つのファイルが出力され、ゲーム内のオブなどから"a2o-test-motion"として呼び出せます。


このAnimationIDが重複すると正しく動作しないので、必ず一意な名前を付けてください。もし配布する物なら、何か自分の名前的なものを一部に入れるといいです。
例えば私なら "a2o-kap-test-motion" の様に、"kap" というワードを同じ場所に入れたりします。



やっとモーションの出力まで漕ぎ着けました。残るはゲーム内での再生方法ですが、いい加減長くなってしまったのでまた次の記事で。




.

(SimPeople)Blenderでシムピのスキンを編集してみよう


さて、まずはスキンのインポート・エクスポートについてです。
インストールについては前回書いた通りです。


skin2-1.jpg
Blenderを起動して、
File→Import→"Sims Skin/Motion File (.skn .cmx .csv)" を選択すると、インポート用のメニューが出ます。


Skin2-2.jpgSkin2-3.jpg
"..." ボタンでファイルを選択すると、読み込むSkinの種類を選ぶボタンが出てきます。
Skinの種類を選んだら、下の"Import"ボタンを押せば読み込み完了です。


Skin2-4.jpg
胴体部分を読み込んだ所です。胴体以外の頭や手も同時に読み込んで編集できます。その場合は、読み込んだSkinかSkeleton(Blenderではアーマチュア/Armature)を選択して、上記と同様に読み込めば1つのモデルで連動して動きます。


Skin2-5.jpg
すべて読み込んで、テクスチャを指定するとこのような感じになります。


後は前バージョンと同じなので、そちらの記事も参考にして下さい。
(前バージョンの記事へのリンク)



テクスチャに関してですが、シムピのモデルのテクスチャマッピングはかなり変なので、ビキニの肩紐をまっすぐにするだけでも大変です。SimShowなどで確認して、修正してまた確認して…を繰り返した方も多いんではないでしょうか。
そんな時は、エディットモードで修正したいテクスチャを読み込んだ後、TexturePaintで大雑把にラインを入れて別名で保存しましょう。
このモードでは3Dのモデルに直接色を塗れるので、当たりを付けるにはとても有効です。
Skin2-6.jpgSkin2-7.jpg
モデル上では大体まっすぐに線を引いていますが、テクスチャではかなり曲がっています。普通自作モデルを作っても肌部分のテクスチャは流用しますが、それもあきらめて全部作り直したいレベルです。


この様に当たりを付けるには便利ですが、正直使いやすいとは言えないですし、Windowsのペイント程度の機能しかないのでこれだけでテクスチャを作るのは無理です。あくまでテクスチャ作成の補助といったところですね。
自作のメッシュでも同様に当たりをつけておくといいでしょう。UVマッピングの画像だけだと分かり辛いことも多いですし。



また、新規モデルや頂点を追加した場合は、ウェイトを付けるのを忘れないでください。
なお、"ROOT"ボーンに対してウェイトを付けても意味がありません。"ROOT"ボーンはモデルの位置を表すためのもので、体の一部ではないからです。




Skin2-8a.jpgSkin2-8b.jpg
出力時には、「出力したいメッシュ1つだけ」を選択して、
File→Export→"Sims Skin/Motion File (.skn .cmx .cfp)" でメニューが出ます。


Skin2-9.jpg
"Skin"を選択して、インポート時と同様にモデルの種類を選んで"Export"ボタンで出力します。


エクスポート前に体を選択すればSkinが、頭を選択すればHeadが出力されます。アクセサリなども同様です。

ウェイトがついていない頂点があった場合はエラーメッセージが出て、問題のある頂点が選択状態になるのでウェイトを付けてあげてください。

.sknの1行目に書かれているSkinIDは、出力したメッシュのオブジェクト名が使われます。あらかじめオブジェクト名を変更しておいてもいいですし、出力してからテキストエディタで書き換えても構いません。
まあ、SkinIDは基本的にゲーム内では参照していないようなので意味はないかもしれませんが。

後は.cmxを作成したりすればメッシュは完成です。お疲れ様でした。



取りあえず今回はここまで。
モーションに関しては、長くなるので次の記事で。




.

(SimPeople)Blender用 スキン・モーションImporter/Exporter Ver0.3

ども、しばらくぶりの更新です。
PC版GTAVが発売になったりTerrariaのアップデートがありましたね。楽しかったです。

それはさておき、今回はBlender用インポーターのアップデートについてです。アップデート内容は、
・Skinのウェイト関係のバグを修正
・ペットのスキン編集に対応
・モーションのインポート・エクスポートに対応

まずバグ修正ですが、インポート・エクスポート時のブレンド頂点のウェイト計算に誤りがありました。
ウェイトを変更せずにエクスポートすると正しい値に戻るので気づきませんでした…すみません。
編集中の.blendファイルはそのまま利用できますが、読み込んだ時点でウェイトが多少狂っていることがあります。ウェイトを変更していないなら、旧バージョンでエクスポートすれば正しい値になっています。それを新バージョンで読み直せば大丈夫です。
ウェイトを付け直した・新たに設定したなら、新バージョンで出力した方がいいかもしれません。
おかしくなるのはブレンド頂点に関する所なので、多少狂ってもシムピの表示サイズだとあまり違いが分からないかも。だといいなぁ

ペットのスキン編集はそのままです。犬猫どちらも行けます。

最後に、モーションの読み込み・保存に対応しました。モーションを作成するとなるとかなり大変なので、今更やろうという人はいない気もしますが。

相変わらずBlender2.49b用です。スキンの編集だけなら、Blender2.6系までなら保存時に「旧来のメッシュ形式」をチェックすることで2.49で読み込めるので、2.49bでインポート・エクスポートして2.6で編集とかも出来るはずです。
モーションに関しては2.6系との互換性は無いようなので、諦めて2.49bで何とかしてください。




導入方法などは前回と同じです。
Blender2.49bをインストールした後、
\Users\<ユーザー名>\AppData\Roaming\Blender Foundation\Blender\.blender\scripts\

以下に、ダウンロードした import_sims_skn.py と export_sims_skn.py を入れてください。
なんか面倒な場所ですが、Vista以降のUACのせいでこんな場所になっています。
※ "AppData"フォルダが隠しフォルダになっているので、エクスプローラの設定で"隠しファイルを表示する"設定にしないと見えないので注意してください。



とにかく書くことが多いので、次回から数回に分けて詳しい使用法について解説する予定です。

プラグインなどのセットはこちらからどうぞ。
シムピープル用 Skin/Motion 作成セット

15/08/20 追記:
MMD用インポーター・エクスポーター部分のFPSを修正



.

2015年01月17日

(SimPeople)超明るい窓で、明るい家族計画

シムピで大きな部屋を作っていると、窓や明かりが大量に必要になります。透明窓とかもありますが、結局数を設置しなきゃならないので面倒です。

という事で、超明るい窓を作ってみました。同じ方法でランプも明るくできますが、こちらは完全には明るくなりません。その辺は後述します。
多分どっかで同じようなものが作られてると思いますが、最近始めたのでその辺は分からないので自作です。取りあえずググっても見当たらなかったし。




では改造してみましょう。とりあえず、デフォのオブジェクトから適当な窓をクローンして開きます。ここではwindows.iffから1つ選んでクローンしました。

window1.jpgwindow2.jpg
開いたら、BHAV→"room changed function"を開きます。そのままでは分かり辛いので、右クリックから"Rewrite"して並び替えます。

window3.jpgwindow4.jpg
読んでみると、「窓が外に面していたら"Constant 4096:0"を、そうじゃなければ0」となっています。ConstantはBCONにありますから、BCON→#4096を開くと0番に"65"があります。これが窓の明るさになります。

ここでいう明るさは、部屋全体に広がる環境光です。ランプを1か所にまとめて置いても、部屋全体がだんだん明るくなりますが、その時に使われる値です。
どうやら、部屋に置かれた光源の数値を足していって、それが部屋の広さで決まる値を超えると、段階的に部屋全体が明るくなる仕組みのようです。
中途半端な値にしても面倒なだけなので、今回は思い切って100倍の6500にしました。大抵の部屋なら1つ置けば十分でしょう。

window5.jpg
ついでに、"room changed function" のLine2の分岐を両方"3"にすると、外に面していない窓でも部屋が明るくなるようになります。分岐先の行番号は編集する.iffによって変わるので、その辺は適宜読み替えてください。

window1.jpg
試しに超大部屋に置いてみましょう。58x58の大部屋です。何も照明が無いと勝手に明るく表示されるので、普通のランプを1つ置いてあります。

window2.jpgwindow3.jpg
この広さだと、100倍でも1つでは足りませんね。2つで明るくなり始め、4つで完全に部屋全体が明るくなりました。




ランプも基本は同じですが、こちらは環境光を増やすだけでは完全に明るくなりません。
Lamp1.jpgLamp2.jpg
同じ部屋に100倍ランプを2つ置いて、夜になったところです。環境光しか増えていないので、部屋全体がそれなりに明るくはなりますが、ランプの周りが明るいのは変わりません。普通のランプを1か所に大量に固めて置いたのと同じ状況になります。
なお、ランプの周りが明るいのを広げるのは残念ながら無理です。アレは範囲が数字で決まってるとかではなく、丸いグラデーションのBMP画像を重ねて表現してるので。ちょっとだけ広げるとかグラデーションを無くして届く/届かないをはっきりさせるとかは可能ですが、全ランプで共通の設定なので街灯とか他のタウンでおかしなことになります。

不完全ですが、一応こちらも改造法を書いておきます。ランプを少しおいて周りだけ明るくなる表現がいい、でも部屋全体はなるべく明るくしておきたい、という時には役に立つでしょう。

lamp1.jpglamp2.jpg
窓と同じく適当なランプをクローンして開くと、BHAVにそれぞれのランプの初期化部分があるので、それを開くと "(semi:)init - floor" の前に "Temporary Storage 1 Assign To: 75" (テーブルランプは少し暗くて50) という部分があります。この"75" がランプの環境光の明るさです。
窓と同じく100倍とか適当な数値に書き換えましょう。




配布オブですが、窓は透明・カットアウトなしで100倍の明るさ、外に面していなくても採光してくれます。設置すると見えないので撤去しずらいです。分からなかったら壁を上書きするか、壁ごと撤去してください。

まとめて全部撤去したいなら、一度.iffを抜いて消したい窓のあるLotに入ると「オブジェクトが見当たりません!」と言われて、そのLotのみ全部消えるので、そのまま保存した後に.iffを戻すと楽です。

window2-1.jpg
建築モードで壁を非表示にすると、上の画像の様に窓枠が表示されます。何処に設置したか分からなくなったらこれで探してください。

ランプはlamps.iffに入っているテーブル・スタンドランプ7種です。ランプは種類が大量にあるのでこれだけです。必要なら上記を参考に各自で改造してください。こちらはあまり需要が無いと思いますが。

*******************************************************************************
※ マジッククッキーを持っていないので、適当に乱数で作ったマジッククッキーを使用しています。
※ わかる範囲で重複は調べましたが、もしどこかの作者様と被っているとかありましたら教えてください。
※ 現在、58009(E299)を使用しています。
*******************************************************************************

ダウンロードはこちらから。
kap_verybright_window.zip

15/01/17 追記
幾つか修正しました。
-建築モードで壁を非表示にした時、見えない窓も見えるように
-壁を撤去、上書きしても見えない窓が消えないことがあるのを修正


.
posted by kapaer at 13:28 | Comment(0) | 初代シムピープル 超明るい窓 | このブログの読者になる | 更新情報をチェックする