はじめまして、株式会社PsychicVRLabでUnityエンジニアをしています、「ほたてねこまじん」と申します!
STYLYアドベントカレンダー3日目の記事になります。
この記事では、私が以前趣味で開発した「にゃんにゃんメッシュエディタ―」という、Unity完結で(超簡単な)3Dモデルの修正が可能なツールの紹介です。
なぜ作ったか
あえて「メタバース」という言い方は避けますが、近年VRChatなどアバターを着用してユーザー同士のコミュニケーションを楽しむゲームのユーザー数がかなり増えています。数年前は考えられませんでしたが、Boothでも人型の3Dモデルがかなりの数販売されており需要の高さがうかがえます。
そして、そういったユーザーの中(特にVRChatユーザー)はアバターの個性を重視する傾向があり、テクスチャの配色を変更したり、市販品のアバターに+α の要素を足すことで「自分だけのアバター」というアイデンティティを求めています。
その証拠に、人型の3Dモデルに付随して衣装やアクセサリーの3Dモデルなど、組み合わせれば実質無限通りのアバターを作れるだけの市場が出来上がっています。
そんなアバターに+α の個性を加えるためには、Unityでアップロード作業をすることが必要であり、さらに3Dモデルのメッシュ自体に変更を加えたければBlender等のより専門的なツールを扱わなければいけませんでした。
しかし本来は扱うのに専門知識が必要な、そういったツールを学習するコストは高く、せめてUnityだけでメッシュの変形を完結できないかな?と思って作ったのが本ツールです。
にゃんにゃんメッシュエディター(MeshModifyTool)
導入方法,使用手順
- あらかじめアバターアップロード用プロジェクトのバックアップを取っておく.
- MeshModifyTool.unitypackageをUnityProjectにインポートする.
- Unityの上部メニュー,Window/HhotateA/にゃんにゃんメッシュエディター(MeshModifyTool)を開く.
- アバターに合わせたい服のメッシュをドラッグ&ドロップして"Setup"をクリック.
- 編集したいメッシュ名をクリック.
- 編集ツールを選択する.
- メッシュを編集する.(BlendShapeとして保存したい場合しておく)
- Saveをクリックして保存.
機能説明
アバター編集画面は右クリック長押しで回転,左クリック長押しで移動
-
Setup : root以下のMesh一覧を更新します.
-
Mesh一覧 : 編集したいメッシュ名をクリックします.左のチェックボックスでオブジェクトを非表示にできます.
-
SaveAsBlendShape : 左のテキストボックス名のBlendShapeとして,現在の編集を保存する
-
Undo : 編集をやり直します
-
Redo : Undoを取り消します
通常編集モード
クリックした位置のメッシュを引っ張る,膨らませることができる.
-
Power : 押し出し,引っ張りの強さ(-1 押し出し,+1 押し出し)
-
Width : クリック点からの編集の影響範囲
-
Strengh : 範囲内の変形の滑らかさ(1≧なめらか,1≦均一)
-
Mirror(x,y,z) : x(y,z)軸対称に編集を行う設定
頂点編集モード
-
Width : クリック点からの編集の影響範囲
-
Strengh : 範囲内の変形の滑らかさ(1≧なめらか,1≦均一)
-
Mirror(x,y,z) : x(y,z)軸対称に編集を行う設定
メッシュ編集機能
-
Land選択 : 繋がった頂点を一括選択する(ちょっと重いので注意)
-
ポリゴン選択 : 1ポリゴンごとに選択する
-
Transform : 選択中ポリゴンを移動する
-
Copy : 選択中ポリゴンを複製する(Can not undo) 参考
-
Deleate : 選択中ポリゴンを削除する(Can not undo)
ActiveExperimental
- SelectVertexMode : 通常編集,頂点編集機能時に操作点が頂点に吸われる設定
- RealtimeTransform : 頂点編集,メッシュ編集機能時にScene上のオブジェクトとして編集を行う 参考
- SelectOverlapping : メッシュ編集機能時に重複頂点を一括選択する
ActiveExperimentalBeta
- Delete : メッシュ編集時の"Delete"でポリゴンを同時削除する
- MergeBones : ボーン削減機能(HumanBone:HumanoidBoneに含まれないボーンを参照から外す, ActiveBone:Sceneで非表示設定のボーンを参照から外す)
- ChangeBone : ボーンの参照を別のHumanoidに移す(Merge:存在しない補助ボーンを追加する, Combine:存在しない補助ボーンをConstraintで追従する, Constraint:Constraintの設定のみ行う)
- CombineMesh : メッシュの結合を行う(ActiveMesh:root以下のすべての表示中Meshを結合した1つのSkinnedMeshを作成する, Material:選択中メッシュのサブメッシュをShaderごとに結合する) 参考 参考
- RandmizeVertex : アバターのリッピングを防止するためメッシュをランダムに変形する.(非推奨)
- CopyBoneWeight : 他SkinedMeshからBoneWeightをコピーする(非推奨)
- Decimate : ポリゴン数を目標値まで削減する(非推奨)
- WeightCopy : メッシュ編集機能で選択中のポリゴンのウェイト値を,他頂点からコピーする. 参考
- Decimate : クリックしたポリゴンを削減する.
宣伝
PsychicVRLabではUnityエンジニア・サーバーサイドエンジニアを募集しています!!ご応募お待ちしています!!