2015年08月21日

(SimPeople)Blenderでシムピのモーションを作ってみよう 番外編 -MMDからモーションを借りてくる-

さて、今回はちょっと息抜きがてらのお遊び企画です。
モーションが出力できるようになったので、既存のモーションで遊んでみましょう。

というわけで、MMDのモーションをシムピに持ってきて踊らせてみます。
ボーン構造や各部のサイズが違うので完全に正しくとは行きませんが、シムピの表示サイズならそれなりに見られるものにはなります。



記事の公開にあたって、Blender用プラグインを更新しました。15/8/21以前にダウンロードした方は、新しいバージョンに更新する必要があります。
変更したのはMMDに関する部分だけなので、MMDから変換しない方は問題ありません。

更新される方はこちらからどうぞ。
シムピープル用 Skin/Motion 作成セット Ver.0.3a



さて、MMDからの変換ですが、直接読み込ませるのは色々しんどいので、他の方が作成したインポーターをお借りします。
今使えるインポーターでは2.6用のものが使い勝手も互換性もいいので、Blender2.69をインストールします。Blenderは複数バージョンを同時にインストールして使えるので、2.49bを入れていても問題ありません。私はメインに使うのは2.49bなので、ファイルの関連付けは2.49bのままにしてあります。

その後mmd_toolsをインストールしてやれば、MMDのモデルとモーションが読み込めるようになります。
mmd_toolsのダウンロードはこちらです。
https://github.com/sugiany/blender_mmd_tools

インストール方法はリンク先に書いてあります。注意事項として、ファイルをコピーした後Blenderの設定メニューで有効にしないとメニューに出てきません。私が作成したプラグインでも同様の設定があるので、次で詳しく述べます。



2.6でモーションを読み込んだら、そのモーションを2.49に持ってこないといけません。手ごろな方法が見当たらなかったので、モーションをそのまま書き出すプラグインを作成しました。モデルを選択して実行すると、モーションを.csvテキストファイルとして書き出してくれます。

というわけで、データ移動用のプラグインをインストールします。
Blender2.69 64bit版をインストールしたなら、
Program Files\Blender Foundation\Blender26\2.69\scripts\addons\

以下に io_raw_keyframeフォルダをフォルダごとコピーしてください。その他のバージョンなら適宜読み替えてください。


anim3-1.jpg
anim3-2.jpganim3-3.jpg
その後、Blender内でユーザー設定ウインドウを開いて、アドオン→インポート/エクスポート内にある"Export raw keyframe (.csv)"にチェックを入れれば有効になります。
mmd_toolsを有効にしていないときは、ここで同様の設定をしておきましょう。


anim3-4.jpganim3-5.jpg
また、この後読み込むMMDのモデルは日本語が使われているので、設定で日本語化しておきましょう。Systemタブの右下にある"International Fonts"にチェックを入れると、各種翻訳が選べます。InterfaceとTooltipsをONにすれば、メニューとツールチップも日本語になるのでお好みで。以下の画面では日本語メニューで解説しています。

設定した後は、「ユーザー設定の保存」ボタンを押して保存しておきます。設定は自動保存されないので、保存せずに終了すると元に戻ってしまいます。



Blenderの設定はここまでで終了です。続いてMMD用のモデルとモーションを用意しましょう。
MMD本体をダウンロードしてきて展開すると、
UserFile\Model\

内にデフォルトでモデルが入っています。今回はその中の初音ミクVer2を使用します。
理由は単純に、デフォルトモデルで多く使われているので大体の配布モーションはそれなりの互換性があると思われるからです(MMDはモデルによって体型が違うので、対応したモーション以外は微妙にモーションが変わります)。
あまり妙なモデルでなければ使えると思いますし、シムの体型に近いほど正確に変換できるので、別のモデルの方がいい結果が出るかもしれません。まあお遊びですしあまり細かいことは気にしない方向で。

変換するモーションはお好きなものをダウンロードしてきてください。ニコニコ動画などで探せば色々公開されています。モーションのライセンスはそれぞれですから、よく確認して使用してください。



anim3-6.jpg
さて、では読み込んでみましょう。
設定でmmd_toolsを有効化していれば、3Dウィンドウの左にmmd_toolsのメニューが出ているはずですから、そこからImportボタンで"初音ミクVer2.pmd" を読み込みます。日本語化していないと文字化けしているかもしれません。その場合は先程解説した日本語化を行ってください。
いくつか設定がありますが、すべてデフォルトのままでインポートしてください。


anim3-7.jpg
上手く読み込めれば、ミクのモデルが表示されるはずです。


anim3-8.jpg
モデルが読み込まれたら、続いてモーションを読み込みます。モデルを選択してから、下の方に表示される"Import Motion"ボタンで読み込みます。上にも同じ名前のボタンがありますが、微妙に動作が違うので上のボタンは使用しないでください。


anim3-9.jpg
上手く読み込まれたら、タイムラインウィンドウの再生ボタンで見てみましょう。大体は正しく読み込まれているはずです。特殊なモデル用モーションだとmmd_toolsが対応していないかもしれませんが。
時々しゃがむモーションなどで足がおかしくなっていることがありますが、これはMMDとBlenderの仕様の違いによるものなのでどうにもなりません。それほど多くはないと思うので、どうしても気になるところは手作業で直してください。


anim3-10.jpg
Blender上で上手く再生できれば、あとはこれをシムピ用に出力するわけですが、残念ながら2.6から直接シムピ用に保存するエクスポーターはありません。なので、一旦テキストにRawデータとして保存して、2.49で読み込んで出力することになります。

初音ミクのモデルを選択して、
ファイル→エクスポート→Raw keyframe(.csv) で一旦保存します。
ここで2.6上での作業は終了です。必要なら.blendファイルを保存しておきましょう。



続いて2.49上での作業になります。Skin/Motion 作成セットに入っている設定済み.blendファイルを使います。対応しているのは大人モデルのみなので、そちらを開いて下さい。
自分でアニメーション用モデルを読み込んだファイルがあればそれでも構いません。


anim3-11.jpg
ここで一つ注意事項が。読み込み前に、ActionEditorウィンドウは別のウィンドウ、TimeLineなどに変えておきましょう。
キー数がとんでもなく多いので、キーを表示させようとすると数秒〜十数秒に1度しか操作を受け付けなくなるほど重くなります。
キーを表示させるとしても、読み込み後にスクリプトで不要なキーを削除した後にして下さい。

後は通常のモーションの読み込みと同じように、モデルを選択して
File→Import→"Sims Skin/Motion File (.skn .cmx .csv)" から先程保存した.csvを開きます。
モーションの長さにもよりますが、読み込みに数分かかるかもしれません。Dosウィンドウの方に進行状況が出ているので、あまりに時間がかかるようならそちらを見てみて下さい
無事読み込みが終了したら、一度保存しておきましょう。後で泣かなくて済みます。

もしキーフレームを表示したいのなら、スクリプトで不要なキーフレームを削除してからにしましょう。
以前解説したように、ScriptウィンドウからScripts→Animation→Clean Animation Curves を選択、Object Action でOKです。これも結構な時間がかかるのでのんびり待ってください。
これで多少は軽くなりますが、それでも長めのモーションだと開いて後悔するレベルだと思います。

タイムラインの再生ボタンからモーションを再生してみてください。足の長さなどが違うので、どうしても多少の誤差が出てしまいます。まあこの辺は勘弁してください。



これでシムピ用への変換は終了です。後は通常のモーションと同じように保存すれば、ゲーム中で再生することが出来ます。
4分少々のダンスモーションで、大体800kb位のサイズになります。まあ、今時のマシンならゲーム中に再生しても特に問題はありませんでした。



試しに変換したモーションがこちらになります。なお、苦情は受け付けておりません。


では今回はこの辺で。


.

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を修正



.
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。