3Dモデリングについて最低限の知識を得る
こんにちは!エンジニアリングマネージャーの佐藤(@unsoluble_sugar)です!
この記事はSynamon Advent Calendar 2021、19日目の記事です。
弊社SynamonではVR/ARのプロダクト開発を行なっており、基本的にどのプロジェクトでもBizDev、エンジニア、デザイナーがタッグを組んで仕事をしています。企画提案や工数見積もり、開発においても、チームメンバーで議論を重ねながらプロジェクトを進行していきます。
各作業分野でそれぞれの領域のプロが力を発揮してくれるものの、自分のバックグラウンド的にどうしてもエンジニア寄りの視点に偏りがちなことに課題を感じていました。デザイナーさんたちが使う用語やツール、3D空間への実装時におけるパフォーマンスに対する懸念点など、まだまだキャッチアップしきれていない要素が多いのが事実です。
自分なりに少しずつ勉強は進めていますが、やはり3Dモデリング経験の有無による共通認識の溝は深いことでしょう。
そこで今回のアドベントカレンダーをきっかけに、これまで足踏みしていた3Dモデリング領域への門を叩くことにしたという次第です。
Blenderを選択
3Dモデリングツールは様々なものがありますが、今回は身の回りに愛用者の多い「Blender」を選択することにしました。書籍やネット上の情報量も多く、何かしら困った際にも知人に助けを求められるなどのメリットが大きいだろうとの判断です。
ちょうど本記事を書き始める少し前、2021年12月3日にBlender 3.0
がリリースした模様。実に21年ぶりのメジャーアップデートだとか。
巷の書籍やネット上の情報では、Blender 2.8
、2.9
台が主流でしたが、未経験者の僕からすれば画面の見た目は大きく変わっていないように見受けられたため、最新版の3.0
を使ってみることにしました。
Blenderの歴史的背景や基本機能を把握するには、公式マニュアルを参照すると良いでしょう。
自分は「Blenderについて」項目をザッと読んでから、実際にインストールして触ることにしました。
インストール
今回はWindows版を使用したキャプチャを載せていきます。
Blender公式のダウンロードページから、インストーラをダウンロードして実行。ウィザードに従ってインストールしましょう。
インストールが完了したらBlenderを起動します。
とりあえずインターフェースを日本語にします。
はじめてblender起動したけどマジでなんもわからん pic.twitter.com/TJln5CHgFJ
— 星影 (@unsoluble_sugar) 2021年12月15日
チュートリアル動画見ながら完全に理解する
まずは公式のチュートリアル動画を見ながら基本操作を学んでいきます。
デフォルトの3D Viewportを見てみると、Cubeオブジェクト、Camera、Lightが配置されていることがわかります。Unityエンジニアにとっては、実家のような安心感ですね。
Viewport Gizmosのアイコンをぽちぽちクリックするか、マウスのホイール中央ボタンを押し込みながらのドラッグで視点をぐるぐる動かせます。ホイールをグリグリ転がすとズームイン/ズームアウトですね。Unityを触っていれば、大体の操作感が同じなのですぐに馴染めるでしょう。
ハンドアイコンをクリックしてドラッグ、もしくはShiftキー押しながらマウスのホイール中央ボタン押し込みで画面の平行移動ができます。
オブジェクトを左クリックで選択状態に。その状態でビューメニューから「選択を表示」をクリックすると、対象オブジェクトを中心とした視点に移動します。
Shiftキー押しながらオブジェクトをクリック、または3Dビュー内で左クリックしながらのドラッグで複数オブジェクトを選択できます。オブジェクトを選択した状態でdeleteキー、またはXキー
を押して削除ができます。
オブジェクト選択状態でGキー(Grab)
を押すと自由に移動。オブジェクトを選択しで移動アイコンクリックで表示されるギズモの矢印ドラッグでXYZ方向への平行移動ができます。
オブジェクトを選択してSキー(Scale)
を押すと、拡大・縮小ができます。
オブジェクトを選択してRキー(Rotate)
を押すと、回転ができます。
Shfit + Aキー
で表示されるメニューの「メッシュ」からオブジェクトを追加。
オブジェクトを選択してtabキー
で編集モードに切り替え。頂点を選択してGキー
を押すと、頂点を軸としてオブジェクトを変形できます。
辺選択、面選択アイコンをクリックすると、辺・面を変形させることができます。オブジェクトに対する基本操作はこんなところでしょうか。
その他の画面操作については、カメラビューや
ワークスペース切り替え
シーンの新規作成&切り替え
シェーディング切り替え
アウトライナー
モディファイアー
物理演算プロパティ
マテリアルなどの設定が紹介されていました。
軽く2時間ほど触ってみて、大まかな画面構成と基本操作については何となく把握できました。
だいぶ完全に理解できてきたので寝る pic.twitter.com/wWcJylsVI1
— 星影 (@unsoluble_sugar) 2021年12月15日
簡単な3Dモデリングに挑戦してみた
基本操作がわかったので、さっそく簡単な3Dモデル作成にも挑戦してみることにしました。
YouTubeで見かけた、初心者向けの「世界一やさしいBlender入門!」を謳った動画を見ながらのチャレンジです。Blender 2.9
を使った解説動画でしたが、3.0
でも大きな差異はなく非常にわかりやすかったです。
以下、実際に動画を見ながら手順を真似してみた様子の抜粋です。簡単な机と椅子の3Dモデルを作っていきます。
まずはCubeを縮小・拡大、メッシュの追加や複製を駆使して机の基礎部分を用意していきます。
シェーディング切り替えでワイヤーフレーム表示すると、オブジェクトの位置関係が確認しやすいです。
オブジェクトを選択して編集モードにし、ctrl + B
で「ベベル(面取り)」を設定していきます。角をなめらかにする加工処理ですね。
机と同じ要領で椅子を作ります。
平面メッシュを追加して床を設置。
机と椅子の位置(Z軸)を床に合わせます。
コレクションで各オブジェクトのグルーピングを行います。机、椅子、床の調整が管理しやすくなります。
オブジェクトにマテリアルを追加して色をつけていきます。
マテリアルに名前をつけると、別のオブジェクトにも同じものを適用できます。マテリアルでは表面をメタリックにしたり粗さなど質感調整ができるので、表現したい素材の再現を行いたい場合は、細かいパラメータ調整をする必要がありそうです。
ライトは「ポイント」「サン」「スポット」「エリア」毎の調整が可能です。照明の強さや角度、範囲など陰影を考慮した配置はセンスが問われますね。
カメラも透視投影と平行投影、視点の角度や位置調整、被写界深度など様々なパラメータがあります。これもこだわりだすと時間がかかりそうなポイントです。
こんな感じでしょうか。
画像レンダリングしてみる
ライトやカメラの調整が済んだら画像のレンダリングを行います。Blenderには3つのレンダリングエンジンが用意されており、それぞれ以下のような特徴があります。
レンダリングエンジン | 特徴 |
---|---|
Eevee(標準) | 高速、高品質 |
Workbench | 超高速、低品質 |
Cycles | 低速、超高品質 |
メニューの [レンダー] - [画像をレンダリング] を選択。
レンダーウインドウにて [画像] - [名前を付けて保存] でレンダリングした画像が出力されます。
以下画像が、今回作成した3DモデルをCyclesでレンダリングしたものになります。
綺麗に出力されていますね!
fbxファイルのエクスポート&Unityへインポート
画像レンダリングしただけではエンジニアとしての名がすたるので、fbx形式でエクスポートしてUnityへのインポートを試みます。
対象オブジェクトを選択した状態で [ファイル] - [エクスポート] - [FBX(.fbx)] をクリック。
「選択したオブジェクト」「トランスフォームを適用」にチェックを付けてエクスポートします。
これで先ほど作成した椅子のオブジェクトがfbxファイルとして出力されました!
喜び勇んでUnityプロジェクトに持っていくと…なぜかオブジェクトの一部がスケスケに/(^o^)\
Blenderのビューポートオーバーレイで確認すると、どうやらオブジェクトの面の向きが内側に向いていたようです。青色はメッシュの向きが外側、赤色は内側に向いている状態を表しています。
スケスケになってしまっていたオブジェクトを選択し、編集モードで [メッシュ] - [ノーマル] - [面の向きを外側に揃える] をクリックします。
ビューポートオーバーレイでオブジェクト表面がすべて青色になったことを確認し、再びfbxファイルをエクスポート。Unityへ持っていきます。
無事にUnity上に椅子が召喚できました!
3Dモデリングの知識が皆無だったため、トラブル対応も一苦労でした。
See the Pen blender-model-viewer by unsoluble_sugar (@unsolublesugar) on CodePen.
Blender完全に理解した
というわけで…
- Blenderに入門
- 簡単な3Dモデルを作成
- 画像のレンダリング
- fbxファイルへエクスポート
- Unityプロジェクトへインポート
という一連の流れを経験いたしました。
たかが数時間触った程度の初心者ではありますが、3DモデリングにおけるHello worldは学べたのではないでしょうか。実際に弊社デザイナーさんが担っている業務には程遠いものの、Blenderをきっかけに3Dモデリングの知見をより一層深めていきたいところです。
何より動画を見ながら手順をなぞっただけでも、3Dモデリングの楽しさを実感できたのは大きな収穫でした。自分の手で何かを生み出す感覚というのは、プログラミングとも近しい印象を受けました。
そのうち自分のオリジナルアバターも作れるくらいになりたいので、今後も趣味の一環としてBlenderを触っていこうと思います。
最後に
本テックブログやnote記事のお知らせは、Synamon公式Twitterで発信しています。弊社の取り組みに興味を持っていただけましたらぜひフォローお願いします!
カジュアル面談も実施中ですので「詳しく話を聞いてみたい!」という方はチェックいただけると嬉しいです。
▼カジュアル面談はMeetyから meety.net
▼エントリーはこちら herp.careers
Synamonアドベントカレンダーの他の記事もぜひご覧ください!
現場からは以上です。