LeadShaderの技術解説
→ (そのうち記事にする予定…ですが、下記ツイートから追加での情報はほぼないと思われ)
技術解説ツイート https://twitter.com/konchannyan/status/1122847816202637313
以降、使い方です
使用希望は https://twitter.com/konchannyan/status/1129035480182460418 へ
1.UnityPackageをインポートしてください
Assetsの直下に「JKsKeadShader xxxxxx」(xxxxxxはバージョン用の日付)フォルダができます。
resource : ShaderやMaterial、Meshなど、内部で使っているもの
beacon : 座標を発信するオブジェクト
chain : beaconに向かってチェーンを描画するオブジェクト
2.試しにbeaconとchainをワールドに配置して実行してみる
3.指定されたID(RenderQueue)を設定する (beacon編)
resource内にあるLeadBeaconというShaderを書き換える必要がある。
16行目に指定した数値から1000引いた値を入れてください。
例:2451なら1000引いて1451を入力する。
4.指定されたID(RenderQueue)を設定する (chain編)
resource内にあるLeadChainMeshというShaderを書き換える必要がある。
24行目に指定した数値から999引いた値を入れてください。
例:2451なら999引いて1452を入力する。
5.指定されたID(Scale)を設定する (beacon編)
①beaconのscaleに指定したscaleを入力してください。(1.1111が指定された場合、1.1111とXYZすべてに入力)
②Applyを押して保存してください。
6.指定されたID(Scale)を設定する (chain編)
resource内にあるLeadChainMeshというMaterialの設定を変える。
TargetIdに指定されたscaleを入力しください。(1.1111が指定された場合、1.1111と入力)
7.実行して確認してみる。間違えてなければ動くはず!!!
8.アバターに仕込む (beacon編)
※例として0.8倍にしたクレリックちゃん(https://ponderogen.booth.pm/ )の右手に設定します
beaconを一気に右手の階層までドラッグ・アンド・ドロップしてください。
PositionとRotationとScaleが変更されます。
PositionとRotationは好きな値にしてください。(すべて0にしたあと、適当に設定してください)
Scaleは絶対に変更しないでください。(1.1111/0.8=1.3888876が自動で計算された)
9.アバターに仕込む (chain編)
※例として0.8倍にしたクレリックちゃん(https://ponderogen.booth.pm/ )の左耳に設定します
chainを一気に左耳の階層までドラッグ・アンド・ドロップしてください。
PositionとRotationとScaleが変更されます。
PositionとRotationは好きな値にしてください。(すべて0にしたあと、適当に設定してください)
Scaleは1にしてください。
10.実行してちゃんと表示されれば設定に問題はないです
11.ペアで使う場合、どちらがbeaconかchainか決め、片方を削除する
自分がbeacon→chainを削除
自分がchain→beaconを削除
12.chainの見た目をいじる (chain側でマテリアルをいじるだけ)
手順6.でchainのマテリアルの場所を書いてます
Tess : チェーンの密度
ChainLen : 0より大きい値を設定すると垂れ具合が変わるが、現状機能してない
MaxDis : 一定以上離れているとチェーンを描画しない (当然仕込んだアバターが一定以上離れるとそもそも見えなくなる)
Color0 : 色1
Color1 : 色2
それ以外は触ることは無いと思います。
13.アップロード!!
Q&A
・改変は?
→ 他人に迷惑を掛けない範囲で。他人のLeadShaderにも影響を与えるかも?…と思ったらご相談下さい!
・使わなくなった!
→ IDに限りがあるので返却いただければ幸いです!
・ワールドで使いたい!
→ ワールド用のIDをまとめて発行します。
・変な挙動見つけた!
→ ご相談下さい。