【Blender4.5】Robust Weight Transferの使い方【高精度ウエイト転送】

3DCG
スポンサーリンク

はじめに

今回は高精度なウエイト転送ツール「Robust Weight Transferの使い方」を紹介します。

Blender内蔵のウエイト転送より上手くいきやすいと言われてるツールです。
(仕組みは謎)

Blenderの基本操作ができることを前提に進めます。
過去記事の検索や私が出した本などで頑張って身に着けてください。

Blender初心者の人はウエイト転送というキーワードに至らないはず…。

利用規約について

公的なライセンス的には「GPL – 3.0」です。
これはプログラム関係の配布に制約がつくライセンスです。

【GPLの概要】
・ツール使用での商用利用 → 自由
・ツール使用でのクレジット表示 → 義務ではない

・再配布が表示義務あり
・改変配布が表示義務あり

=それを使って作った創作物には法的な制約はつきません。

ただし、Robust Weight Transferの「JINXXY」ページ一番下を “よく見る” と…
下記の一文が書かれてます。

Please credit me when using it commercially!

軽く訳すと「Please 商業利用時はライセンス表記」になります。
※あえてPleaseはそのままにしてます。

Robust Weight Transfer for Blender by SentFromSpaceVR on Jinxxy
Check out SentFromSpaceVR's products on Jinxxy!

おわかりいただけただろうか。
ココです。

つまりここで入手先によるライセンス表記のズレが発生してます。

・Git Hubの表記 → GPL3.0
・JINXXYの表記 → GPL3.0+商業利用でライセンス表記が必要

正直、Git Hubのライセンスしか見てませんでした。
なのでPlease~の表記は自分では気づいていませんでした。

なのでこの表記は “使った後” に気づきました。
そして使っ後で表記が必要と言われても…
媒体的にはすごい書きづらいモノがあって困ったなぁという状態に…。

ちゃんと表記が必要なら、もうちょっとわかりやすく “明確に” 表示しておくれ…。

これに関してChat GPTの解釈は下記。

【Chat GPTの解釈】

1. 英語のニュアンス

英語で
Please credit me → 「クレジットしてくれると嬉しい / お願い」
You must credit me → 「必ずクレジットしなければならない」
Credit is required → 「クレジット必須」

つまりPlease = 丁寧なお願い
法律的義務を表す言葉ではありません。

ーーーーー

2. ライセンス優先の原則

もし Robust Weight Transfer が GNU General Public License version 3 (GPL-3.0) で公開されている場合、ライセンス上の義務は GPLの条文のみです。

GPLでは
・使用 → 自由
・商用利用 → 自由
・クレジット表示 → 義務ではない

義務になるのは
・再配布
・改変配布
のときです。

ーーーーー

3. 実際の解釈(開発者コミュニティ)

GitHubなどではよく
「Please credit me if you use this」
と書かれますが、これはほぼすべて「マナーとしてお願い」です。
もし義務なら普通こう書きます:

・Credit require
・Attribution required
・Licensed under CC BY
・You must include attribution

ただし、翻訳ツールを使うと…
この一文は「商用利用の際は、必ずクレジット表記をお願いします!」と翻訳されます。

( Google翻訳 + Deep Lで確認 )

結局は「Please」をどう解釈するかという問題に行きつくと思います。
あとはあなたの考え方次第…。

正直な話、制作物を見て「Robust Weight Transfer」を使ったことを完全に証明するのは不可能と思うから…

「できたら」解釈で良いと思います。

私も過去に使った媒体で使ったモノで自分が編集権限持ってて “後から編集可能” なモノは表記を入れましたが…。
そうでもないモノ、例えば3Dを使用した作品で “紙媒体的なモノ” に使ったモノなどは諦めてもらう形にしました。(ごめんね)

※こまかな追及を避けるため、あえて紙媒体的なモノという表記を使用。

このあたりを気にする方は標準機能のウエイト転送を使いましょう。

Robust Weight Transferの導入

こちらのページにアクセス。

GitHub - sentfromspacevr/robust-weight-transfer
Contribute to sentfromspacevr/robust-weight-transfer development by creating an account on GitHub.

「<> Code ▼」 → Download ZIPを選択。
.zipを任意の場所に保存。

Blenderを立ち上げ。
編集 → プリファレンス…を選択。

アドオン → 「ディスクからインストール…」を選択。

先ほどDLした「robust-weight-transfer-main.zip」を選択。
→ ディスクからインスト…を選択。

Robust Weight Transferにチェックが入ったことを確認。
プリファレンス画面を×ボタンで閉じます。

3Dビュー上で「Nキー」を押し右側の画面を表示。
「SENT」を選択。

「Install Dependencies」を選択。
これでPC内に動かすために必要なあれこれが自動で入ります。

Restart Blender!の表示が出ればBlenderを一度閉じて再起動。

↓ソース:などが表示される画面になるったことを確認。

これでRobust Weight Transferの導入が完了です。

ウエイト転送前の挙動確認

Nemo用ちゃんにこのような尻尾リボンを作りました。

ボーンを選択。

Ctrl+Tabキーでポーズモード。
任意のボーンを選択。

必要であればポーズオプションから「自動IK」を有効化。

自動IKはつながったボーンをまとめて動かす機能です。

この状態でGキーやRキーなどでボーンを操作。
すると… リボンが一緒に動かないと思います。

↓こんな感じの挙動です。

これを動かすために「ウエイト転送」を行っていきます。

ウエイト転送の実践

Robust Weight Transfer画面を表示。
ソース:のスポイトマークを選択。
ウエイト転送元にしたい3Dモデルを選択。(ここでは尻尾)

次に「ウエイトを転送したい」モデルを選択。
→ ウエイトを転送を実行。

すると画面下部にメッシュ名の表示が出ます。

これが出たら転送先のモデルを選択。
オプジェクトデータプロパティを確認。
頂点グループにボーン名が表示されてればウエイト転送が成功してます。

ただし… 移動量の情報が送られただけです。
ボーンに合わせて動く設定は入ってません。

↓なのでまだ元のモデルに合わせて動かないままになってます。

内部的には「移動量の情報」だけ入った感じです。
この移動量の情報を “どう使うか” みたいな部分が設定されてない状態になってます。

なので3Dモデルを動かせるようにしていきます。

3Dモデルを動かして調整

Shift+クリックで「動かしたいモデル」 → 「ボーン」の順に複数選択。
Ctrl+Pキー → 「空のグループで」を実行。

この選択順が重要です。
ボーン → モデルの順だとこの表示が出ないので注意。

これで「動くための設定」と「移動量の情報」の2つがそろいました。

ボーンを動かすと、転送されたウエイト(移動量の情報)を元に動きます。

これで多くの場合は終了。

もしウエイト転送が上手くいかない場合は「設定」などを調整してください。

細かくは個別的なモデルの問題になるので解説しきれないです。

あと、必要であれば任意のボーンを追加しウエイトを手動で調整。

手動での調整方法はこちらで解説。

以上がRobust Weight Transferを使ったウエイト転送の方法です。

ウエイト転送が上手く行われない場合

アバター → 衣装の転送はたまに上手くいかないことがあります。
特に非対応衣装を調整したときに起こります。

こちらの原因はボーン名の不一致であることが多いです。

なのでボーン名を合わせてから再度ウエイト転送を行ってください。

半角スペースまで正しく合わせないと動かないので注意。

あとはやる方は… 一度、頂点グループを削除してウエイトを初期化。
※素体のに無いボーンのウエイトは完全に消えるので注意

個人用途ではやらない方が良いです。
Boothで販売するモデルのデータを綺麗にしたい人向け。

スムーズ値の紹介

↓初期状態のウエイト転送でこんな感じになりました。
↓ただちょっと面がギザギザしてます。

そこでおすすめする設定は「スムーズ」です。
こちらを有効化+値を調整。
→ 再度ウエイト転送。

これで少し突き抜けが発生しましたが…
面の変化が綺麗になりました。

この突き抜けが次に紹介する簡単な調整で治るなら…
スムーズを入れた方が綺麗になると思います。

突き抜けの調整

Alt+Dキーでリンク複製。

片側のボーンをポーズモードで操作。
これで「確認用」と「編集用」の2つのモデルができました。

そして編集用の方をスカルプトで操作。
確認用の突き抜けが治らないか見ながら調整します。

ただ、突き抜けは同じ頂点位置+同じ移動量でない限りどうやっても起こります。
↓同じ頂点位置でも少し膨らませるとズレて突き抜けます。

そして完全に同じ頂点位置+移動量だと「面がチカチカ」するという別の問題が発生します。
(面の位置が同じ位置に無いことが重要)

この面がチカチカする現象は「Zファイティング」と呼ばれます。

このように「完全一致」も「非一致」もどちらでも問題は発生します。
なので、完全な突き抜け対策は不可能です。
ある程度で諦めるしか手は無いです。

突き抜け対処は理屈的にはモデルを膨らませれば膨らませるほど軽減されます。
しかし、膨らませると形が悪くなっていきます。

つまり私たちはこの「形優先」か「突き抜け優先か」というバランスを保ちながら造形を調整するしか手は無いです。
両方完璧な対策は不可能です。

まとめ

今回はBlender4.5で、Robust Weight Transferを使ってウエイト転送をする方法を紹介しました。

・Robust Weight Transferは高精度なウエイト転送ツール
・無料で使えてアドオンとして導入可能
・DLは公式Git Hubから.zipを入手し入れる
・操作は転送前のメッシュを選択 → 転送先のメッシュを選択し「ウエイトを転送」を押すだけ
・動かすためにはボーンとモデルの関連付けが必要
・関連付けはモデル → ボーンの順に選択しCtrl+Pキー → 「空のグループで」で行う

また他にも3DCGについて解説してます。

ぜひ、こちらもご覧ください。

コメント

タイトルとURLをコピーしました