週刊SleepNel新聞

SleepNel所属のぽうひろが日々の個人開発で気になったことを綴ります。

Puppet3Dを試してみる

この記事は
Unity アセット真夏のアドベントカレンダー 2018 Summer!
http://assetstore.info/eventandcontest/adventcalendar/asset-adventcalendar2018summer/
に参加しております。

私はPuppet3Dを試してみるということでエントリを書いてみたいと思います。
アセットはこちらです。

公式サイトはこちら
https://www.puppet3d.co.uk/

Puppet3Dは、2018/6月の~ドル以上買ったらアセット無料でもらえるよ!キャンペーンでいただいたアセットです。
たまに3Dモデラーさんからボクセルのキャラクターを提供していただいたりすることがあるのですが、Blenderとかでリギング?やボーン?やアニメーション?を入れたりするのが大変そうなイメージがあります(自分はあまりやったことがない)
それをPuppet3Dの素敵な機能で楽に作業できちゃうんじゃないかな!
という淡い期待を込めて、実際にやってみていきたいとおもいます。

Puppet3Dの特徴をアセットページのまま転載します。
Features

  • AUTORIG - Rig it in a minute! Makes rigging a biped really fast.
  • Create bones and skin them to any character or asset.
  • IK & FK - Make IK controls for the limbs, which can blend between IK and FK.

Create a "Mod-Rig" on a humanoid in 1 click, to modify or make new animations.

  • Advanced Rigging - Spline Controls for tails and bendy things, Parent, Orient, IK and Global controls.
  • Paint the Skin Weights.
  • Voxel based default skin weights. Spreads the weights through the characters volume.
  • Pose Saving & Loading
  • Bake Control Animations Onto Bones

なんとなく、

  • AUTORIG - Rig it in a minute! Makes rigging a biped really fast.
  • Create bones and skin them to any character or asset.
  • Voxel based default skin weights. Spreads the weights through the characters volume.

この辺の機能が使えたら(私は)とても幸せになれそうですね(n*´ω`*n)
このあたりを重点的に使ってみたいと思います。

# AUTORIG
まずはMagicaVoxelに最初からついているキャラクターをエクスポートしてみます。
MagicaVoxel
は1dotの箱をどんどんくっつけてボクセルモデルを作るイメージのお手軽3Dモデラーソフト(無料)です。
こちら利用します。
f:id:pouhiroshi:20180813101116p:plain

モデルはTポーズにしておくと、リギングしやすいそうなので、ちょっと改造してTポーズにしておきます。
f:id:pouhiroshi:20180813101125p:plain

エクスポート形式、いっぱいあってよくわからないですが、よくみかけるobj形式で出してみます
f:id:pouhiroshi:20180813101136p:plain

3つのファイルができました。
f:id:pouhiroshi:20180813101145p:plain

これをUnityのプロジェクトにドラッグドロップでいれてみます。
f:id:pouhiroshi:20180813101210p:plain

objファイルをInspectorで見ると、取り込めているようですね。
これをAUTORIGしてみましょう!

objをScene上に配置して、MeshRendererがついているGameObjectを選択します。
f:id:pouhiroshi:20180813101257p:plain

選択状態で Window > Puppet3D を選びます。
f:id:pouhiroshi:20180813101338p:plain

すると、Puppet3Dのメニューが出てきます。なんかこれでできそうですね!
ボクセルなのでKeep Voxelsのチェックをつけて、まずはMake Guidesボタンを押してみましょう。
f:id:pouhiroshi:20180813101406p:plain

すると、人型に点がうたれましたね。
先ほどはなかったMesh Colliderもつけられているようです。

またHierarchy上にはchr_sword_GUIDES なるオブジェクトが作られています。
中をみてみましょう。
f:id:pouhiroshi:20180813101503p:plain

ちょっとわかりにくいかもしれませんが、各体の部位ごとのGuideスクリプトがついたGameObjectが作られていました。これをいい感じの位置に調整してリグをつけるのかもしれません。

f:id:pouhiroshi:20180813101533p:plain
結構ずれてる(頭が大きいせいかな・・・・)Guideの位置を移動して調整します。
これを自動でやってほしかったんだけど。。。w


これでAuto Rigボタンを押してみます!
f:id:pouhiroshi:20180813101550p:plain
ぎゃあああああ! なんかレインボーカラーになってしまいましたよ!
Keep Voxelsというチェックを外して再度AutoRigボタンを押してみると・・!!

f:id:pouhiroshi:20180813101608p:plain
なんか素敵な感じになりました!
骨も見えています。

これでいちおうリギングとボーンが入ったのかな?
Global_CTRLというGameObjectができているので、中をのぞいてみると
IKの部位に応じたコントローラ(IK Control)が入っています。
f:id:pouhiroshi:20180813102145p:plain

このIKFKというスライダをいじってみると。。。
f:id:pouhiroshi:20180813102210p:plain
手が腕と連動して動きましたよ!!

IK Controlのスライダだけではなく、〜CTRLとなっているオブジェクトのPositionやRotationをかえるとこれでも部位が連動して動作します。
(これは胸のポジションを前にだして、胸を突き出している様子)
f:id:pouhiroshi:20180813102225p:plain

このGlobal_CTRLを操作すれば、スクリプトから面白い動きをさせることができそうですね!

なお、ちょっとモデルを見るとわかるのですが、頭と体がちゃんと分離できておらず、
同じスキンのような感じで頭がひっぱられて動いてしまっています。
おそらく、Puppet3Dの以下の機能
# Create bones
# Voxel based default skin weights
をちゃんとつかえば分離できるのかもしれませんが、今回は時間の関係でここまでにしたいと思います。

ここまで、Puppet3Dで3Dキャラクターのobjモデルを読み込ませてリギングや骨入れする機能を使ってみました。

他にも機能がいっぱいあって可能性を感じます。

ぜひ、ピンときた方は使ってみてくださいね!

明日は
うら干物さんの 「稲妻のアセットを使って、フォースの暗黒面に触れる」
です。エフェクト系の記事でしょうか、楽しみですね!

それではまた!