Sims 3メッシュを.packageからBlenderにインポートする方法

Sims 4 Studio公式サイトに、「Sims 3用メッシュを簡単にBlenderに読み込む方法」 (How to easily import a Sims 3 mesh to Blender from .package) なるチュートリアルがあります。 (原文:orangemittens 2015/7/1 1:56投稿) これの抄訳に、独自の補足を加筆したものです。 この手法を使えば、これまでSims 3で蓄積されたCASのカスタムコンテンツをSims 4に転用することができます。

はじめに

Sims 3用の.packageからメッシュをBlenderに直接インポートする方法を説明します。 気をつけてほしいことは、この手引きは、他人のメッシュを作者の同意なくシェアするためのものではない。 礼儀正しくしよう。 他人が苦労して作ったものを許可なく盗んではだめだぞ。

必要なもの:

1.CliptoolをBlenderにインストールする

Blenderを起動し、 File-->User Preferencesを選択。Addonsタブをクリックし、「Install from File...」をクリック。ダウンロードしたzipファイルを選択。zipの中身ではない(zipを解凍してはいけない)。 検索窓にS3と入力して、Import-Export:S3PY Animation Toolsを検索。出てきたらチェックボックスをチェック。 ユーザ設定を閉じる。設定を保存する。

必要ならGimpとS3PEもインストールする。準備ができたら、実際のデータの処理を始めよう。

2.Cliptoolを使ってsims3メッシュをインポートする:

Blender(の真ん中の3D View画面)がObject Modeであることを確認する (もしそうでなかったら、Tabキーを何度か押すと切り替わる)。 File-->Open...をクリックして、先ほどダウンロードしたSims3 Sim rigを開く。 年齢と性別ごとに別のファイルになっている。afRig.blendが大人女性。cuRig.blendが子供だ。

Sceneボタン(画面右下にある【Propertiesウィンドウ】のメニューのうち円柱と球のアイコン)を押す。 「S3PY Rig Tools」の左にある下向き三角を押す。 そこで現れたLoad CASボタンを押し、Sims 3 .packageが保存されている場所までナビゲートする。 Sims 3 .packageを選択してImport Sims3 Propボタンを押す。


取りあえず、元記事の内容はここまで。 ここまでやれば、Blenderにメッシュ、UVマップ、ウェイトが移転できている状態になる。 ファイル名を指定してセーブしよう。

ここからは補足説明です。CASを作った経験のある方にとっては釈迦に説法でしょう。


3.UVマップを書き出しておく

先ほどの操作でメッシュを読み込んだら、後の作業を楽にするためにUVマップを書き出しておこう。 Blenderの左画面はUV/Image Editorになっているだろうか。なっていなければ、メニューバーの一番左の四角をクリックして切り替える。 真ん中の3D ViewのモードをEdit Modeに切り替える(Tabキーを何回か押せば切り替わる)。 ここでAを押す(全選択)と、全ての頂点がオレンジ色に変わる。 この状態で左のUV/Image Editor画面を見てほしい。 これがUVマップ、すなわち、メッシュを展開図にした二次元画像だ。 メニューバーのうち、UVs-->Export UV layoutをクリックし、UVマップを画像としてセーブする。

また、念のためにUVマップを紙に書き写し、それぞれのパーツが服のどこに対応しているのかメモする。 メッシュの頂点を選択したり解除したりすると、UVマップ上でも選択されたり解除されるので、対応が分かる。 ここまでやったら、Blenderはいったん終了してもよい。

4.雛型を作る→Sims3メッシュを雛型に統合する

S4Studioを起動。 CASスタンドアロンの作成を選択してCASボタンを押す。 これから導入しようとする年齢性別と同じ年齢・性別の水着を開く。 ここでは、フリルやリボンができるだけ少ない、一番つるっとした水着を選ぶのがポイントだ。 新しいプロジェクトの画面が開いたら、「メッシュ」タブを選択して「エクスポート」を押す。 ファイル名を指定してセーブする。 これで、公式配布の水着のメッシュデータを雛型として書き出すことができる。 S4Studioはいったん終了してもよい。

新しいSims3メッシュを作ろうとするたびに、雛型のCASスタンドアロンは毎回新しく作る必要がある。 新しく作るごとに内部のシリアル番号がユニークに設定されるからだ。 もし、水着の雛型を別のSims3メッシュに流用すると、内部のシリアル番号が競合するので、 実際のゲーム中ではどちらかがCASモードの一覧に表示されなくなる。

Blenderを起動し、先ほどの雛型の水着を開く。 中央の3D View画面はObject Modeになっているだろうか。 なっていなければTabキーを何度か押すと切り替わる。 ここで、メニューバーからFile-->Appendをクリックし、先ほど保存したsims3メッシュを選択する。 (実際のメッシュデータはファイルのObjectフォルダの中に入っている)。

さて、これで、お目当てのメッシュと、公式配布の水着が両方重なり合った状態になっているはずだ。 お目当てのメッシュを水着に統合(join)しなければならない。 Blenderの右上にツリー構造の【Outlinerウィンドウ】があるだろう。 この中から、お目当てのメッシュを選択 (cuRigまたはafRigのツリーを開くとその中に入っているはずだ)。 選択したら、shiftキーを押しながら、水着の胴体部分のメッシュも選択。 両方のメッシュが選択されているだろうか。 選択する順番を逆にしてはいないだろうか。 もしOKなら、ctrl+Jを押す。すると、Sims3メッシュが水着メッシュに統合される。

(どのパーツが水着の胴体なのかは事前に調べないとわからない……ツリー構造の中の目玉アイコンをクリックして表示・非表示を切り替えてみると分かる)

中級者向けのヒント :  メッシュの統合は不可逆な操作なので、統合した後では面倒になる操作は事前に終わらせておくと、楽できる。

  1. 水着メッシュの不要な頂点を削除する。具体的にはこの囲みのすぐ下に。
  2. Sims4では廃止されたboneが指定された頂点を特定する。 →→→ 具体的には、例えば、Sims3メッシュにb__HeadNew(廃止されたボーン)がある場合、 b__HeadNewは廃止されたボーンなのでb__Headに名前を変更する必要があります。 統合前なら単にボーンの名前の一括変更するだけでOKですが…… もし雛型の方にb__Headがassignされた頂点があったら、 統合した後では一括変更は通らない (名前が重複するボーンを新設しようとすることになるため)。 こうなると、一括変更ができず、頂点を一つずつ選択して再設定するはめになる。 それを考えれば、統合前に処理した方が楽だ。

水着メッシュの不要な頂点は除去してよい。 例えば、明らかに服の下に隠れる部分の頂点はいらない。 (こうなることを見越して、統合する前にあらかじめ不要な頂点を削除しておくのが合理的だ)。 このとき、服から露出する部分、手首から先や、脚や頸回りは必要な部分なので消してはいけない。 というのは、肌の部分は水着のメッシュを生かすほうが良いように思うからだ。 逆に、Sims3メッシュの側に手首から先や頸、脚が含まれている場合は、水着側と重複していないかチェックしよう。 たぶん重複しているはずだ。この場合はSims3メッシュの側の頂点を削除し、水着の方を残す。

名前を付けてセーブしたらBlenderは閉じてよい。

5.Sims 3のmaskをdiffuseに塗り替えること

Sims 3では、メッシュの表面の色の塗り分けを指定するのにマスクファイルを使っていた。 赤緑青の三色で塗り分け方を指定し、実際に何色に塗るかはCASの中で指定していた。 Sims 4では、実際に表示される色で塗った画像を指定しなければならない。 さらに、Sims 4では、服や帽子や靴の画像を一枚のdiffuse画像で指定しており、 それぞれ割り当て領域が決まっているから、 うっかり割り当て領域をはみ出すと、スカートに靴底の模様が表示されるなんていう失敗も起こる。 UVマップの割り当ては、ここで調べることができる: http://www.sims4studio.com/thread/62/fix-uv-map-template

左図のうち、左がSims3のマスク画像(1024x1024)、右がSims4のdiffuse画像(1024x2048。上半分は髪やアクセサリの領域なので透明にするのが正しい。)。モデルはtasaさん作Sims3用レティ・ホワイトロック。 左のデータを加工して右の画像を作る作業ということです。

S3PEを起動して、Sims 3 .packageを開く。 「_img」タグを持つ画像がいくつかあるはずだが、このうち赤緑青で塗り分けられた画像がマスク画像だ (赤緑青ではなく、赤-黄色-マゼンタに塗り分ける流派もある。機能は同じだ)。 これを選択して右クリックしてExport-->To Fileで保存。 (ちなみに、全体的に灰色っぽい画像があったらそれはおそらくノーマルマップ(法線マップとも言う)だ。 これもついでに保存しておくといい。) S3PEは終了していい。

先ほど保存したマスク画像をGimpで開く。 割り当て領域テンプレートを「レイヤーで開く」するといい。 ついでに、一番最初に保存したSims3 .packageのUVマップも「レイヤーで開く」しておこう。

s3のマスクデータは赤緑青の3色なので、これを実際に塗りたい色に塗りなおす。 Gimpには「色域を選択」という機能があり、同じ色を一括で選択できる。 これで赤を選択して、欲しい色で塗りつぶす (shiftキーを押しながら塗りつぶすと、選択範囲全てを一発で塗りつぶすことができる)。 緑と青も同様に措置する。

できた画像のレイヤーのサイズを横1024×縦2048に変える。 そして上半身は上半身の領域へ、下半身は下半身の領域へカット&ペーストする。 袖は袖。 それ以外は右下隅の未使用領域へ。 このとき、細かい柄を持たず、一色で塗りつぶされていればよいパーツについては、 その置き場所は精密でなくてよい。 いっそのこと、縮小してしまってもよい。 ここまでできたら、diffuseマップが出来上がり。 そのレイヤーをExportする。画像の形式はpngが望ましい。 そうしたらGimpは終了してよい。


6.UVマップを修正する

diffuseの画像を編集してしまったので、メッシュデータのUVマップも並行移動させないといけない。 Blenderで先ほどのメッシュを開き、 3D ViewをEdit Modeに切り替え、Aを押して全選択。 左のUV/Image EditorにUVマップが表示されるだろう。 UV/Image Editorの下のメニューバーのOpenボタンを押し、先ほど編集したdiffuseマップを読み込む。

メニューバーのうち、窓枠みたいなアイコンを押すと、UVマップのグループ全体を選択するモードになる。 この状態で、UVマップを選択して、適切な場所に移動させる。 GX(横方向に並行移動)、GY(縦方向に並行移動)、SX(横に拡縮)、SY(縦に拡縮)、R(回転)を使う。

先ほども言ったが、 細かい柄を持たない、一色で塗りつぶされていればよいパーツについては、 その置き場所は精密でなくてよい。 いっそのこと、縮小してしまってもよい。 できあがったら、セーブ。

中級者向けのヒント :  先のメッシュ統合の折に、水着メッシュから引き継いだ 素肌の部分(頸、手、脚)のUVマップの配置は、ちょっと配慮すると出来栄えが良くなる。 ポイントは、特段の理由がない限り元々あった位置を動かさないこと。 肌の絵柄はゲーム本体に埋め込まれているが、元々あった位置に置いたときに最も肌の見栄えがいい。 なまじUVをずらしてしまうと、ゲーム中では浅黒く表示されたりする。

7.できあがり! ……そしてウェイトの調整

S4Studioを起動し、先ほどの水着のプロジェクトを開く。 diffuseをインポート。 メッシュもインポートして、保存。 これでCASパーツの.packageファイルが生成される。 これで手続き上はゲームに導入できる形になっている。

だが、この状態でゲームにインストールすると…… 腕がビヨビヨになっている!スカートは天井まで突き抜け、胸がおかしな方向に飛び出している! これはなぜかというと、Sims3メッシュには、Sims4では廃止されたboneが指定されているためだ。

Sim3メッシュをSims4に導入するとき、weight調整する前の例 ウェイト調整せずにインストールするとこんな感じになります。 モデルはtasaさん作Sims3用レティ・ホワイトロック。 腕がビヨビヨだし、膝はズレている、胸はおかしな方向に飛び出している。 これから直していきます。

s4の仕様に無いboneの指定を解除すべし。 Blenderで当該のメッシュを開く。 Propertiesウィンドウのうち「Object Data」ボタン(逆三角のアイコン)をクリック。 Vertex Groupsの下にboneの一覧がある。 この中から、仕様にない名前を探し出して、選択。 3D View画面をEdit Modeに切り替え、Aを押してメッシュを全選択した状態で、 boneの名前を選択し 一覧の下の「Remove」ボタンを押すと、 全てのvertexからそのboneが指定解除されてweightがゼロになるはず。 それでも取れなければ、3D Viewで頂点を1つずつ選択して、weightを確認・数値指定する。

Sims 4で廃止されたboneがどれなのかは、s4s公式ページのリストで確認すべし。 実務的には以下のboneがあったら怪しい:

R_Breastは、CAS_R_Breastという名前に変更されている。 vertex一個ごとにBone名称を変更していくのは現実的でない。 まず3D View画面をEdit Modeに切り替えて全選択。 右下のPropertiesウィンドウのbone一覧でR_Breastを選択し、その状態でR_Breastの文字をダブルクリック。 そうするとboneの名前を変更することができるので、b__CAS_R_Breast__と入力すれば、 選択した全verticesに対してBone設定を変更できるはず。

「b__HeadNew__」についても同様で、「b__Head__」に名前を変更するといい。

最後に、それぞれの頂点に指定されたweightの合計がきっかり1になるように調整する。 このためには、中央の3D View画面をWeight Paintモードに切り替える。 左方のToolウィンドウのToolsタブを選択 (もしToolsウィンドウが非表示になっていたら、Tキーを押すと表示・非表示を切り替えることができます)。 Weight Toolsを展開する。 Normalize Allボタンを押し、下のほうに「Normalize All Vertex Groups」と表示されたら、 Lock Activeのチェックを外す。 これで、すべての頂点についてweightの合計がきっかり1になる。 ここでいったんセーブしよう。

あと、廃止されたボーンだけを持つ頂点というのもありまして、 これを単に指定の一括解除をしてしまうと、 そうした頂点は「ボーンが何も指定されていない頂点」になってしまい、 ゲーム中で頭上のはるか上方のどこか(仮想的な原点?)にすっ飛んでいってしまう。 Blenderでは「ある特定のボーンが指定された頂点を選択」することは簡単にできても、 「ボーンがひとつも指定されていない頂点」がどこにあるかは、総当たりの手作業で探すしかない。 したがって、指定の一括解除をする前に、「廃止されたボーンだけが指定されている頂点」がどこら辺にあるか調べておくと後で楽できる。 ……実務的には、スカートの裾の一番端、スカートの布地と裏地が交わるあたりが怪しい。

まったく同じ座標に複数の頂点が存在することがある (スカートの布地と裏地が交わるあたりとか、前身頃と後ろ身頃の継ぎ目など)。 こういう重複した頂点を手作業で選択しようとしても、 裏側になっている方の頂点は選択できているように見えて実は選択できていないため、 意図したとおりの処理が行われないのだ。 どうしても動作がおかしい場合は、こういう重複頂点をmerge(ALT+M)するのも効果がある。 さもなくば、選択できる方を選択しておいてGZコマンドでちょっぴり座標をZ方向へずらしてみるとか (その上でVertex WeightsをCopyして、座標を戻すとか)。

8.ゲームにインストールしてテストする

一発で完成するわけではなく、実際にゲームにインストールして使ってみて、 おかしい箇所を見つけたらスクリーンショットを撮影して、画像を見ながら原因を分析する。 椅子に座る、腕立て伏せをするなど、座標は変わらないが胴体が大きく動く動作をしてみて、 メッシュの動きが正しいか確認しよう。


Blenderの3D Viewで自作Diffuseをメッシュ上に表示させる方法

Blenderで作業するとき、メイン画面に表示されているメッシュに自作したDiffuseが表示されていると 都合がいいのだが、そのやり方はちょっと直感的でない。やり方は次の通り:

  1. 右下の【Properties】ウィンドウの右から3番目の赤白市松模様のアイコン(Texture)を押す。 その下に三つのアイコンが現れる。そのうち、真ん中の「球に市松」のアイコン(Material textures)を押す。 その下の一覧に、いま3D View画面でメッシュ上に貼られている画像の一覧が表示されている。 このうち、市松アイコンでないものを選択し、その下の「F+×」のうち「×」 を押して除去する。 これを繰り返すと、3D Viewウィンドウに表示されているメッシュは真っ白で表示されることになる。
  2. 一覧の下に「New」と書かれたボタンが現れるので、これを押す。 ボタンの下に「Type」を選択する項目が出るので、「Image or Movie」に変更。
  3. そこから下がったところに「Image」という区分があるので、これを展開。 「Open」を押して、表示させたい画像を選択して「Open Image」。 これで画像は読み込めるが、座標がずれている。
  4. そこから下がったところに「Mapping」という区分があるのでこれを展開。 「Coordinates」を選択する項目があるので「UV」に変更する。

これで3D View画面のメッシュに望みの画像が貼られるはずだ。


改稿:November 23, 2017

初稿:September 20, 2017

表紙に戻る