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


○ オブジェクトモード


✕ 編集モード


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


このように、テクスチャ座標のオブジェクトで作成したマテリアルは、
オブジェクトモード以外で動かすとマテリアルがズレてしまいます。
これを編集モードでもポーズモードでも、オブジェクトモードと同様にマテリアルがちゃんとついてきてくれるようにします。


この方法は、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ビューポートにあるパンケーキの複製元をクリックします。


クリックしたオブジェクト名になります。
再び、シェーダーエディターでの作業に戻ります。
テクスチャ座標のオブジェクトに代わって、属性のベクトルを繋ぎます。






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







この方法は、コピー元になっているオブジェクトのマテリアルを、コピー先に転写してあげてるイメージらしい。
だから、コピー元が必要で、大事な役割をしてる。
親分と子分みたいなもんかな。
一連の作業が完了したら自分は、親分のほうは非表示・非選択にして触らないようにしています。
レンダリングの際も写って欲しくないのでカメラアイコンも✕マークにしています。

