【Blender】モデリングの練習としてサイコロをたくさん作る

ゲームで使う3Dモデルを作るための環境としてBlenderをいじり始めました。
もともとボクセルアートからUnityで使えるモデルをインポートする際にBlenderを経由していたのですが、2021年10月時点ではバージョンが2.93まで上がってBlender自体の使い勝手や操作性自体が上がったので、「ここはちょっと挑戦してみようかな」と使い始めてみました。
作ったゲームを「見てみて!」と見せたくなる3歳児の精神で、Blenderについても作ったモデルを超不定期で公開していければと思います。
自分が作ったものを公開するのは最初は勇気がいる行為ですが、稚拙であってもまず人目に触れる環境に出してみる、というのはゲーム開発でも非常に重要な黄金の精神なので、まずは自分から公開していく様子をお伝えできればと思います。
環境
Blender 2.93.4
macOS 11.6 Big Sur
Blenderについて
Blenderはオープンソースのフリーウェアで、無料で使うことができる3DCGの統合環境アプリケーションです。3Dのモデリング、シェーダーの作成、ライティング、アニメーション作成、レンダリングと、3DCGで使う機能が一通り揃っているアプリケーションなので、まずはBlenderから使い始める人も最近増えているようです。(todo調べ)
私は普段ゲーム開発をしており、ゲーム開発の観点からもBlenderは便利です。というのも、自分のゲームに合わせた3Dモデルを自分で作れるので、ゲームで自分の世界を表現しやすくなるんです。もちろん、技術習得にかかる時間は無視できないものがあるので、クォリティの高いモデルを使いたいなら既に慣れている人にお願いするか、アセットストアのモデルを使用するのが近道です。
ただ、趣味的にサブ技能を伸ばす意図でBlenderを使ってみるのは意味があることだと思っていて、3Dモデルの作成にかかる時間を自分の体験として知っておくことで、人にお願いするときの費用感とか必要な時間などの大まかな目安を把握できるのは大きいと思います。
……なんて真面目な雰囲気を出してみましたが、正直に言えば「楽しそうだからやってみたい」というのが95割なので、休日の楽しみとしてちょっとずつ遊んでいます。
Blenderに関しては以下のページでインストール方法や概要について触れているので、Blenderについて知りたい場合はこちらもご覧くださいな。
まずはサイコロ
3Dのモデリングをする場合は、まずサイコロを作ってみるのが王道であると聞いたので、私もサイコロ作成に挑戦してみました。いくつかチュートリアルをやってみて操作を覚えた後に挑戦してみたところ、多くの人が感じるようにチュートリアルのように上手くはいかず試行錯誤しながらの作成に。ある程度Unityでのゲーム開発に慣れてきているので、こうした体験も新鮮で楽しいんですよね。
サイコロというと6面のダイスが思い浮かびます。というわけでまずは6面ダイスを作成してみました。

Blenderだとポストプロセシングとしてブルームを使うことができるので、光の柔らかい感じを入れてみました。ポストプロセシングについてはUnityで使っていたので「これ進研ゼミでやった問題だ!」と同じノリで適用しています。Unityで作ったゲームの画面もある意味では3DCGですから、3DCGに関する知識を一度身につけておくと、他のツールであっても使えるのがいいところですね。
個人的に6面ダイスで勉強になったのは、
- ベベル(面取り)の機能
- ブーリアンを使ったダイスの目の作成
- UV展開の機能
あたりです。
ベベル(面取り)の機能
ベベルはポリゴンの角の部分を滑らかにするもので、より自然な見た目にするための方法です。例えば下の画像だと、左側が普通の立方体、右側がベベルを入れたものです。

ベベルを入れると角が取れて滑らかになっているのが分かります。現実だと角の部分が綺麗に直角になっていることよりも面取りして滑らかになっていることが多いので、この工程を入れておくと自然に見えます。
ゲームで使うモデルだとすると、ベベルを入れることで頂点数やポリゴン数が増えるため入れすぎ注意です。見た目とパフォーマンスのバランスを考えながら作っていけるといいかもしれません。まぁ今回はBlenderを楽しむのが目的なので見た目重視でベベル入れまくっちゃえ! の精神で作っています。
ブーリアンを使ったダイスの目の作成
ブーリアンは論理演算の機能で、Blenderだと「モディファイヤー」の中に含まれています。モディファイヤーの機能を使うとメッシュの構造を壊すことなくさまざまな効果を与えることができます。

ダイスの目の部分は球でくり抜いていて、このブーリアンの機能のうち、差分を使っています。差分はメッシュの重なっている部分を削除してくれるため、ダイスの目のように穴を開ける作業にピッタリです。綺麗に球を配置するため、トランスフォームできっちり位置を指定して配置するあたりはUnityで習ったものをそのまま使っています。
UV展開の機能
UV展開はメッシュの面を2次元的に展開する機能です。なぜ2次元的に展開するかというと、メッシュにテクスチャを貼るためです。テクスチャのどの部分がどのメッシュに貼られるのかを設定できるので、完成した時の見た目に関わってきます。X, Y, Zの軸については頂点の位置を表す座標として使っているので、それよりちょっと前の記号を使ってUとVで新たに2次元的に座標系を作っているそうです。(Wは3次元的にテクスチャ座標を表す際に使用)

BlenderではUV展開の方法も複数あり、そのまま展開する方法、スマート展開する方法、キューブ投影する方法など、用途に合わせて展開できます。サイコロの場合はダイスの目だけマッピングできればいいので、1の目の部分をテクスチャの赤い位置に、他の目をテクスチャの黒い位置に移動させる、なんて感じで簡単に指定していました。「UV展開」と初めて聞いた時は戸惑いましたが、やってみるとマッピング作業なので手を動かしてみるのが大切ですね。
各種ダイスを取り揃えています
6面のダイスを作成した後は4, 8, 10, 12, 20面ダイスの作成を行いました。それぞれの作り方についてはWikipediaなどを参考に立体の構造を調べながら作成していきました。参考情報を探す方法も身につくのが嬉しい点です。
4面ダイス

4面ダイスは正四面体なので、立方体を削って作成するのが簡単でした。目については文字からメッシュを作成し、ブーリアンでサイコロ本体に穴を開けています。4面ダイスの目は複数の種類があり、ここで使っているのはちゃんと数字が読めるものを出た目として扱うパターンです。画像だと3が出た目になっています。
3D Bibiさんのチュートリアル動画としてターンテーブルのように360度回転させてアニメーションを作成する方法が紹介されていたので、その動画を参考にしてみたのが以下のGIFです。全体が見えると立体感が出てきますね。

4面ダイスを使う場面というと、TRPGのクトゥルフの呼び声(CoC)などでしょうか。使うことは知っていても自分ではやったことがない、というにわか丸出し状態で4面ダイスを作成しています(笑)
普段使わない形状のダイスを作ってみるのも新鮮で良いですね。
8面ダイスと10面ダイス

画像の左が8面ダイス、画像の右が10面ダイスです。8面ダイスは作り方が分かりやすいのでサクサク作れましたが、10面ダイスの方は海外の掲示板を見て作りました。Blenderでの操作がそのまま載っていたのでありがたかったです。Blenderのユーザー増加に伴って日本語の情報も増えてきましたが、英語の情報も参照するようにするとより多くの情報が見つかります。
10面ダイスは2つ用意することで100面ダイスの代わりとしても使うことができます。十の位であることが分かりやすいように10、90のように0をつけたものもあるため、モデリング時にもそれを作ってみました。画像右奥の10面ダイスが十の位用になっています。
参考:10面ダイスの作り方
12面ダイス

BlenderではICO球を作成する機能があり、ここから頂点を削って正十二面体を作成しました。……と自分でやり方を見つけた雰囲気で書いてますが以下のnoteを参考にさせてもらいました。
ICO球は頂点が全方向に対して均一になっている球で、正十二面体などのように全体で均一な面を持っている形を作るのに便利です。正二十面体に関してはほとんどそのままで使えます。ICO球はUnityに取り込んでここに沿ってエフェクトを飛ばすことで、全方向均一に飛ばすことができるので、そういった意味でもよく使うメッシュかもしれません。
20面ダイス

上で触れたようにICO球から分割数を減らして作成しました。ベベルを入れて丸みをつけるだけで20面ダイスらしさが出てきます。形を作ることよりも、文字のメッシュを使って穴を開けていくのが大変でした。20面分でブーリアンを地道に適用していくのは中々しんどかったです。
マテリアルに関して少し他と変えていて、画像右の20面ダイスについては光を透過するような設定で樹脂っぽさを出してみました。
サイコロ作成の感想
サイコロ系は見た目がシンプルで基本的な操作を繰り返すことで作成できます。なので覚えたショートカットキーなどを体に染み込ませるために作ってみるのがオススメです。まずはサイコロを作ってみよう、と伝える人が多いのも分かる気がします。
4面ダイスや10面ダイスなど、特殊なダイスまで手を伸ばすのは大変かもしれません。そう考えると、6面ダイスや8面ダイスなどの基本的な形を使ってさまざまなバリエーションを用意してみるのが良いかと思います。
作っている途中でダイスの作り方を調べているときに、そのままダイスを作成できるアドオンを見つけたときには不定の狂気にとらわれそうでしたが、自分の手で作ってみるのは工程を理解する上で役に立ちました。一回自分の手を動かして作った後なので、ゲームで使うとしたらアドオンを使ってサクッと作ってしまうかもしれません(笑)
まとめ
Unityで使うメッシュを作るため、Blenderを使い始めてみたのでそこで学んだことを公開すべくサイコロを例に作ったものを紹介しました。
初心者丸出しの記事ですが、作った成果物を公開していく点は定期的に自分でもやっていきたい部分です。まず1歩目を踏み出してみるのが大切なので、「こんな感じで簡単に作り始めていいんだな」と思ってもらえたら嬉しいです。
他にもこんなものを作りました。
ゲーム開発の攻略チャートを作りました!
-
前の記事
Blenderがかなり進化しているのでゲーム作りのお供におすすめ 2021.10.16
-
次の記事
【Blender】ボルト(ネジ)のアドオンを使って作業場を作ってみた 2021.10.20
コメントを書く