voxel


MagicaVoxelで作った3DキャラをBlenderを使って
スマイルゲームビルダーに移植するチュートリアルです。

MagicaVoxelもBlenderも使ったことがなく
移植までにかなりつまづいたので、まとめ用にメモメモ

ボクセルを使えば、簡単にかわいいキャラが作れるので
ユニティで3Dキャラ使いたい人にもボクセルはおススメだと思います。



↓↓続きを読む↓↓ をご覧ください 
 

MagicaVoxel to Smile game builder


MagicaVoxelでキャラを作ろう

MagicaVoxelのダウンロード

まずMagicaVoxelのサイトからソフトをダウンロードしましょう
zip版だとインストール不要ですぐに使えます。

ソフトを起動したら
さっそくキャラを作ってみましょう。

voxel

右のリストからサンプルを選ぶことができます。
chr‗knightとかchar_swordとかをもとに
キャラを作っていくとやりやすいかな、と思います。

ポチポチドットを置いていくだけなので
直観的に作れると思いますが、操作方法などは下記のサイトを見てみてください

【MagicaVoxel】お絵描き初心者でも簡単な3Dドット絵 - 使い方 -


Attachでボクセルを置く
Eraseでボクセルを消す
Paintでボクセルの色を変える
Alt押しながらボクセルクリックでスポイト

くらいを覚えておけばOKかな?

モデルを分割しよう

スマイルゲームビルダーに使うときに
ボーンの設定をしやすいように
モデルを「頭」「体」「手足」にわけてエクスポートします。

今回はデフォルトで入っているソードマンを使って試してみましょう。
001
まず「AS」ボタンで別名をつけて保存します。
普通にセーブしてしまうと上書きしてしまうので注意です。


ボーンの設定をするために、手を水平にした状態にします。
武器はあとで追加できるので、外します。
002

このモデルができたら、いったんセーブして
ふたたび「AS」ボタンでコピーを3つ作ります。

SnapCrab_MagicaVoxel @ Ephtracy_2017-7-16_22-46-23_No-00

コピーできたら、消しゴムツール(Erase)を使って頭だけにします。
「sword‗head」などわかりやすい名前にしておきましょう。

同じように、「体」「手足」も作ります。

head hand body
消しゴムで消すときに、モデルの場所を動かさないようにしましょう。
手足は体の中にめりこむぐらいで作るほうがいいかな?
このへんはお好みですが、1マスめりこませてます。(手4マス・足4マスで作ってる)


SnapCrab_MagicaVoxel @ Ephtracy_2017-7-16_22-46-23_No-00

できたら画面右下の「Export」をクリックし「ply」ファイルを選びます。
「頭」「体」「手足」の3つともエクスポートしましょう。


Blenderにインポートしよう

Blenderのダウンロード

Blenderのサイトからダウンロードして解凍しましょう。
zip版でインストールせずに使うことができます。

スマイルゲームビルダーのモデルをダウンロード

スマイルゲームビルダーの各素材のデータ仕様のページから
キャラクターのサンプルデータをダウンロードしましょう。

ページの一番下に
「素材制作時の技術情報 3Dキャラクターサンプルデータ」というリンクがあります。

ダウンロードしたら解凍して
「Blender」フォルダの「c_001a_sample.blend」を開きましょう。
このファイルを編集していくので、「別名で保存」しておきましょう。

c_001a_sampleblend]_2017-7-16_22-49-25_No-00

c_001a_sample.blendを開くと、シオン君のモデルが現れます。

MagicaVoxelのデータをインポート

さきほど作ったボクセルのデータをインポートしましょう。
c_001a_sampleblend]_2017-7-16_22-50-5_No-00
画面左上の「ファイル」メニューから
「インポート」「PLYファイル」を選びます。

ファイルは複数選べるので「頭」「体」「手足」の3つのPLYファイルを
インポートしましょう。

SnapCrab_NoName_2017-7-16_22-51-14_No-00
インポートするとこうなります。
めっちゃでかいです。

サイズを小さくしましょう。
c_001a_sampleblend]_2017-7-16_22-55-22_No-00
Sキーでサイズを変えることができます。
Sキーを押すとサイズ変更のカーソルにかわるので
マウスで調整してもいいですし、キー入力で変えることもできます。

MagicaVoxelにデフォルトで入っているナイトやソードマンは
0.09くらいがちょうどいい感じです。

少しぐらいの大小の違いは、ボーンに影響ないっぽいので
マウスでテキトーにやっても大丈夫です。


Blenderでアニメーション確認

VertexGroupの設定

さて、フツーならここでウェイトペイントでボーンとの関連付けをするのですが
このシオン君はどうやら「VertexGroup」というのを使って
ボーンと関連づいているようです。
なので、ソードマンも同じように「VertexGroup」を使って設定してみましょう。

頭からやっていきます。
c_001a_sampleblend]_2017-7-16_22-56-55_No-00
まず、頭のオブジェクトを選択して編集モードに
(右上のリストからメッシュを選択すると勝手にエディットモードになる)

VertexGroupの右側にある「+」ボタンをクリックすると
あたらしいVertexGroupが作成されます。
VertexGroupの名前はダブルクリックで変えることができます。
名前はボーンの関連付けに使われるので、かならずシオン君に準拠すること

今は頭を選択しているので、VertexGroupの名前は「head」にします。

名前をつけたら「Assign」ボタンを押して
選択されているメッシュとVertexGroupを関連付けます。

ちゃんと関連付けできているか不安なときは
「Assign」の右側にある「Select」「Deselect」ボタンを押すと
そのグループが選択・非選択と切り替わるので確認できます。

c_001a_sampleblend]_2017-7-16_23-1-28_No-00
同じように、体・手足もグループを作っていきましょう。

手足は同じオブジェクト内にメッシュが4つあるので
それぞれに
左手「Larm」右手「Rarm」左足「Lleg」右足「Rleg」という風に
名前を付けて関連付けしていきます。

体は「body」という名前で関連付けします。

メッシュの選択は「Cキー」を押して
マウスでドラッグすると選択しやすいです。
ワイヤーフレームにしておくと、反対面も選択してくれます。


あ、忘れてましたが三角化もしておきましょう!
c_001a_sampleblend]_2017-7-16_23-4-4_No-00

メッシュを選択して「Ctrl+T」で三角化できます。
頭・体・手足 すべて三角化しておきましょう。

オブジェクトを結合する

頭・体・手足を一つのオブジェクトに統合しましょう。

c_001a_sampleblend]_2017-7-16_23-5-57_No-00
まずは右上のリストから、統合したいオブジェクトを
「Shift」キーを押しながらクリックしていきます。

c_001a_sampleblend]_2017-7-16_23-6-32_No-00
オブジェクトを選んだ状態で「Ctrl+J」を押すと統合されます。
(統合されない時はオブジェクトモードになっているか確認)


アーマチュアの設定

統合できたらいよいよ、アニメーションの確認をしましょう。
c_001a_sampleblend]_2017-7-16_23-7-52_No-00
ボーンとモデルを関連付けるには
「アーマチュア」というモノを使います。
スパナのアイコンから
「AddModifies」をクリックして「アーマチュア」を選びます

フツーはここでボーンを作るのですが
すでにシオン君のボーンがあるのでこれを使います。
ac_001animation
アーマチュアの設定で「root」を選びます。
これでシオン君のボーンが動くと、このモデルも動きます。

はじめは「リセットポジション(手が水平の状態)」になっているので
「ポーズポジション」に変えましょう。

画面の下に、アニメーションのタイムラインウィンドウが現れますので
再生ボタンを押してみましょう。

ちゃんとシオン君と同じようにアニメーションすれば成功です!

アニメーションしないときは…
VertexGroupの設定がうまくいってないのかもしれません


ボーンをインポートしよう

さぁ、ここまでできたらもうエクスポートしてもよさそうですよね。
ただこのサンプルにはアニメーションが途中までしか入っていないので
戦闘のアニメーションなどは自分で作らなければなりません。

逆に言うと、アニメーション作れる人は
好きなアニメーションを設定することができます。
(モーション設定ファイル.defでフレーム数などを設定すればOK)

私はアニメーション作れないので
スマイルゲームビルダーにある既存のモーションを使いたいと思います。

スマイルゲームビルダーのボーンをインポートする

スマイルゲームビルダーのモーションを使うには
スマイルゲームビルダーからシオン君のデータをエクスポートします。

「A_Hero01A」フォルダ内にある「motion」ファイルをそのまま使いまわししましょう。

Blenderとスマイルゲームビルダーでは
座標系が違うので、普通にBlenderのボーンをつかうと
モーションのときにモデルがバギョっとなってしまいます。
DEiP2EiUQAEk2Ch
こんなかんじに…

なので、スマイルゲームビルダーの座標系に合わせたボーンが必要になります。

c_001a_sampleblend]_2017-7-16_23-18-47_No-00
「ファイル」の「インポート」から「FBXファイル」を選びます。

スマイルゲームビルダーからエクスポートしたシオン君のデータ
「A_Hero01A」フォルダ内にある
「c_001a.fbx」というファイルをBlenderにインポートしましょう

c_001a_sampleblend]_2017-7-16_23-20-44_No-00

インポートしたデータは、スケールが0.01で保存されているので
とっても小さいです。

c_001a_sampleblend]_2017-7-16_23-22-19_No-00
インポートしたFBXのアーマチュアは
c_001a001に入っていますが、これをc_001aに入れましょう

parentの項目で親を変えることができます。

ここでいらないメッシュやオブジェクトを削除しておきましょう。

1:今まで使っていた「mdl」という名前のメッシュ
2:「c_001a.001」というカラのオブジェクト
3:「root.001」の中にある「body」という名前のメッシュ

これらはもう使いませんので削除します。
アイテムフックは後で使うのでけしません。

c_001a_sampleblend]_2017-7-16_23-23-33_No-00

つぎにボクセルキャラのペアレントもかえましょう。
インポートしたFBXのアーマチュア「root.001」を親にします。

すると、キャラの向きが変わってしまいましたね。

c_001a_sampleblend]_2017-7-16_23-23-47_No-00
ボクセルの向きを-90にしましょう。
(c_001aではなく、キャラのメッシュの向き)

c_001a_sampleblend]_2017-7-16_23-24-39_No-00
インポートしたほうのボーンにアーマチュアの関連付けをしましょう。
root.001に関連付けします。

これでボーンの設定は終わりです。

Blenderで見るとボーンがバギョってなってますが
スマイルゲームビルダーの座標系のまま保存しないとうまく表示されないので
これはこのままおいておきます


テクスチャの設定をしよう

頂点カラーの焼きこみ

ボクセルデータには頂点カラーで色がついていますので
これをテクスチャにしましょう。

c_001a_sampleblend]_2017-7-16_23-25-12_No-00
まずはボクセルキャラのメッシュを選択します。
エディットモードで
「RemoveDoubles」で重複する頂点を削除します。

つぎに「U」キーを押して、UVmappingのメニューのなかから
「SmartUVProject」をクリックします。
SnapCrab_NoName_2017-7-16_23-25-46_No-00

ウィンドウが出てきたら「OK」を押します。

c_001a_sampleblend]_2017-7-16_23-26-11_No-00

つぎに画面上のスクリーンレイアウトを変える部分で
「UVEditing」を選びます。

UVエディット画面が開くので、こんどは画面下の
「New」というボタンをクリックしましょう。

SnapCrab_NoName_2017-7-16_23-27-6_No-00


名前をつけるウィンドウが出るので
キャラの名前などわかりやすい名前をつけて「OK」を押します。

c_001a_sampleblend]_2017-7-16_23-27-28_No-00

キャラの展開図ができました。

c_001a_sampleblend]_2017-7-16_23-27-57_No-00
展開図ができたら、画面をデフォルトにもどして
「カメラのアイコン」をクリック

したのほうに「Bake」という項目があるので
その中にある「Bakemode」を「Vertex Colors」にしてから
「Bake」ボタンをクリックします。

c_001a_sampleblend]_2017-7-16_23-28-14_No-00

UVエディット画面を開くと、テクスチャが焼きこみされていることがわかります。
画面下の「Image」メニューから「Save as image」で
テクスチャを保存しておきましょう。

c_001a_sampleblend]_2017-7-16_23-29-55_No-00
テクスチャができたら、デフォルトの画面にもどって
マテリアルの設定をします。

マテリアルのアイコンをクリックして「New」ボタンをクリック

c_001a_sampleblend]_2017-7-16_23-30-18_No-00
あたらしいマテリアルが追加されました。

c_001a_sampleblend]_2017-7-16_23-30-44_No-00
つぎに「テクスチャ」のアイコンから
「Image」の「Open」ボタンをクリックして
さきほど保存したテクスチャを選びましょう。

これでテクスチャの設定は終わりです。


アイテムフックの設定

ボーンをインポートしたときに、一緒に「Itemhook」というオブジェクトが
ついてきましたね。

これはアイテムを手に持つときに、どこに持たせるかを決めるオブジェクトなのですが
Blenderにインポートしてしまうと親子設定が解除されてしまうようですので
もういちど設定してあげましょう。

SnapCrab_NoName_2017-7-16_23-32-5_No-00

「Litemhook」は「Lhand」のボーンに
「Ritemhook」は「Rhand」のボーンに関連付けましょう。

2頭身キャラはarmまでしかないのでarmにつけそうになるのですが
handにつけないと表示がバギョるので注意です。


FBXでエクスポートしよう

設定をまちがえないように

各素材のデータ仕様のページからダウンロードしたサンプルデータ
「SGB_3Dsamples_chr_20170725.zip」の中に

「3Dキャラクターサンプルデータ.pdf」というPDFファイルがあります。
ここにBlenderでエクスポートする際の詳しい設定がのっているので
その設定にしたがってエクスポートします。

これをまちがうと、うまくスマイルゲームビルダーで使えないので注意です。

c_001a_sampleblend]_2017-7-16_23-33-16_No-00

まずは「ファイル」の「エクスポート」から「FBX」を選びます。

c_001a_sampleblend]_2017-7-16_23-34-27_No-00

画面の左下でエクスポートの設定ができます。
メイン・ジオメトリ・アーマチュア・アニメーション
すべての項目を、PDFに書かれている設定と同じにしましょう。

ここで書き出したFBXファイルと、
スマイルゲームビルダーからエクスポートしたモーションフォルダ
テクスチャファイル
を同じフォルダに入れて、スマイルゲームビルダーにインポートすればOKです。


さいごに

武器や防具なども同じように
スマイルゲームビルダーからエクスポートしたFBXにモデルを上書きすれば
ゲーム内で好きなモデルを使うことができます。

スマイルゲームビルダーの素材を作っている人ってあまり見たことないので
たくさんキャラを作って素材にすれば、みんな使ってくれるんじゃないかな?と思います。
ボクセルはドット絵に近いので、ドット絵師さん期待してます!

ボクセルで作ったおうちとかもいいなーと思っているので
また色々試してみようと思います。


参考サイト:
MagicaVoxelの3DモデルをBlenderに持っていく
MagicaVoxelで作ったデータの頂点数を減らす