mmodeler の使い方

mmodeler の使い方

English | 日本語

mmodeler

概要

mmodeler は、スマートフォンやタブレットのタッチ操作に最適化した、Blender風の3Dモデリングツールです。WebGPU と JavaScript で構築されており、直感的なジェスチャー操作によって、カメラ制御、オブジェクト編集、プリミティブ追加、ファイルの保存・読込に加えて、スカルプトモードによる自由な形状変形が行えます。

実行方法

mmodeler の動作に依存するライブラリや外部サーバは不要で、起動したらすべてローカル環境で完結します。

ここから実行できます。
https://jun-mizutani.github.io/webg/samples/mmodeler.html

モバイル操作体系

本ツールでは、編集画面(キャンバス)上での操作を以下のジェスチャーに割り当てています。PCではマウスで同様の操作が可能です。

基本ジェスチャー

最も重要な操作は、図形部分のダブルタップです。 ダブルタップすることでコマンドパレットが開いて多くの操作を実行できます。

特殊ボタン:左上の「↑」ボタン

このボタンはモードによって役割が変わります。

コマンドパレット

ダブルタップで表示される 4x4 のグリッドメニューです。Object / Edit Mode では Next ボタンで計4ページのメニューを切り替えて使用します。スカルプトモード では、ブラシ操作に絞った専用の1ページパレットに切り替わります。パレットは操作位置を妨げないよう、画面中心からの相対位置に基づいて自動的に配置されます。

第1ページ:基本編集と軸制限

基本的な変形コマンドと、変形時の軸制限オプションを配置しています。

第1ページ: 基本編集と軸制限

ボタン解説
G移動: 選択中のオブジェクト、面、頂点を移動します。ボタン押下後、画面を1本指でドラッグして位置を確認し、短いタップで確定します。
E押し出し: 編集モードで選択中の面または頂点を押し出します。ドラッグで移動量を調整します。
Vert頂点選択モード: 編集モードの選択対象を「頂点」に切り替えます。頂点単位の移動、削除、追加、ループ選択に使用します。
XX軸制限: 次に実行する変形操作(G/R/S/E/GG)の方向をワールドX軸に制限します。もう一度押すと制限なし(Free)に戻ります。
R回転: 選択中のオブジェクト、面、頂点を回転させます。ドラッグで角度を確認し、タップで確定します。
GGエッジスライド: 選択頂点が2つの隣接頂点に挟まれた中点である場合、そのエッジの直線上でスライドさせます。
Face面選択モード: 編集モードの選択対象を「面」に切り替えます。面の押し出し、削除、ループカットなどを実行できます。
YY軸制限: 次に実行する変形操作(G/R/S/E/GG)の方向をワールドY軸に制限します。もう一度押すと制限なし(Free)に戻ります。
S拡大縮小: 選択中のオブジェクト、面、頂点をスケールさせます。ドラッグで倍率を確認し、タップで確定します。
Cutループカット: 編集モードで選択した四角面を分割します。単一の面を選択している場合は、プレビュー線を見ながら方向を選択します。
Undo元に戻す: 直前の編集操作(変形、プリミティブ追加、削除など)を1つ取り消します。
ZZ軸制限: 次に実行する変形操作(G/R/S/E/GG)の方向をワールドZ軸に制限します。もう一度押すと制限なし(Free)に戻ります。
Next次のページへ切り替えます。
Chainチェーン選択: 選択頂点から隣接エッジの方向を選び、四角面だけでつながる頂点列をタップで確定選択します。
Redoやり直し: Undo で戻した操作を再度実行します。
N法線制限: 編集モードで、選択面の平均法線方向、または選択頂点周辺の平均法線方向へ変形を制限します。もう一度押すと制限なしに戻ります。

第2ページ:選択・表示切替・Sculpt 入口

第2ページ: 選択・細分化・表示切替

ボタン解説
CatmCatmull-Clark細分化: メッシュ全体を滑らかに細分化し、丸みのある形状にします。
A全選択: オブジェクトモードでは全オブジェクトを、編集モードでは全頂点または全面を選択します。
Add頂点追加 / 面作成: 3〜4個の頂点を選択中なら面を作成し、それ以外ではタップ位置に頂点を追加するツールに切り替わります。
Pr投影切替: 透視投影(Perspective)と平行投影(Orthographic)を切り替えます。正確な位置合わせには平行投影が便利です。
Subd細分化: 四角面のみのメッシュを1段階細分化し、面構造を保ったままポリゴン密度を上げます。
Inv選択反転: 現在の選択状態を反転させます。
Del削除: 選択中のオブジェクト、頂点、または面を削除します。
Wireワイヤーフレーム表示: 表示を切り替えます。ONの間は、裏側にある頂点も選択対象になります。
MXミラー: X=0 を基準としたミラー編集を有効にします。
Half半分選択: X座標が0より小さい側の要素を選択します。片側削除やミラー編集の準備に使用します。
SclptSculpt Mode: スカルプトモードに入り、法線方向へ膨らませる Draw ブラシを選びます。Sculpt Mode に入った後は専用パレットからブラシ種類や方向を切り替えます。
Smthスムーズシェーディング: 陰影表示を滑らかに切り替えます。形状(頂点構造)は変えず、見た目だけを滑らかにします。
Lensレンズプリセット: カメラの画角(広角・標準・望遠)を切り替えて見え方を確認できます。
Next次のページへ切り替えます。
Loopループ選択: ループカットで作成された中点頂点から、カットライン方向に沿って頂点列を選択します。

第3ページ:ファイル操作・情報

第3ページ: ファイル操作・オブジェクト管理

ボタン解説
Load読み込み: ローカルファイルからモデルファイルや保存済み ModelAsset JSON を読み込みます。
O原点リセット: 選択中オブジェクトの原点(Origin)をワールド原点へ戻します。形状は維持したまま基準点のみを整えます。
Cood座標表示: 編集モードで選択中の頂点座標をオーバーレイ表示します。単一頂点選択時は直接数値を入力して更新可能です。
Info情報表示: 選択オブジェクトのサイズ(バウンディングボックス)、頂点数、ポリゴン数、原点を表示します。タップで閉じます。
JsonJSON保存: 現在のシーンを gzip 圧縮済み JSON (.json.gz) として保存します。再編集に最適な形式です。
Shotスクリーンショット: 現在の表示画面を画像として保存します。
GlbGLB保存: 現在のシーンを GLB 形式で書き出します。他の3Dツールやビューアで利用可能です。
Join統合: オブジェクトモードで選択中の2つ以上のオブジェクトを1つにまとめます。
Next次のページへ切り替えます。
New新規作成: 現在のシーンを破棄し、空のシーンから開始します。

スカルプトモード専用ページ:ブラシ操作

スカルプトモード中は通常の4ページ構成ではなく、以下の1ページだけを表示します。

Sculpt Mode 専用ページ

ボタン解説
DrawDrawブラシ: 頂点を法線方向へ移動します。Sclp+ では膨らみ、Sclp- では凹みます。
Brshブラシ設定: 半径、強度、減衰形状を overlay で編集します。
Pr投影切替: 透視投影と平行投影を切り替えます。
BlurBlurブラシ: 近傍頂点の平均位置へ近づけ、表面をならします。
MXミラー: Sculpt のブラシ変形を X=0 基準で対称適用します。
Wireワイヤーフレーム表示: 表示を切り替えます。
GrabGrabブラシ: カーソルの移動方向へ頂点を引っ張ります。
Sclp+正方向: Draw / Pinch などの符号を正方向にします。
Undo元に戻す: 直前の stroke や編集操作を取り消します。
Smthスムーズシェーディング: 表示上の陰影を滑らかにします。
PinchPinchブラシ: 頂点をカーソル中心へ寄せます。
Sclp-負方向: Draw / Pinch などの符号を負方向にします。
Redoやり直し: Undo で戻した操作を再実行します。
Edit編集モードへ戻る: スカルプトモードから編集モードへ戻ります。

第4ページ:プリミティブ追加と分割数

第4ページ: プリミティブ追加と分割数

ボタン解説
Cube立方体: 中心に原点を持つ立方体を追加します。
Torusトーラス: ドーナツ状の形状を追加します。分割数設定がリングとチューブの密度に反映されます。
Ball球体: 中心に原点を持つ球体を追加します。分割数設定が経緯度の密度に反映されます。
DCone二重円錐: 上下に頂点を持つ円錐を追加します。中心のリングが原点高さに配置されます。
Cyl円柱: 中心に原点を持つ円柱を追加します。分割数設定が円周の密度に反映されます。
Cone円錐: 円錐を追加します。底面と頂点の中間がオブジェクト原点になります。
Plane平面: XZ平面に配置される平面を追加します。床面や押し出しのベースとして利用します。
332分割数設定: プリミティブ作成時の密度を指定します。数値が大きいほど滑らかになりますが、編集点数が増え負荷が高まります(初期値: 12)。
Next第1ページへ戻ります。

詳細機能仕様

変形操作 (Transform)

G/R/S/E/GG のいずれかを選択した後、1本指ドラッグでプレビューを行います。

Sculpt Mode

Sculpt Mode は active object の頂点だけをブラシで直接変形する第 3 のモードです。

ループカット (Loop Cut)

編集モードで四角面を選択して Cut を実行します。

ループ選択 (Select Loop)

Loop は、ループカットで作成された中点頂点列を効率的に選択するための機能です。

連続選択 (Chain Select)

Chain は、任意の頂点から隣接エッジの方向を指定し、四角面のみで繋がっている頂点列を選択します。

矩形選択 (Box Select)

図形が存在する状態で、何もない領域をダブルタップして開始します。

細分化 (Subdivision)

選択・表示の仕様

ビュー dock (視点切り替え)

画面端(縦画面では上部、横画面では右端)に配置されたボタンで、以下の視点へ即座に切り替えられます。

view dock の視点切り替えは、camera target と距離を維持したまま、オービット姿勢を標準方向へ戻します。2 本指回転で傾けた view roll もここでリセットされます。

Blender との連携

専用の Blender アドオン (blender_modelasset_io.py) を使用することで、mmodeler と Blender 間でデータをやり取りできます。

導入方法

  1. Blender の Edit > Preferences > Add-ons > Install... から blender_modelasset_io.py をインストールします。
  2. Webg ModelAsset JSON I/O を有効化します。

データの受け渡し