2016年10月22日土曜日

[Blender] 複数のShape key を一つにまとめる方法

How to mix multiple shape keys

3次元CG編集ソフト・Blenderにはを移動してアニメーションさせるShape Keyという機能があります。
人物モデルの目や口の開閉アニメーションなどによく使われます。
複数のShape Keyを一つにまとめる方法をまとめました。

© SAPPHIART CHAN


環境

  • Windows 10
  • Blender 2.78


Shape Key付きモデルを用意する

過去のブログ Shape key の変形を固定する方法
でBlenderにインポートした実績がある株式会社サファイアートの「サファイアートちゃん」のFBXファイルをサンプルとします。


サファイアートちゃんの顔は右目・左目・口にそれぞれ独立したShape Keyが複数設定されています。


複数のShape key を一つにまとめる方法

ここから本題です。
Object Mode で一つにまとめたいShape Keyをすべて変形させます。
両目と口の変形をまとめることにします。

右の下向き三角ボタンをクリックして New Shape From Mix をクリックします。

複数の変形をまとめたShape Keyが追加されます。

新しく追加されたShpae Keyだけで両目と口をアニメーションできるようになりました。
※GIFアニメーションです
blog.fujiu.jp 複数のShape key を一つにまとめる方法


注意

まとめられるShape Keyは同一オブジェクト上のものに限るようです。
ユニティちゃんのようにまぶたや目など顔が複数のオブジェクトに分かれているShape Keyをまとめる場合はJoinコマンドで結合するとできるようになります。
blog.fujiu.jp 複数のShape key を一つにまとめる方法
© Unity Technologies Japan/UCL


関連ブログ

[Blender] Shape key の変形を固定する方法
[Blender] CLIP STUDIOにUnity3DやMMDのキャラクターを移植する方法
BlenderのモデルデータをMMDに変換する方法
[Blender] ボーンを削除したらメッシュが動かないときの直し方
[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
[Blender] Pythonで複数の設定を一瞬で編集する方法

以上、参考になれば幸いです。

2016年10月15日土曜日

[Blender] Shape key の変形を固定する方法

How to freeze deformed vertices with shape keys

3次元CG編集ソフトの Blender には頂点を移動してオブジェクトを変形する Shape Key という機能があります。
人物モデルなら口や目の開閉アニメーションなどによく使われます。
口を開けたまま、目を閉じたままなど、Shape Keyの変形を固定してFBXファイルにエクスポートする方法をまとめました。
blog.fujiu.jp [Blender] Shape key の変形を固定する方法
© SAPPHIART CHAN


環境

  • Windows 10
  • Blender 2.77


Shape Key付きFBXファイルをインポートする

複数のShape Keyを持ち、Blenderに比較的インポートしやすい株式会社サファイアートの「サファイアートちゃん」のFBXファイルをサンプルにします。
サファイアートちゃんはゲームエンジン・Unity3DのAssetストアや公式サイトから無料でダウンロードできます。
BlenderはFBXインポート時のパラメーターによってShapke Keyを動かすと顔が爆発することがあるのですが、今回は下記の設定でインポートしました。

Main
Manual Orientation を オン

Armatures
Automatic Bone Orientation を オン

「faceFlat」というパーツは使わないので削除します。
一部ボーンの向きやマテリアルの割り当てなどが不正な気がしますが無視します。


Shape Key の変形を固定する方法

サファイアートちゃんは15種類ほどShape Keyがあり目や口を変形できます。

ここから本題です。
Shape Keyの変形を固定するには固定したいShape Keyを選んで Move To Top でリスト内の一番上に移動させます
Shape Keyの変形を固定するには固定したいShape KeyをShape Keysリストの一番上に移動させます
口を開けた face_jaw_open_BS という表情で固定したければ、右の下向き三角ボタンをクリックして face_jaw_open_BS を一番上に移動させます。

2番目以降のShape Keyをすべて削除すれば変形を固定したままFBXファイルにエクスポートできます


変形の確認

確認のため、変形を固定したFBXファイルにエクスポートし、CLIP STUDIO MODELERにインポートしてみました。
Blenderでは非表示だった舌や歯が表示されていますが、変形していることが確認できました。

ほかのモデルでも同じ方法で変形を固定できます。

© Unity Technologies Japan/UCL


関連ブログ

[Blender] CLIP STUDIOにUnity3DやMMDのキャラクターを移植する方法
BlenderのモデルデータをMMDに変換する方法
[Blender] ボーンを削除したらメッシュが動かないときの直し方
[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
[Blender] Pythonで複数の設定を一瞬で編集する方法

以上、参考になれば幸いです。

2016年10月8日土曜日

[Blender] CLIP STUDIOにUnity3DやMMDのキャラクターを移植する方法

How to port 3D human models to CLIP STUDIO

MMDモデルの「プロ生ちゃん」(PMXファイル)とUnity3Dアセットの「サファイアートちゃん」(FBXファイル)をCLIP STUDIO用3Dキャラクターに移植できたのでその方法をまとめました。
blog.fujiu.jp CLIP STUDIO に Unity3D や MMD のキャラクターを移植する方法

CLIP STUDIOに移植するとマンガ・イラスト作成ソフトのCLIP STUDIO PAINTやCG動画作成ソフトのCLIP STUDIO ACTIONで使えるようになります。
移植には3次元CG編集ソフト Blender などを使います。
CLIP STUDIO MODELERはハングアップすることが多いため移植中に起こったトラブルはすべて自己責任で処理するようお願いします。
また、各ソフトの操作説明は省略します。


環境

  • Windows 10
  • CLIP STUDIO MODELER 1.6.3 無料版 (以下、MODELERと省略します)
  • Blender 2.77a + PMXインポーターアドオン(改変Blender2Pmx)
  • PMX Editor 0.2.2.2
  • PMX2FBX.exe (Nora氏が公開しているUnity3D用ユーティリティ MMD4Mecanim に含まれるコマンド。PMXファイルをFBXファイルに変換するのに使います)


モデルを体・頭・髪の3つに分ける理由

大まかな手順を説明すると、モデルの体・頭・髪ごとのFBXファイルを作成してMODELERにインポートするだけです。
ただし、過去のブログ MakeHumanでCLIP STUDIO用3Dキャラクターを作る方法 のように必ずしも体・頭・髪に分ける必要はありません。
CLIP STUDIO PAINTでは頂点モーフが使えませんが、顔のパーツを表情ごとに分けての用意すれば差し替えることができます。
体は衣装ごとに、髪は髪型ごとに分けて用意すれば差し替えることができます。


[Unity3D・MMD共通] 体のパーツをBlenderでFBXファイルにエクスポートする

MMDモデルの場合はBlenderにインポートする前にPMX Editorで次の通りに編集しておきます。特にモーフは削除しないと MODELER がハングアップすることがあります。
  • 全ての親ボーン、センターボーン、モーフ、剛体、Jointは全て削除する
  • 上半身ボーンの親を下半身ボーンに変更する
  • あらかじめTポーズにした方がいい

移植したいモデルをBlenderにインポートして次の通りに編集します。
  • メッシュは頭・目・髪などを削除し、首から下を残す
  • ボーンは頭を含めて頭から下を残して他(髪のボーンなど)は削除する。頭の末端ボーンはあれば残す
  • 頂点グループに影響がないボーン(Rootなど)を削除する
  • 表示しないパーツのメッシュを削除する
  • 腕や手首の捻りボーンは削除した方がいい
  • 親指の向きを人差し指と同じ向きにそろえた方がいい
  • 指のボーンが4本以上で構成されている場合は削除して3本に減らす
    Blenderでボーンを削除するときの注意点は過去のブログ
    [Blender] ボーンを削除したらメッシュが動かないときの直し方
    にまとめてあります。
  • 衣装がスカートの場合、スカートの頂点グループのメッシュにスカート用マテリアルを割り当てる

最後のスカートは、後述するMODLERのスカート設定でスカートのメッシュをマテリアル名で指定する必要があるため特別な措置です。
サファイアートちゃんの衣装 ClothOuter を例に説明します。
この衣装は Sapphi_clothes というマテリアルが割り当てられています。

Sapphi_clothes マテリアルをコピーして Skirt_Sapphi_clothes というマテリアルを作り、スカートの頂点グループに割り当てます。

こうしておくとMODLERで Skirt_Sapphi_clothes のマテリアルを選んでスカート設定できるようになります。
サファイアートちゃんのスカートは複数の衣装が重なっているのでこの作業を全てのスカートの頂点グループに行います。

以上の編集が済んだらFBXファイルにエクスポートします。


[Unity3Dの場合] 顔のパーツをBlenderでFBXファイルにエクスポートする

  • メッシュは顔、目、耳などを残して他は削除する
  • ボーンは頭を含めて頭から上を残して他(首から下)は削除する
  • 髪のボーンは削除する

以上の編集が済んだらFBXファイルにエクスポートします。


[MMDの場合] 顔のパーツを PMX2FBX.exe でFBXファイルに変換する

顔パーツに必要なメッシュとボーンは [Unity3Dの場合] と同じです。
ただし、原因は不明ですが自分の環境ではMMDモデルの顔をBlenderでFBX化すると MODELER がハングアップしてしまいます。
PMX Editorでモーフ、剛体、Jointを削除した顔のみのPMXファイルを作り PMX2FBX.exe でFBXファイルに変換したら MODELER にインポートできました。

ちなみに自分の環境ではPMX2FBX.exeでFBX化したモデルとBlenderにPMXをインポートしてFBX化したモデルとでは2.5倍のスケール差がありました。
そのためBlenderにインポートした体と髪を、顔と同じスケールに倍率修正する必要がありました。


[Unity3D・MMD共通] 髪のパーツをFBXファイルにエクスポートする

MMDモデルの場合はPMX Editorでモーフ、剛体、Jointを全て削除してからBlenderにインポートします。
  • メッシュは髪と付随するアクセサリーを残して他は削除する
  • ボーンは頭を含めて頭から上を残して他は削除する
以上の編集が済んだらFBXファイルにエクスポートします。


MODELER に体のFBXファイルをインポートする

MODELER に体のFBXファイルをインポートして標準ボーンマッピングを行います。
この操作は MakeHumanでCLIP STUDIO用3Dキャラクターを作る方法 にまとめてあります。

スカートを着用したキャラクターならスカート設定をします。

脚がスカートを突き抜けないようコライダーを設定します。

長い髪に物理演算を入れる場合は、髪が体を突き抜けないように物理設定で衝突グループやジョイントを設定をします。
揺らせたいところがあれば物理演算とジョイントを設定します。


MODELER に顔のFBXファイルをインポートする

顔をインポートします。位置や向きがずれる場合は数値入力して調整します。


MODELER に髪のFBXファイルをインポートする

顔をインポートします。位置や向きがずれる場合は数値入力して調整します。
揺らせたいボーンには物理演算とジョイントを設定します。


ここまで完成したら
ファイル - 新規素材として登録
でCLIP STUDIO PAINTなどで使えるようになります。


注意点

  • Blender や PMX2FBX.exe で作成したFBXファイルはCLIP STUDIOでは動作保証外です。
  • 各モデルのライセンスには十分にご注意下さい。
  • いかなるライセンスであってもライツホルダーでなければCLIP素材に出品することはできません。


関連ブログ

[Blender] ボーンを削除したらメッシュが動かないときの直し方
[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
[Blender] Pythonで複数の設定を一瞬で編集する方法
MakeHumanでCLIP STUDIO用3Dキャラクターを作る方法
BlenderのモデルデータをMMDに変換する方法

以上、参考になれば幸いです。

2016年10月1日土曜日

[Blender] ボーンを削除したらメッシュが動かないときの直し方

How to duplicate vertex weight

3DキャラクターをBlenderにインポートし、ボーンを削除したらそのボーンに割り当てられていた肌(スキニングされていたメッシュ)が動かなくなり、関節を曲げると肌が餅のように伸びてしまいました。
blog.fujiu.jp [Blender] ボーンを削除するとメッシュが動かなくなるときの直し方
© SAPPHIART CHAN

ボーンを消す前に頂点ウェイト(ボーンと肌の関連度)を親ボーンにコピーしたら解決したのでその方法をまとめました。


環境

  • Windows 10
  • Blender 2.77


ボーンを削除すると起きる問題

株式会社サファイアートがUnityアセットとして公開している「サファイアートちゃん」を例に挙げます。
UnityアセットのFBXファイルとテクスチャ画像ファイルをコピーしてBlenderにインポートしました。
サファイアートちゃんは両腕に手首を捻らせるための ForearmTwist ボーンがあります。

これらの捻りボーンを削除して腕を動かすと下の画像のように手首が伸びてしまいます。

サファイアートちゃんの腕の各頂点は複数の頂点グループを共有し、どの頂点グループの影響をどれくらい受けるかという「頂点ウェイト」が設定されています。
頂点ウェイトに影響を与えるボーンを削除したため、動かなくなってしまったわけです。


Modifierで頂点ウェイトを親ボーンにコピーする方法

ボーンを削除する前に削除したいボーンの頂点ウェイトを親ボーンにコピーすれば解決します。
しかし頂点ウェイトは無数の頂点ごとに0.0から1.0までの数値を指定するため、手作業でコピーするのは現実的ではありません。
頂点ウェイトをコピーするには Modifier を使うと簡単です。
Modifierの設定方法は次の通りです。

(ドロップダウンメニュー) VertesWeightMix
Vertex Group A: 削除したいボーンの親ボーン (の頂点グループ)
Vertex Group B: 削除したいボーン (の頂点グループ)
Mix Mode: Add
Mix Set: VGroup B

Modifier で VertesWeightMix を設定するときはWeight Paint画面にしてボーン名を表示すると変化がわかりやすくなります。

Modifierが正しく設定できたらApplyボタンをクリックし、ボーンを削除します。
下の画像は左手首のみ捻りボーン (ForearmTwist_L) の頂点グループを親ボーンにコピーしてから左右の手首捻りボーンを削除した結果です。


ModifierをPythonスクリプトで実行する方法

ModifierはPythonスクリプトでも実行できます。
下のスクリプトの日本語で書いた部分を個別に修正すればコピー・ペーストで実行できるサンプルです。




どんなときに役立つか

UnityアセットやMMDモデルなど、ボーンの数や構成はそれぞれ異なりますです。
多くの人型モデルの指は3本のボーンで構成されることが多いですが、下の画像のように4本の指で構成するモデル作者もいらっしゃいます。

マンガ・CG動画の作成ソフト CLIP STUDIO では3Dキャラクターの各指のボーンは3本と決められているため4本ボーンのキャラクターを登録した場合、手を握りしめるポーズが下の画像のようになります。
これでは手に見えません。

CLIP STUDIOの仕様に合せて各指のボーンを3本に減らす必要がありますが、前述の通りボーンを削除するだけでは肌が伸びてしまいます。
4本目のボーンの頂点グループを親ボーンにコピーしてから4本目のボーンを削除し、手を握りしめるポーズをとった結果が下の画像です。
期待通りの表現になりました。

モデルデータを他のアプリケーションに移植する際にボーンを削除する必要があるかもしれません。
そんなときに知っていると便利です。


関連ブログ

[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
BlenderのモデルデータをMMDに変換する方法
Blenderで作ったアニメーションがUnity3Dで違う動きをする原因と直し方
[Blender] Pythonで複数の設定を一瞬で編集する方法
MakeHumanでCLIP STUDIO用3Dキャラクターを作る方法
Metasequoia EX の FBXファイルの互換性を試してみました
Shade3D の FBXファイルの互換性を試してみました

以上、参考になれば幸いです。

2016年9月24日土曜日

Metasequoia EX の FBXファイルの互換性を試してみました

Can Metasequoia EX import and export compatible FBX files

CG動画やゲーム開発に使われる3次元CGはFBXフォーマットがデファクトスタンダードです。
FBXを扱うならAutodesk製品が最善策ですがコストがネックです。
無料で使えるBlenderはFBXのインポートやエクスポートができないことがあり悩みの種です。
そこで前回は Shade3D Basicを使ってFBXファイルをインポート・エクスポート してみたところ、シェイプ(頂点モーフ)が削除されることがわかりました。

今回は Metasequoia EX でFBXファイルのインポートとエクスポートをしてみました。

© Unity Technologies Japan/UCL


環境

  • Windows 10
  • Metasequoia EX 4.5


Metasequoia EXを選んだ理由

Metasequoia EXを選んだ理由は次のとおりです。
  • 値段が安い (2万円くらい)
  • FBXファイルのインポートとエクスポートができる
  • 頂点モーフ機能がある
以下、「Metasequoia EX」をMetasequoiaと略します。


FBXファイルをインポートした結果

ユニティテクノロジーズジャパンのUnityアセット・ユニティちゃんのFBXファイルをMetasequoiaにインポートしました。
Blenderのように顔が散らかりません。
blog.fujiu.jp Metasequoia EX の FBXファイルの互換性を試してみました

各材質にテクスチャ画像ファイルを指定して下のようになりました。
デフォルトでは全ての頂点モーフが合成されるため目やまゆ毛がたくさん表示されますが、オブジェクトビューで非表示にできます。

モーフを使ってみたところ、口は動作しましたが

目やまゆ毛のモーフは問答無用で削除されました


FBXファイルをエクスポートした結果

Metasequoia からエクスポートしたユニティちゃんをCLIP STUDIO MODELERやBlenderにインポートしたら顔が消えたり、服の形が変わっていました。
下の画像はCLIP STUDIO MODELERにインポートした結果です。
顔がなくなりました。
ユニティちゃんは3次元キャラクターとしては珍しく服を重ね着しているのですが、上着から見えないはずの服がはみ出ています。
下の画像はBlenderにインポートした結果です。CLIP STUDIO MODELERとは違う形で服がはみ出ています。

Pose modeで動かすとウェイトがおかしいことがわかりました。


まとめ

MetasequoiaでユニティちゃんのFBXファイルをインポート・エクスポートすると結果、Blendeとは違うところで互換性が保たれないことがわかりました。
ですが全てのFBXでこの現象が起きるわけではありません。Metasequoiaでモーフやウェイトが正常にエクスポートできるモデルもありました。
BlenderにインポートできないFBXファイルがMetasequoiaにインポートできることもありました。


© 株式会社インターネット

現時点でなるべく安くFBXフォーマットを交換したければMetasequoiaとBlenderの両刀使いがよさそうです。
※このブログを書いているのは ZBrush Core が正式発表直前のため、近い将来評価が変わる場合があります。


関連ブログ

Shade3D の FBXファイルの互換性を試してみました
MakeHumanでCLIP STUDIO用3Dキャラクターを作る方法
[Blender] Pythonで複数の設定を一瞬で編集する方法
[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
BlenderのモデルデータをMMDに変換する方法
Blenderで作ったアニメーションがUnity3Dで違う動きをする原因と直し方

以上、参考になれば幸いです。

2016年9月10日土曜日

Shade3D の FBXファイルの互換性を試してみました

Can Shade3D import and export compatible FBX files

ゲームエンジンの Unity3D や Unreal Engine などで使われる3次元CGはFBXフォーマットが広く使われています。
FBXフォーマットのファイルを加工して再利用することが必要になることもあります。
そこで3次元CG用モデリングソフトのShade3Dを使ってFBXファイルのインポートとエクスポートを試してみました。
blog.fujiu.jp Shade3D の FBXファイルの互換性を試してみました
© Unity Technologies Japan/UCL


環境

  • Windows 10
  • Shade3D Basic Ver.16


Blenderではダメなのか

FBXが扱えるフリーソフト(寄付歓迎)といえば Blender があります。
ですが、BlenderのFBXファイルのインポートとエクスポートは互換性が低めです。
下の画像はユニティ・テクノロジーズ・ジャパンのキャラクター・ユニティちゃんのFBXファイルをBlenderに取り込んだ結果です。
顔が大きさも配置場所もばらばらで元に戻す手直しが必要です。

FBXフォーマットはAutodeskの規格でありプロプライエタリーな FBX SDK が公開されています。
一方、BlenderはGPLのオープンソースソフトウェアです。
GPLのBlenderは非GPLのFBX SDKと動的リンクして公開することができないため、BlenderにFBXとの高い互換性を望むのは難しい事情があります。
FBXを扱うならAutodeskのMayaや3dsMaxが最善の選択ですが厳しいコストがかかります。


Shade3Dを選んだ理由

Autodesk製品よりコストが低いFBXファイルの交換用としてShade3Dを使ってみました。
Shade3Dを選んだ理由は次のとおりです。
  • 値段が安い (一番安いグレードで1万円くらい)
  • FBXフォーマットのインポートとエクスポートができる
  • Webサイトのチュートリアルが充実している
  • ベンダーがUnity3Dのサポートに積極的に見える
  • 毎年バージョンアップしている


Shade3DのFBXの互換性

Shade3Dでユニティちゃんをインポートしてみました。

各パーツは正常な位置にあります。
テクスチャは指定する必要がありますが、Blenderに比べると少ない操作で済みます。


Shade3Dを使ってみた結果

Shade3DにインポートしたユニティちゃんをFBXでエクスポートし、Blender や CLIP STUDIO MODELER にインポートしたらShape Keys(頂点モーフ)がなくなっていました。
下の画像はShade3DのFBXをBlenderにインポート下結果です。12種類あるはずのMTH_DEFのSyape Keysが全てなくなりました。

Shade3DはFBXファイルのShape Keysのインポート・エクスポートの互換性がないか、モーフ機能がないようです。

その他の面では
  • マウス操作によるビューのスクロールがBlenderの逆方向に動く
  • Blenderにある「マテリアル(材質)が割り当てられた面を選択する機能」と同じ機能が見当たらない
  • 自分の環境ではCOLLADAファイルへの書き出しが必ずフリーズする
といった事がありました。


まとめ

Shade3Dは低価格であるもののBlenderユーザーがデータ交換用として使うには機能が足りないように思いました。
ただし造形機能が豊富なのでモデリングに集中したい人に検討をお勧めします。


© 株式会社インターネット


関連ブログ

MakeHumanでCLIP STUDIO用3Dキャラクターを作る方法
[Blender] Pythonで複数の設定を一瞬で編集する方法
[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
BlenderのモデルデータをMMDに変換する方法
Blenderで作ったアニメーションがUnity3Dで違う動きをする原因と直し方

以上、参考になれば幸いです。