【Voxel】作ったボクセルキャラを動かそう①下準備編【Blender】
とりあえずUnityに入れてみる
MagicaVoxelで作ったデータを.objとしてエクスポートし、Unityに入れる。
.objと同時にエクスポートしたpngで直接テクスチャを貼る。
これでもうまく表示することはできた。
でもこれだけじゃダメ
- 動かすには体に骨(Bone)を入れないといけない
- 歩いたりするアニメーションも必要
- そのままのサイズだと別に作ったボクセルキャラと大きさなどで統一性が取れない
- Unityのアセットがごちゃごちゃするのがいやだ
骨を入れたりアニメーションを作るにはBlenderがいいらしい。
Blenderでボクセルデータをあれこれしよう
大まかな流れ
・ボクセルデータをBlenderにインポートする
・UV展開してテクスチャを貼る
・マテリアルを作成する
・ベイクしてテクスチャを作成する
ボクセルデータをBlenderにインポートする
・MagicaVoxelの作ったボクセルを.plyでエクスポート。
・Blenderで新規作成して四角いのをDelする。
・ファイル→インポート→.ply
座標がおかしいことになってるみたいで埋まってしまっている。
Unityに入れたときにちゃんと地面に立っててほしい。
MagicaVoxelで⇄ボタンを押してWorldビューにする。
埋まってますねこれは。
どうやらサイズを倍にしたのが原因らしい。
矢印を動かして正しい座標にする。
再びBlenderにインポート
右上の座標をぽちぽちして確認
ちゃんと足の部分が真ん中になってるね。
※他の作ったキャラクターでも試したところ、MagicaVoxelのほうで正しい座標にしても、Blenderでは違う位置になってしまう場合があった。
この場合、エクスポートし直したら正しい座標になったので何度か試すのがいいかも。
UV展開してテクスチャを貼る
重複する頂点の削除
ポリゴン数を節約するために重複する頂点の削除をする。
・Edit Mode(編集モード)にしてAキーを押して全てを選択
・メッシュ→クリーンアップ→距離でマージ(Merge by Distance)
UV展開をする
牛乳パックやサイコロキャラメルを開くようにデータを展開する。
・UV→スマートUV投影
・UVEditing
・+Newを押し、名前を入れておく
マテリアルを作成する
・右のプロパティのマテリアルを開く
・マテリアルがないので新規作成
・マテリアルの名前を変えておく
・ベースカラーが真っ白になってる
・右にある〇を押す
・Input→Attribute(属性)
・オブジェクトデータの頂点カラーを開き、名前を確認( Col )
・マテリアルに戻り、Attribute(属性)の名前の所に「 Col 」と入れる
ベイクしてテクスチャを作成する
・レンダーのレンダーエンジンをEeveeからCyclesに変える
・ベイクタイプをCombinedからDiffuseにする
・カラーのみにする
・Margin(余白)を1pxにする
・シェーダーエディターを選択
ノードが開いた
・Add→Texture→Image Texture(画像テクスチャ)
適当なところに置く
・+Newの左のアイコンを押し、UV展開時に作成したものを選択する
・レンダーに戻り、ベイクを押す
UVに色が付いた
・Image→SaveAs(名前を付けて保存)
.pngをデスクトップに保存した
これでテクスチャができた。
作成したpngはUnityに入れるときに必要。
完成したか確認
・マテリアルのベースカラー→Image Texture(画像テクスチャ)
なんか頑張って、作成したpngを開く
pngじゃなくてUVデータでもいい気がするけどどうなんだろ?
一応出来たって言っていいのかな
このやり方でどこか問題があったらまた調べたり試行錯誤したりしよう。
Boneやアニメーション作ったりするのはまた今度。
試しにUnityに入れてみよう!
Boneを入れるときにこの続きからやるのでblendファイルで保存をしておく。
ファイル→名前を変更→〇〇〇.blend
エクスポートする
ファイル→エクスポート→fbx
この辺の設定はとりあえずデフォルトで。
Unityに入れてみる
エクスポートした.fbxと.pngをUnityのアセットに入れる。
fbxをHierarchyに追加
テクスチャを直接ペタリ
あれ?なんかアセットにあるキャラが倒れてる!
Rotationの-89.98ってなんでー!
表示されてるキャラは普通に垂直に立ってるから大きな問題ではないか。
次は動かすためにBoneを入れていくよ
参考にさせていただいたサイト様
kumanoya.blogspot.com
urkgdmp.hatenadiary.jp
github.dev7.jp