LeadShaderの設定方法


LeadShaderの技術解説
 → (そのうち記事にする予定…ですが、下記ツイートから追加での情報はほぼないと思われ)
技術解説ツイート https://twitter.com/konchannyan/status/1122847816202637313

<h1>以降、使い方です</h1>
使用希望は https://twitter.com/konchannyan/status/1129035480182460418 へ

<h1>1.UnityPackageをインポートしてください</h1>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/e5ea3dd1-fc21-ef7e-3e8c-1b465105f15d.png)


Assetsの直下に「JKsKeadShader xxxxxx」(xxxxxxはバージョン用の日付)フォルダができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/ca663c0c-996b-1ba1-6e97-625d16ff59eb.png)

resource : ShaderやMaterial、Meshなど、内部で使っているもの
beacon : 座標を発信するオブジェクト
chain : beaconに向かってチェーンを描画するオブジェクト

<h1>2.試しにbeaconとchainをワールドに配置して実行してみる</h1>
※再生する前には、何も表示されないのが正しいです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/266789bb-73c2-0e28-a8ca-a03a86c05c5b.png)

実行するとチェーンが描画される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/0d6fe47b-5c8e-ffa4-7b79-bb4508f97600.png)

<h1>3.指定されたID(RenderQueue)を設定する (beacon編)</h1>
resource内にあるLeadBeaconというShaderを書き換える必要がある。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/0b7e03ba-d184-2d31-3b43-de07cef97d5c.png)

16行目に指定した数値から1000引いた値を入れてください。
例:2451なら1000引いて1451を入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/e89ffadd-356f-67cf-5b85-3a41a4e41ee1.png)

<h1>4.指定されたID(RenderQueue)を設定する (chain編)</h1>
resource内にあるLeadChainMeshというShaderを書き換える必要がある。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/9f24ead3-f32a-7a4f-064d-2761967a51ef.png)

24行目に指定した数値から999引いた値を入れてください。
例:2451なら999引いて1452を入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/ec31f971-4e51-f102-8052-93ff698d504b.png)

<h1>5.指定されたID(Scale)を設定する (beacon編)</h1>
①beaconのscaleに指定したscaleを入力してください。(1.1111が指定された場合、1.1111とXYZすべてに入力)
②Applyを押して保存してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/ed41cded-856b-3788-719c-fb2dcf7312de.png)

<h1>6.指定されたID(Scale)を設定する (chain編)</h1>
resource内にあるLeadChainMeshというMaterialの設定を変える。
TargetIdに指定されたscaleを入力しください。(1.1111が指定された場合、1.1111と入力)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/1f65b8a1-9195-f070-18a7-3e70df731046.png)

<h1>7.実行して確認してみる。間違えてなければ動くはず！！！</h1>

<h1>8.アバターに仕込む (beacon編)</h1>
※例として0.8倍にしたクレリックちゃん(https://ponderogen.booth.pm/ )の右手に設定します
beaconを一気に右手の階層までドラッグ・アンド・ドロップしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/fab87e74-f817-b537-cc39-26ed9dd27521.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/e629a22a-6f99-0a24-fff3-2d8ac56c36be.png)

PositionとRotationとScaleが変更されます。
PositionとRotationは好きな値にしてください。(すべて0にしたあと、適当に設定してください)
Scaleは絶対に変更しないでください。(1.1111/0.8=1.3888876が自動で計算された)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/3b46c5ee-6429-cee2-07d6-df248c11afb5.png)


<h1>9.アバターに仕込む (chain編)</h1>
※例として0.8倍にしたクレリックちゃん(https://ponderogen.booth.pm/ )の左耳に設定します
chainを一気に左耳の階層までドラッグ・アンド・ドロップしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/42ede7a6-86c3-3466-90ff-6b8e3419f56f.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/6b653a94-8315-a3fc-687f-3ec28942d668.png)

PositionとRotationとScaleが変更されます。
PositionとRotationは好きな値にしてください。(すべて0にしたあと、適当に設定してください)
Scaleは1にしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/898be502-f70d-da74-d1d7-0cb8f23de122.png)

<h1>10.実行してちゃんと表示されれば設定に問題はないです</h1>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/fa3a0775-e6ea-8fcc-5e92-bb42a6df2011.png)

<h1>11.ペアで使う場合、どちらがbeaconかchainか決め、片方を削除する</h1>
自分がbeacon→chainを削除
自分がchain→beaconを削除

<h1>12.chainの見た目をいじる (chain側でマテリアルをいじるだけ)</h1>
手順6.でchainのマテリアルの場所を書いてます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/414266/30c52081-cc46-6e4f-cd04-7653a011312e.png)
Tess : チェーンの密度
ChainLen : 0より大きい値を設定すると垂れ具合が変わるが、現状機能してない
MaxDis : 一定以上離れているとチェーンを描画しない (当然仕込んだアバターが一定以上離れるとそもそも見えなくなる)
Color0 : 色1
Color1 : 色2
それ以外は触ることは無いと思います。

<h1>13.アップロード！！</h1>

<h1>Q&A</h1>
・改変は？
 → 他人に迷惑を掛けない範囲で。他人のLeadShaderにも影響を与えるかも？…と思ったらご相談下さい！
・使わなくなった！
 → IDに限りがあるので返却いただければ幸いです！
・ワールドで使いたい！
 → ワールド用のIDをまとめて発行します。
・変な挙動見つけた！
 → ご相談下さい。