
MagicaVoxelで作った3DキャラをBlenderを使って
スマイルゲームビルダーに移植するチュートリアルです。
MagicaVoxelもBlenderも使ったことがなく
移植までにかなりつまづいたので、まとめ用にメモメモ
ボクセルを使えば、簡単にかわいいキャラが作れるので
ユニティで3Dキャラ使いたい人にもボクセルはおススメだと思います。
MagicaVoxel to Smile game builder
MagicaVoxelでキャラを作ろう
MagicaVoxelのダウンロード
まずMagicaVoxelのサイトからソフトをダウンロードしましょうzip版だとインストール不要ですぐに使えます。
ソフトを起動したら
さっそくキャラを作ってみましょう。

右のリストからサンプルを選ぶことができます。
chr‗knightとかchar_swordとかをもとに
キャラを作っていくとやりやすいかな、と思います。
ポチポチドットを置いていくだけなので
直観的に作れると思いますが、操作方法などは下記のサイトを見てみてください
【MagicaVoxel】お絵描き初心者でも簡単な3Dドット絵 - 使い方 -
Attachでボクセルを置く
Eraseでボクセルを消す
Paintでボクセルの色を変える
Alt押しながらボクセルクリックでスポイト
くらいを覚えておけばOKかな?
モデルを分割しよう
スマイルゲームビルダーに使うときにボーンの設定をしやすいように
モデルを「頭」「体」「手足」にわけてエクスポートします。
今回はデフォルトで入っているソードマンを使って試してみましょう。

まず「AS」ボタンで別名をつけて保存します。
普通にセーブしてしまうと上書きしてしまうので注意です。
ボーンの設定をするために、手を水平にした状態にします。
武器はあとで追加できるので、外します。

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

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



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

できたら画面右下の「Export」をクリックし「ply」ファイルを選びます。
「頭」「体」「手足」の3つともエクスポートしましょう。
Blenderにインポートしよう
Blenderのダウンロード
Blenderのサイトからダウンロードして解凍しましょう。zip版でインストールせずに使うことができます。
スマイルゲームビルダーのモデルをダウンロード
スマイルゲームビルダーの各素材のデータ仕様のページからキャラクターのサンプルデータをダウンロードしましょう。
ページの一番下に
「素材制作時の技術情報 3Dキャラクターサンプルデータ」というリンクがあります。
ダウンロードしたら解凍して
「Blender」フォルダの「c_001a_sample.blend」を開きましょう。
このファイルを編集していくので、「別名で保存」しておきましょう。
![c_001a_sampleblend]_2017-7-16_22-49-25_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/e/5/e521d833-s.png)
c_001a_sample.blendを開くと、シオン君のモデルが現れます。
MagicaVoxelのデータをインポート
さきほど作ったボクセルのデータをインポートしましょう。![c_001a_sampleblend]_2017-7-16_22-50-5_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/5/2/52638c3a-s.png)
画面左上の「ファイル」メニューから
「インポート」「PLYファイル」を選びます。
ファイルは複数選べるので「頭」「体」「手足」の3つのPLYファイルを
インポートしましょう。

インポートするとこうなります。
めっちゃでかいです。
サイズを小さくしましょう。
![c_001a_sampleblend]_2017-7-16_22-55-22_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/3/a/3ad15a40-s.png)
Sキーでサイズを変えることができます。
Sキーを押すとサイズ変更のカーソルにかわるので
マウスで調整してもいいですし、キー入力で変えることもできます。
MagicaVoxelにデフォルトで入っているナイトやソードマンは
0.09くらいがちょうどいい感じです。
少しぐらいの大小の違いは、ボーンに影響ないっぽいので
マウスでテキトーにやっても大丈夫です。
Blenderでアニメーション確認
VertexGroupの設定
さて、フツーならここでウェイトペイントでボーンとの関連付けをするのですがこのシオン君はどうやら「VertexGroup」というのを使って
ボーンと関連づいているようです。
なので、ソードマンも同じように「VertexGroup」を使って設定してみましょう。
頭からやっていきます。
![c_001a_sampleblend]_2017-7-16_22-56-55_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/8/5/85e864ab-s.png)
まず、頭のオブジェクトを選択して編集モードに
(右上のリストからメッシュを選択すると勝手にエディットモードになる)
VertexGroupの右側にある「+」ボタンをクリックすると
あたらしいVertexGroupが作成されます。
VertexGroupの名前はダブルクリックで変えることができます。
名前はボーンの関連付けに使われるので、かならずシオン君に準拠すること
今は頭を選択しているので、VertexGroupの名前は「head」にします。
名前をつけたら「Assign」ボタンを押して
選択されているメッシュとVertexGroupを関連付けます。
ちゃんと関連付けできているか不安なときは
「Assign」の右側にある「Select」「Deselect」ボタンを押すと
そのグループが選択・非選択と切り替わるので確認できます。
![c_001a_sampleblend]_2017-7-16_23-1-28_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/8/3/8382e504-s.png)
同じように、体・手足もグループを作っていきましょう。
手足は同じオブジェクト内にメッシュが4つあるので
それぞれに
左手「Larm」右手「Rarm」左足「Lleg」右足「Rleg」という風に
名前を付けて関連付けしていきます。
体は「body」という名前で関連付けします。
メッシュの選択は「Cキー」を押して
マウスでドラッグすると選択しやすいです。
ワイヤーフレームにしておくと、反対面も選択してくれます。
あ、忘れてましたが三角化もしておきましょう!
![c_001a_sampleblend]_2017-7-16_23-4-4_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/2/4/24d7405a-s.png)
メッシュを選択して「Ctrl+T」で三角化できます。
頭・体・手足 すべて三角化しておきましょう。
オブジェクトを結合する
頭・体・手足を一つのオブジェクトに統合しましょう。![c_001a_sampleblend]_2017-7-16_23-5-57_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/a/6/a67e7d45-s.png)
まずは右上のリストから、統合したいオブジェクトを
「Shift」キーを押しながらクリックしていきます。
![c_001a_sampleblend]_2017-7-16_23-6-32_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/e/3/e364da4b-s.png)
オブジェクトを選んだ状態で「Ctrl+J」を押すと統合されます。
(統合されない時はオブジェクトモードになっているか確認)
アーマチュアの設定
統合できたらいよいよ、アニメーションの確認をしましょう。![c_001a_sampleblend]_2017-7-16_23-7-52_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/9/e/9e458230-s.png)
ボーンとモデルを関連付けるには
「アーマチュア」というモノを使います。
スパナのアイコンから
「AddModifies」をクリックして「アーマチュア」を選びます
フツーはここでボーンを作るのですが
すでにシオン君のボーンがあるのでこれを使います。

アーマチュアの設定で「root」を選びます。
これでシオン君のボーンが動くと、このモデルも動きます。
はじめは「リセットポジション(手が水平の状態)」になっているので
「ポーズポジション」に変えましょう。
画面の下に、アニメーションのタイムラインウィンドウが現れますので
再生ボタンを押してみましょう。
ちゃんとシオン君と同じようにアニメーションすれば成功です!
アニメーションしないときは…
VertexGroupの設定がうまくいってないのかもしれません
ボーンをインポートしよう
さぁ、ここまでできたらもうエクスポートしてもよさそうですよね。ただこのサンプルにはアニメーションが途中までしか入っていないので
戦闘のアニメーションなどは自分で作らなければなりません。
逆に言うと、アニメーション作れる人は
好きなアニメーションを設定することができます。
(モーション設定ファイル.defでフレーム数などを設定すればOK)
私はアニメーション作れないので
スマイルゲームビルダーにある既存のモーションを使いたいと思います。
スマイルゲームビルダーのボーンをインポートする
スマイルゲームビルダーのモーションを使うにはスマイルゲームビルダーからシオン君のデータをエクスポートします。
「A_Hero01A」フォルダ内にある「motion」ファイルをそのまま使いまわししましょう。
Blenderとスマイルゲームビルダーでは
座標系が違うので、普通にBlenderのボーンをつかうと
モーションのときにモデルがバギョっとなってしまいます。

こんなかんじに…
なので、スマイルゲームビルダーの座標系に合わせたボーンが必要になります。
![c_001a_sampleblend]_2017-7-16_23-18-47_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/b/c/bc761a33-s.png)
「ファイル」の「インポート」から「FBXファイル」を選びます。
スマイルゲームビルダーからエクスポートしたシオン君のデータ
「A_Hero01A」フォルダ内にある
「c_001a.fbx」というファイルをBlenderにインポートしましょう
![c_001a_sampleblend]_2017-7-16_23-20-44_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/a/c/ac17f752-s.png)
インポートしたデータは、スケールが0.01で保存されているので
とっても小さいです。
![c_001a_sampleblend]_2017-7-16_23-22-19_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/c/8/c82ac80f-s.png)
インポートした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](https://livedoor.blogimg.jp/logic_lab/imgs/6/e/6ed6918d-s.png)
つぎにボクセルキャラのペアレントもかえましょう。
インポートしたFBXのアーマチュア「root.001」を親にします。
すると、キャラの向きが変わってしまいましたね。
![c_001a_sampleblend]_2017-7-16_23-23-47_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/7/2/72fa9d1a-s.png)
ボクセルの向きを-90にしましょう。
(c_001aではなく、キャラのメッシュの向き)
![c_001a_sampleblend]_2017-7-16_23-24-39_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/4/c/4cabff90-s.png)
インポートしたほうのボーンにアーマチュアの関連付けをしましょう。
root.001に関連付けします。
これでボーンの設定は終わりです。
Blenderで見るとボーンがバギョってなってますが
スマイルゲームビルダーの座標系のまま保存しないとうまく表示されないので
これはこのままおいておきます
テクスチャの設定をしよう
頂点カラーの焼きこみ
ボクセルデータには頂点カラーで色がついていますのでこれをテクスチャにしましょう。
![c_001a_sampleblend]_2017-7-16_23-25-12_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/1/2/128f1e2f-s.png)
まずはボクセルキャラのメッシュを選択します。
エディットモードで
「RemoveDoubles」で重複する頂点を削除します。
つぎに「U」キーを押して、UVmappingのメニューのなかから
「SmartUVProject」をクリックします。

ウィンドウが出てきたら「OK」を押します。
![c_001a_sampleblend]_2017-7-16_23-26-11_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/2/3/23e07918-s.png)
つぎに画面上のスクリーンレイアウトを変える部分で
「UVEditing」を選びます。
UVエディット画面が開くので、こんどは画面下の
「New」というボタンをクリックしましょう。

名前をつけるウィンドウが出るので
キャラの名前などわかりやすい名前をつけて「OK」を押します。
![c_001a_sampleblend]_2017-7-16_23-27-28_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/3/d/3d6f317b-s.png)
キャラの展開図ができました。
![c_001a_sampleblend]_2017-7-16_23-27-57_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/f/e/fe1e609b-s.png)
展開図ができたら、画面をデフォルトにもどして
「カメラのアイコン」をクリック
したのほうに「Bake」という項目があるので
その中にある「Bakemode」を「Vertex Colors」にしてから
「Bake」ボタンをクリックします。
![c_001a_sampleblend]_2017-7-16_23-28-14_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/c/5/c5f45b1a-s.png)
UVエディット画面を開くと、テクスチャが焼きこみされていることがわかります。
画面下の「Image」メニューから「Save as image」で
テクスチャを保存しておきましょう。
![c_001a_sampleblend]_2017-7-16_23-29-55_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/d/0/d07582d6-s.png)
テクスチャができたら、デフォルトの画面にもどって
マテリアルの設定をします。
マテリアルのアイコンをクリックして「New」ボタンをクリック
![c_001a_sampleblend]_2017-7-16_23-30-18_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/7/9/797edf54-s.png)
あたらしいマテリアルが追加されました。
![c_001a_sampleblend]_2017-7-16_23-30-44_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/b/a/ba2dac81-s.png)
つぎに「テクスチャ」のアイコンから
「Image」の「Open」ボタンをクリックして
さきほど保存したテクスチャを選びましょう。
これでテクスチャの設定は終わりです。
アイテムフックの設定
ボーンをインポートしたときに、一緒に「Itemhook」というオブジェクトがついてきましたね。
これはアイテムを手に持つときに、どこに持たせるかを決めるオブジェクトなのですが
Blenderにインポートしてしまうと親子設定が解除されてしまうようですので
もういちど設定してあげましょう。

「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](https://livedoor.blogimg.jp/logic_lab/imgs/4/6/46020e24-s.png)
まずは「ファイル」の「エクスポート」から「FBX」を選びます。
![c_001a_sampleblend]_2017-7-16_23-34-27_No-00](https://livedoor.blogimg.jp/logic_lab/imgs/f/3/f357c661-s.png)
画面の左下でエクスポートの設定ができます。
メイン・ジオメトリ・アーマチュア・アニメーション
すべての項目を、PDFに書かれている設定と同じにしましょう。
ここで書き出したFBXファイルと、
スマイルゲームビルダーからエクスポートしたモーションフォルダ
テクスチャファイル
を同じフォルダに入れて、スマイルゲームビルダーにインポートすればOKです。
さいごに
武器や防具なども同じようにスマイルゲームビルダーからエクスポートしたFBXにモデルを上書きすれば
ゲーム内で好きなモデルを使うことができます。
スマイルゲームビルダーの素材を作っている人ってあまり見たことないので
たくさんキャラを作って素材にすれば、みんな使ってくれるんじゃないかな?と思います。
ボクセルはドット絵に近いので、ドット絵師さん期待してます!
ボクセルで作ったおうちとかもいいなーと思っているので
また色々試してみようと思います。
参考サイト:
MagicaVoxelの3DモデルをBlenderに持っていく
MagicaVoxelで作ったデータの頂点数を減らす
コメント