【無料】松川怒りの揺れボーン自動生成 | 骨の無いメッシュにも揺れを付ける【Blender不要】
- 通常版Digital0 JPY
- アルコール消毒代Digital100 JPY

買ってきた小物に揺れを付けようとしたら骨が入っておらず、 Blenderを開くところからやり直しになってキレたので作りました。 Unityの中だけで、メッシュの形から骨を生やして揺らします。
揺らしたいものを選んでボタンを1つ押すだけ。骨が入っていない物にも使えます。
▼ VCC / ALCOM からも入れられます このツールは VPM(VCC)に対応しています。 Settings > Packages > Add Repository に次のURLを追加してください。 https://raw.githubusercontent.com/Torateihen/SwayGenKit/main/index.json 追加すると、プロジェクトに「松川怒りの揺れボーン自動生成」を入れられるようになります。 新しい版を出すと、VCC に更新として出ます。 unitypackage 版もこのページで配布しています。どちらか片方で構いません。 (unitypackage 版を入れた後で VCC 版に移行しても、古いフォルダは自動で消えます) ▼ こんなことになっていませんか ・買ってきたマフラーやリボンを揺らしたいのに、骨が入っていない ・「Blenderで骨を入れてウェイトを塗ってから」と言われて、そこで止まっている ・PhysBoneの数値が多すぎて、何をどう入れればいいのか分からない ・とりあえず入れてみたら、髪が頭からずれた ・スカートに骨を入れたら、房の境目でメッシュが裂けた このツールは、その全部をUnityの中だけで片付けます。 ▼ ★ いちばんの特徴:骨が入っていない物にも使えます 隠さずに書きます。 骨のある揺れ物にPhysBoneを付けるツールは、すでにいくつもあります。 このツールが違うのは1点だけです。 骨が入っていない物にも使えること。 骨から作るツールはBlenderのアドオンならありますが、 Unityの中だけで完結する物はほとんどありません。 「Blenderを開きたくない」「そもそも入れていない」人のためのツールです。 逆に、骨が既に入っている物だけを扱うのであれば、 部位ごとのプリセットが充実している既存のツールの方が向いています。 ▼ ★ もうひとつの特徴:ボーン名を一切見ていません 判定に使うのは頂点の位置だけです。 名前の付け方が独特な海外製アバターや、自作の小物でも同じように動きます。 ・つながっている塊ごとに分けます 左右一対の角やツインテールが1つのメッシュに入っていても、別々に扱います ・輪切りにした断面の広がりで、骨を何本並べるか決めます 紐やしっぽは1本、スカートは一周ぶん、ケープは広がっている範囲だけ ・骨の位置はメッシュの実測から決めます 軸の上に等間隔で並べるのではないので、 スカートの裾の広がりや、曲がった角の反りにそのまま乗ります ▼ ★ 1.1.0 の追加:ペンでなぞって、骨の道筋を直接描けます 自動で作った骨が思っていた通りにならないことがあります。 房がS字に曲がっていたり、途中で向きが変わる紐だったりすると、 形から軸を1本決める方式では、だいたい真っ直ぐな骨になってしまいます。 そこで、なぞった線がそのまま骨になるようにしました。 1. 前・後ろ・左・右・上・下から見た絵が出ます 2. 房の根元から毛先へ向かってドラッグします 3. 引いた線1本ぶんの骨ができます。何本でも引けます 引いた線はまとめて1つの PhysBone にぶら下がるので、 房の数だけ PhysBone が増えることはありません。 「線の太さ」で、その線が受け持つ範囲を決められます。 絵の上に、その太さの帯が薄く出ます。 前から見て前髪の裏に隠れている後ろ髪は、巻き込みません。 見えている面から房1本ぶんの厚みだけを拾い、 そこから先は同じ奥行きを追いかける作りにしてあります。 隠れている房は、横や後ろに切り替えてからなぞってください。 ▼ ★ 1.1.0 の追加:一体になっている衣装を、部位ごとに指定できます スカートも袖も1枚のメッシュになっている衣装向けです。 ・6方向から見た絵の上で、部位を四角で囲えます ・囲いは「どの向きから囲ったか」を覚えます ・「自動で囲う」で、つながった塊ごとの囲いを提案します ・どこに骨ができるかが、黄色い線で絵に出ます ・囲っていない所のウェイトは触りません ▼ ★ 1.3.0 の追加:素体そのものを揺らせるようになりました 髪やスカートは、たいてい体とは別のメッシュなので、 囲った範囲を丸ごと動かしても継ぎ目ができません。 ですが素体の胸やお尻のように、体とひと続きの1枚の面になっている所は、 囲った中だけを新しい骨で動かすと、囲いの内と外で 「動く/動かない」が急に切り替わり、境目が裂けて口が開いていました。 ふちからしばらくの範囲を、元の動きへなだらかに戻すようにしました。 その幅は「ふちを戻す幅(m)」で決められます(既定 3cm、0 で戻さない)。 距離は面をたどって測ります。直線距離だと、折り重なった髪で 裏側へ近道してしまうためです。 実測: 髪では境目をまたぐ辺が 953 本、素体の腰まわりでは 342 本ありました。 どちらもふちでの効かせ具合が平均 0.000(=完全に元のまま)になっています。 あわせて、入れ物を挟まず体の骨の直下へ2段で付いている短い鎖 (素体の胸など)も拾うようになりました。 ▼ 使い方 1. Hierarchy で揺らしたいものを選ぶ 2. メニューの Tools > 松川怒りの揺れボーン自動生成 を開く 3.「揺らす」を押す 以上です。押す前に、何をするかが画面に出ます。 気に入らなければ Ctrl+Z で元に戻せます。 ▼ できること ■ 骨が入っていない物に、形から骨を作ります メッシュを見て、骨を何本・何段作るかを決め、ウェイトを塗り、 SkinnedMeshRenderer に組み直して、PhysBone まで付けます。 房の境目は隣の骨とブレンドするので、スカートでも裂けません。 ■ 骨が入っている物には、PhysBone を付けます 揺れの根元は「動いてはいけない骨」の1つ下に置きます。 メッシュを大きく支えている骨(髪ならHeadなど)を動かすと 髪全体が頭から外れてずれるので、そこは土台とみなして固定します。 ■ 揺れ方をプリセットで選べます 自動(形から決める)/髪(長い・ツインテール)/髪(前髪・短い)/ スカート/しっぽ/リボン・紐/耳/胸/ケープ・マント 既定は「自動」です。形を見て勝手に決めます。 揺れを付けた後でも、プリセットを選び直せば設定だけ変えられます。 ■ 自分の揺れ方を作って、人に配れます オプションを開くと、6つの数値を直接いじれます。 名前を付けて保存すると、プリセットの一覧に出るようになります。 「配布用に書き出す」を押すと .json ファイルが出ます。 ただのテキストなので、そのまま人に渡せますし、 自分の配布物に同梱しても構いません。 ■ FBX を置いただけの髪や服には、Armature ごと作ります 骨が1本も無い FBX でも、Armature を作ってその下に骨を並べます。 作る形は市販の髪プレハブと同じで、 「動かない土台」と「揺れる鎖」を分けた組み方です。 髪のように頭を覆う物は、上側を土台に固定します。 帽子ごと揺れて頭が出てしまうのを防ぐためです。 ■ 骨の細かさを決められます 骨1段の長さを指定できます。短いほど細かく曲がります。 市販の髪プレハブは1段4cmくらいで作られています。 骨の数には上限を持たせてあります(既定64本)。 上限に当たった時は鎖の本数から先に減らして、段数を残します。 曲がり方に効くのは段数のためです。 画面には骨の総数と、VRChatの判定の目安が出ます。 ■ 作った揺れを、あとから外せます 何を作ったかを記録に残しておくので、Ctrl+Z と違って Unity を閉じたあとでも外せます。 作ったあとに自分で足した骨は、逃がして残します。 ■ 使っていない生成メッシュを消せます 骨を作ると、組み直したメッシュがファイルとして残ります。 どこからも使われていないものだけを選んで消せます。 ■ 揺れの診断ができます このツールで作った物でなくても見られます。 根元が体の骨になっている/根元の下に骨が無い/上下で二重になっている /メッシュを大きく支えている骨が揺れる側に入っている、を指摘します。 直しはせず、指摘するだけです。 ▼ ★ このツールが「やらないこと」 ・貫通は直しません。コライダーは作りません。揺れを付けるだけです。 ・形が読めない物には何もしません。 頂点が12個に満たない塊、軸方向の長さが1cmに満たない物などは、 間違った骨を入れるより入れない方が害が小さいと判断して見送ります。 その場合は理由を画面に出します。黙って飛ばすことはしません。 ・既に揺れが付いている所には触れません。二重に付けません。 ・1つの入れ物に別種の揺れ物がまとまって入っている場合、 「揺らす」を押すだけだと、まとめて同じ揺れ方になります。 (例:1つの Armature の下に髪とスカートが同居している場合) 分けたい時は、それぞれを選んで別々に実行するか、 1.1.0 で追加した「囲う・ペンでなぞる」で部位ごとに指定してください。 ・元のメッシュは書き換えません。複製して使います。 ▼ プロジェクトへの影響 ・骨を作る時は、揺らした物の下に Armature / <名前>_Root / <名前>_Sway / 鎖 という入れ物を作り、その中に骨を並べます (部位ごとに指定した時は、<名前>_<部位名>_Sway が部位の数だけ並びます) ・骨がもともと入っている物には、その骨に PhysBone を付けるだけです ・骨を作った場合、組み直したメッシュを Assets/松川怒りの揺れボーン_生成物/ に保存します ブレンドシェイプを多く持つメッシュでは、このファイルが数百MBになることがあります (プロジェクトの Asset Serialization が Force Text の時に大きくなります) ・独自のスクリプト(MonoBehaviour)をアバターに付けません。 アップロード時に問題になるためです ・通信は一切行いません ・シーンの保存は自動では行いません ▼ 必要なもの ・Unity 2022.3 系 ・VRChat SDK - Avatars(PhysBone が使えること) ▼ 価格について このツールは無料で配布しています。 「アルコール消毒代」は中身がまったく同じものです。 「役に立った」と思われた方だけどうぞ。 ▼ 同梱物 松川怒りの揺れボーン自動生成.unitypackage 本体 使い方.txt 説明書 使い方(画像付き).html 基本の操作を画面付きで 髪衣装の揺らし方.html 骨があるとき/無いときの使い分け LICENSE.txt ▼ 説明書と、作例に使ったアバター 同梱の「使い方(画像付き).html」に加えて、 「髪衣装の揺らし方.html」を用意しました。 髪や衣装に骨があるとき/無いときで何が変わるのかを、 実際に動かした画面と数字でそのまま載せています。ブラウザで開いてご覧ください。 作例には「Nocturna -ノクターナ-【オリジナル3Dモデル】」をお借りしました。 かわいいので、みなさんもぜひ。ノクターナもっと流行れ!!!! (C) ReiYagen https://booth.pm/ja/items/6643517 #Nocturna3D #UnderNo3 ※ データは同梱していません。画像としてお借りしているだけです。 ▼ 利用規約 ■ 非商用の範囲でご利用ください 個人での利用は自由です。 このツールで作った揺れ物を含むアバターや衣装を、 無償で配布することも自由です。 ■ 商用利用をご希望の場合は、事前にご連絡ください 次のような場合は「商用利用」に当たります。 ・有償で販売・頒布する物に、このツールで作った揺れ物を含める場合 ・業務、受注制作、法人での利用 BOOTH のメッセージ機能からご連絡ください。 ■ このツール自体の単体での再配布・販売はご遠慮ください 配布物に同梱する場合は、LICENSE.txt と 使い方.txt を 一緒に入れてください。 ▼ 更新履歴 ■ 1.3.0 【直しました】骨がある物に付けた揺れが、1つも外せませんでした 1.2.0 で作った「揺れを外す」機能が、骨がある物(配布されている髪や衣装など) では必ず失敗していました。いちばん多い使い方がまるごと外せない状態でした。 申し訳ありませんでした。 【直しました】骨がある物に付けるとき、揺れる骨の数が「0 本」と出ていました 【直しました】骨を名指しで選ぶと「揺らせる骨が見つかりません」になっていました ・素体の胸やお尻のように、ひと続きの面の一部だけを揺らせるようにしました (境目が裂けないよう、ふちから元の動きへなだらかに戻します) ・「ふちを戻す幅(m)」を追加しました(既定 3cm、0 で戻さない) ・2段しかない短い骨の鎖も拾うようにしました(素体の胸など) ・短い鎖を向きで見分けるようにしました(上向きは耳、垂れていれば短い髪) ・揺れ方ごとに骨の細かさを変えるようにしました(髪3〜4cm/スカート8cm) ・揺れの診断を追加しました ・作った揺れを外せるようにしました(Unity を閉じたあとでも外せます) ・使っていない生成メッシュを消せるようにしました ・「外して作り直す」を追加しました ・掛け直したときに、前の生成メッシュを上書きするようにしました ・囲い・ペンでも二度掛けを弾くようにしました ・なぞった線と囲いを保存・読み込みできるようにしました(人にも渡せます) ・Hierarchy で複数選んでいれば、まとめて掛けられるようにしました ・囲いにも左右対称を足しました(ペンだけでなく四角にも) ・骨の名前に入れる語を変えられるようにしました(既定は Sway) ・重い処理に進捗と中止を出すようにしました ・作る前に、揺れる骨が何本になるかを出すようにしました ・一周している物・上を覆う物は、鎖を6本より減らさないようにしました ・「自動」が髪をスカート扱いしていたのを直しました ・Armature を消したメッシュが、囲う・なぞる画面に写らなかったのを直しました ※ 1.2.0 は公開していません。この 1.3.0 に内容をまとめて入れてあります。 ■ 1.1.0 【お詫びと訂正】 「骨がまったく無い FBX に Armature を作る」機能は、1.0.0 には入っていません。 入っているものとして説明していましたが、実際にはこの 1.1.0 からです。 申し訳ありませんでした。 1.0.0 でできたのは、骨がある物への PhysBone 付けと、 骨が無いメッシュへの骨作り(Armature は作らず、親に直接ぶら下げる形)までです。 ・ペンでなぞって、骨の道筋を直接描けるようにしました ・一体になっている衣装を、6方向から見て部位ごとに囲えるようにしました ・骨がまったく無い FBX に Armature を作れるようにしました ・骨が粗すぎたのを直しました(1段の長さを指定できるようにし、既定を8cmに) ・アバター本体を指定しても、体の骨には揺れを付けないようにしました ・もう揺れが付いている所を一覧で出し、そこから選べるようにしました ・PhysBone を Armature の外にまとめている構成でも候補が出るようにしました ・袖のような細い筒や、カールした尻尾を、いくつもの鎖に割ってしまう問題を直しました ・ピボットがメッシュから離れている FBX で、付け根の上下が逆になる問題を直しました ・髪の上側を土台に固定し、帽子ごと揺れて頭が出るのを防ぐようにしました ■ 1.0.0 最初の公開版。

