忘備録 トラブル対処法

編集モード・ボーンで動かすと、マテリアルがズレる?! 2025/02/16

オブジェクトモード以外で、オブジェクトを動かすと
マテリアルがズレるー!!!

○ オブジェクトモード

✕ 編集モード

✕ ポーズモード
(ボーンで動かす)

このように、テクスチャ座標のオブジェクトで作成したマテリアルは、
オブジェクトモード以外で動かすとマテリアルがズレてしまいます。

これを編集モードでもポーズモードでも、オブジェクトモードと同様にマテリアルがちゃんとついてきてくれるようにします。

ポーズモードでもマテリアルがズレない

この方法は、XでTopolazyさんに教えていただいたやりかたです。

ジオメトリーノードの詳細は、実は全然分かっとらん
教えていただいた方法を忠実に再現したらよう分からんけど出来た、ヤッターって感じ

目次

ジオメトリーノード

作業しやすいように画面を三分割します。

パンケーキのオブジェクトを選択している状態で、ジオメトリーノードエディタ―で新規をクリックします。

新規にジオメトリーノードができます。

Shift+A入力シーンオブジェクト情報を選択します。

グループ入力の上から2番目の○とオブジェクト情報のオブジェクトを繋ぎます。

グループ入力の何もなかったところがオブジェクトに変化します。

Shift+Aユーティリティスイッチを選択します。

グループ入力のジオメトリとスイッチのFalseを繋ぎます。
オブジェクト情報のスケールとスイッチのスイッチを繋ぎます。
オブジェクト情報のジオメトリとスイッチのTrueを繋ぎます。

Shift+Aジオメトリサンプルインデックスサンプルを選択します。

スイッチの出力とインデックスサンプルのジオメトリを繋ぎます。
このとき一時的にグループ出力との繋がりが無くなるので、3Dビューポートのパンケーキオブジェクトが見えなくなります。

Shift+Aジオメトリ読込位置を選択します。

続けて、Shift+Aジオメトリ読込インデックスを選択します。

位置の位置とインデックスサンプルの値を繋ぎます。
インデックスのインデックスとインデックスサンプルのインデックスを繋ぎます。
インデックスサンプルのFloatになっている箇所をベクトルに変更します。

Shift+A属性名前付き属性格納を選択します。

グループ入力のジオメトリと名前付き属性格納のジオメトリを繋ぎます。
インデックスサンプルの値と名前付き属性格納の値を繋ぎます。
名前付き属性格納のFloatになっている箇所をベクトルに変更します。
名前付き属性格納の名前の入力欄に任意の名称(pos0にしています)を入力します。
名前付き属性格納のジオメトリとグループ出力のジオメトリを繋ぎます。
3Dビューポートのパンケーキオブジェクトの表示復活します。

ジオメトリノード以降の手順

サイドのオブジェクトデータプロパティを開きます。

属性の右側にあるをクリックします。

ポップアップウィンドウが開きますので、

名前をジオメトリーノードの名前付き属性格納でつけた名称(pos0)に、
データタイプをベクトルにして、
追加をクリックします。

新たにpos0が追加されました。

3Dビューポートでパンケーキを複製します。

シェーダーエディターでShift+A入力属性を選択します。

属性のノードができますので、名前をジオメトリーノードの名前付き属性格納の名前でつけた名称(pos0)にします。

属性はまだとことも繋がず、一旦このままにしておきます。

サイドのモディファイアプロパティを開きます。

オブジェクトの入力欄にあるスポイトのアイコンをクリックして、3Dビューポートにあるパンケーキの複製元をクリックします。

クリックしたオブジェクト名になります。

再び、シェーダーエディターでの作業に戻ります。

テクスチャ座標のオブジェクトに代わって、属性のベクトルを繋ぎます。

完成

これで、編集モードで動かしても、ポーズモードでボーンで動かしても、マテリアルがズレることが無くなりました。

編集モード
ポーズモード(ボーンで動かす)

この方法は、コピー元になっているオブジェクトのマテリアルを、コピー先に転写してあげてるイメージらしい。
だから、コピー元が必要で、大事な役割をしてる。
親分と子分みたいなもんかな。

一連の作業が完了したら自分は、親分のほうは非表示・非選択にして触らないようにしています。
レンダリングの際も写って欲しくないのでカメラアイコンも✕マークにしています。

こうこく

目次