まゆたまガジェット開発逆引き辞典

電子工作やプログラミングのHowtoを逆引き形式で掲載しています。作りたいモノを決めて学んでいくスタイル。プログラマではないので、コードの汚さはお許しを。参照していないものに関しては、コピペ改変まったく問いません

バーチャルキャストに3Dオブジェクトを持ち込んで、つかんだりする

バーチャルキャストに3Dオブジェクトを持ち込んで、小道具として使用する方法です。
「The Seed Online」にアップロードすることで簡単にバーチャルキャストで使用することができるのですが、アイテムを登録するだけではつかんだり移動させたりができませんでした。
seed.online

小道具をつかむ・移動させる・拡大縮小するためには、「VCI」として書き出さないといけないようです。
今回は小道具を持ち込み、バーチャルキャスト内でつかんだりして使用できるようにします。
急ぎで自分メモしたので、図なしの箇条書きで見にくくてすみません。

UnityはMacでも動きますが、VCIの開発環境がWindowsのみのため、Windowsマシンで行います。

記事を作成するにあたり、下記を参考にさせて頂きました。ありがとうございます。
(下記3つ、バージョンアップにより微妙に変わっているところがあります。この記事は2019年3/21時点の最新バージョンで行ったものです)
また下記のサンプルでは立方体を作ってアップロードしていますが、この記事はすでに作成済みの3Dモデルをアップロードしています(.glbファイル)。
virtualcast.jp
https://niconare.nicovideo.jp/watch/kn4137
https://niconare.nicovideo.jp/watch/kn4199

こんな感じで某激レアさんのフリップボード?(司会のアナウンサーさんがホワイトボードに貼り付けてるアレ)を作ってみました。サイズ的にもちょうどいい感じ。
f:id:prince9:20190321064856j:plain

ちなみに背景をアニメーションさせる場合はこちらです。
virtualcast.jp


UnityでVCIを書く環境を整える

1.最新版のUnity(ベータ版ではない方)をダウンロード&インストールする
2.Unityを開いて新規プロジェクトを作成する。このときプロジェクト名は英語で「VCI_Test1」など分かりやすい名前をつける。
「Enable Unity Analytics」は一応ONにしておく
3.「Edit」メニュー→「Project Settings」を選択し、左側の「Player」をクリック。次に右側の「Other Settings」をクリック
4.「Configuration」と書かれた太字の項目を探し、「Scripting Runtime Version」の項目を「.NET 4.x Equivalent」にする。
変更した場合は「Restart」というボタンが出てくるので、それを押してUnityを再起動する
5.2.で作ったUnityプロジェクトを開いた状態で、下記からUniVCIのUnityPackage最新版をダウンロードする
github.com

6.ダウンロードしたUnityPackageをクリックし、「Import」ボタンを押す
7.「Hierarchy」にある「SampleScene」の横の▼をクリックし、「Save Scene As」を選んで保存する。
このとき「VCI_TestSample」など分かりやすい名前にする

サンプルを作成する

公式でも発表があったように、「root」の中に操作したいオブジェクトを複数突っ込む形です。また操作したいオブジェクトの下に操作したいオブジェクトを置くことはできません。

1.「Hierarchy」→「Create」をクリックし、「CreateEmpty」を選択する
2.空の「GameObject」ができているので、「GameObject」をクリックして「root」に名前を変更する
3.「root」がクリックされている状態で、右側の「Inspector」を見て、「Transform」→「Position」「Rotation」が(0,0,0) 、「Scale」が(1,1,1)になっているか確認する
4.そのまま「Add Component」をクリックし、検索窓に「VCI」と入力して「VCIObject」をクリックする
5.「VCIObject(Script)」が追加されていることを確認し、「Information」を下記のように入力する。ここはライセンスなどを入力するところで、VRMでいうアバター名などの設定項目に該当する
・「Title」→ 「VCIsample」
・「Version→ 「1」
・「Autho→ 「test」
・「Description→ 「チュートリアル用」
6.「Assets」に「.glb」の拡張子がついた3Dモデルをドラッグ&ドロップして読み込む(「.glb」ファイルはメタセコ等の3Dアプリで書き出し可能)
7.3Dモデルのファイル名のついた青い立方体を「Hierarchy」にドラッグ&ドロップする
8.人型の3Dモデルを読み込んでおき、7.のオブジェクトのサイズを調整する
9.サイズ調整が終わったら、7.のオブジェクトを「Hierarchy」の「root」にドラッグ&ドロップして、rootの子にする

つかめるようにするか・浮くようにするか設定する

1「root」にドラッグ&ドロップしたオブジェクトをクリックし、右側の「Inspector」の「Add Component」をクリックする
2.検索窓に「VCI」と入力して「VCISubItem」をクリックする
3.「VCI Sub Item(Script)」がInspectorに出ていることを確認し、「Grabbable」にチェックを入れる
「Grabbable」にチェックを入れて、後述のColliderを設定することで掴めるようになります
4.大きさを変えたい場合は「Scalable」にチェックを入れる
5.「Rigidbody」の「Use Gravity」のチェックを外す。浮いた状態にしたいアイテムの場合はここのチェックを外して(重力を無視する)、さらに「Is Kinematic」にチェックを入れる
6.空中に留まっていて欲しいので、「Is Kinematic」にチェックを入れる
7.そのまま「Add Component」をクリックし、検索窓に「Box Collider」と入力して「Box Collider」をクリックする
8.オブジェクトの大きさに合うように「Center」「Size」の値を調整する。「X」の文字にマウスカーソルを合わせて左右に動かすと、画面を見ながら数値を変化させることができる。
もしくは「Edit Collider」ボタンをクリックして画面上で緑の■を動かすと、画面を見ながら大きさを変更することもできる


シェーダを設定する

1.「Assets」→「読み込んだ3Dオブジェクト名.Materials」フォルダを探し、マテリアルをクリックする
2.その状態で「Inspector」→「Shader」→「Standard」をクリックする
3.シェーダを「UniGLTF」→「UniUnlit」に変更する(VRM→MToonもOK)
※影をつけない場合は「UniUnlit」、影をつける場合は「StandardVColor」にする。アニメっぽくする場合は「MToon」に


書き出す

1.「Hierarchy」の「root」をクリックし、「VCI」メニュー→「UniVCI-バージョン」→「Export VCI」を選択する
2.ウィンドウが開くので、「新しいフォルダー」をクリックし、「Sample」と名前をつける
3.「Sample」フォルダをダブルクリックし、ファイル名を「root」にして「保存」を押す
4.「File」メニュー→「Save」を選択して保存する


The Seed Onlineにアップロードする

1.Unityを終了し、「The Seed Online」にアクセスする
seed.online

2.アカウント登録後、「アップロード」ボタンを押す。その後「利用規約に同意する」にチェックを入れる
3.「投稿するアイテムタイプ」を「小道具(VCI・GLB)」に変更し、立方体アイコンをクリックする
4.先ほど作ったUnityのプロジェクトフォルダを探し、「Assets」→「Sample」→「root.vci」を探してクリック、「開く」を押す
5.「アップロードされました」との表示が出たら、「アイテムを見る」をクリックする
6.立方体が表示されていることを確認し、「アイコンを撮影」のボタンを押す。そうするとアイコン画像が登録される
7.「アイテム名」を「テスト用キューブ」などに変更する
8.下の方の「利用規約に同意する」にチェックを入れる
9. バーチャルキャストとThe Seed Onlineを連携した上でバーチャルキャストに入ると、アイテムのところに出てくるので使えるようになる

バーチャルキャストでボイスチェンジ配信+Discordも使用

ボイスチェンジャーを使ったバーチャルキャストでの配信の音まわり、それからバーチャルキャスト+Discordを使った配信の音まわりに関するメモです。
バーチャルキャストとなっていますが、clusterでも設定は同じです(Discordと併用しない限り)。

ボイスチェンジャーを使ったバーチャルキャストでの配信の音まわり設定

0.Voicemeeter BananaとVB-CABLEをダウンロード&インストールする
www.vb-audio.com
www.vb-audio.com


1.VR機器を接続した後、SreamVRを立ち上げる。そして「SteamVRバージョン名」のところを右クリックし、「設定」を選択する
さらにSteamVRの「設定」を下記のようにする(一度設定したら次から飛ばしてOK)
f:id:prince9:20190318033958p:plain

2.サウンドコントロールパネルで下記のように設定する
f:id:prince9:20190318033657p:plain
f:id:prince9:20190318033725p:plain

3.ボイチェンアプリを立ち上げて下記のような設定にしたら、「Start」などを押してボイチェンをONにする
(下記はバ美声の例です)
f:id:prince9:20190318034123p:plain

4.Voicemeeter Bananaを立ち上げ、下記のような設定にする。
自分の声のモニタを切りたい場合は、Hardware InputのA1を選択しないようにする
f:id:prince9:20190318041529p:plain

5.バーチャルキャストを立ち上げ、スタジオに入る(サウンドは「規定のデバイス(VoiceMeeter Output = B1)」でOK)
6.OBSを立ち上げ、下記のように設定する
デスクトップ音声(VoiceMeeter Input=AI=規定の再生デバイス) :バーチャルキャストの他出演者さん(凸者さん)+バーチャルキャストUI音+サウンド再生アプリで鳴らしたBGM(たぶん。BGMは未実験です)
マイク音声(VoiceMeeter Output=B1=規定の録音デバイス):自分のボイチェン後の音声
f:id:prince9:20190318041830p:plain

ボイスチェンジを使ったバーチャルキャスト+Discordでの配信の音まわり設定(VR機器使用者さんとスマホ使用者さんの共演)

バーチャルキャストでの出演者さんとDiscordを使った音声のみの出演者さんが共演する場合の設定です。
映像はバーチャルキャスト、音声はDiscordでやりとりを行います。

0.Voicemeeter BananaとVB-CABLEをダウンロード&インストールする
www.vb-audio.com
www.vb-audio.com

1.VR機器を接続した後、SreamVRを立ち上げる。そして「SteamVRバージョン名」のところを右クリックし、「設定」を選択する
さらにSteamVRの「設定」を下記のようにする(一度設定したら次から飛ばしてOK)
f:id:prince9:20190318033958p:plain

2.サウンドコントロールパネルで下記のように設定する
f:id:prince9:20190318033657p:plain
f:id:prince9:20190318033725p:plain

3.ボイチェンアプリを立ち上げて下記のような設定にしたら、「Start」などを押してボイチェンをONにする
(下記はバ美声の例です)
f:id:prince9:20190318034123p:plain

4.Voicemeeter Bananaを立ち上げ、下記のような設定にする。
自分の声のモニタを切りたい場合は、Hardware InputのA1を選択しないようにする
f:id:prince9:20190318053238p:plain

5.バーチャルキャストを立ち上げ、画面左上の歯車マークをクリックし、以下のように設定する。
その後キャリブレーションする前まで行う
f:id:prince9:20190318052636p:plain

6.PC版DIscordを立ち上げ、「アプリの設定」→「音声・ビデオ」→「音声設定」の項目を下記のようにする
f:id:prince9:20190318053136p:plain

7.「グループアイコン」→「VOICE CHANNELS」の該当するチャンネルをタップして音声通話状態にする

8.バーチャルキャストでキャリブレーションを行い、スタジオへ入る

9.OBSを立ち上げ、下記のように設定する
デスクトップ音声(VoiceMeeter Input。=AI=規定の再生デバイス) :バーチャルキャストの他出演者さん(凸者さん)+バーチャルキャストUI音+サウンド再生アプリで鳴らしたBGM(たぶん。BGMは未実験です)
マイク音声(VoiceMeeter Output。=B1=規定の録音デバイス):自分のボイチェン後の音声
f:id:prince9:20190318041830p:plain

VR機器を使わない、Discordスマホアプリ使用の場合

1.Discordアプリを立ち上げる
2.メニューアイコンをタップし、下の歯車マークをタップする。「アプリの設定」→「音声」をタップし、下記のようにする
f:id:prince9:20190318045358p:plain
f:id:prince9:20190318045019p:plain

3.「グループアイコン」→「VOICE CHANNELS」の該当するチャンネルをタップする。
「ボイスチャンネルに接続」が出る場合もあるので、出ていたらそれもタップする
f:id:prince9:20190318045852p:plain

VRM(VRoid産)にパーツを追加して再びVRMに戻す

VRoidで出力したり他サイトで購入したVRMアバターにパーツを付け足して、再度VRMに戻す方法です。
Blenderを使用して変換する方法は紹介されていますが、「再度VRM化する際にボーンの割り当てが変更になっていることがある」という注意点があります。
今回はMayaを使ってパーツを追加していますが、Blenderでも注意点は同じです。

Mayaを使ってパーツ追加をする(Blenderの場合は2.3を飛ばす)

1.BlenderVRMを読み込み、FBX化

Mayaを使う場合はUnityでのアセットは使用厳禁。BlendShapeがおかしくなります。
プラグインの追加・VRM読み込み・FBX書き出し方法はこちらを参照します。このときBlenderのバージョンは2.8を使用します。
toylabo.tech

MacBlenderではVRMファイルの読み込みに失敗することがたまにあります。
失敗したか否かは見た目からは分かりません。エラーみたいなのも画面上には表示されませんでした。
Mayaに読み込んだ状態でボーンの形があからさまにおかしくなっている場合は失敗している可能性が高いです。

下記が成功例です。ボーンが身体全体を覆っている状態は失敗している可能性があります。
f:id:prince9:20190315235948p:plain

パーツ追加でBlenderを使用する場合は、この後2.と3.を飛ばしてパーツを追加・スキニング(ウエイト塗り)をしていきます。

2.1.で書き出したものをMayaで読み込み、パーツ追加・スキニング

スキニングが終わったら、ヒストリーを削除してから保存とFBX書き出しを行います。
追加パーツを移動・拡大縮小・回転させた際は、スキニング前に「修正」メニュー→「トランスフォームのフリーズ」をしておきます。
追加パーツは別シーンで作った後、モデルのみ消去して「追加パーツのみのFBXファイル」を作って読み込むとトラブルがなさげでした。
ヒストリーが残っているとエラーが起こりやすいです。
f:id:prince9:20190315192209p:plain

3.2.をBlenderで読み込み、FBXで書き出し(未確証ですが、3.をやらないとVRM化でエラーが起こる)

この作業の必要性が個人的に???だったのですが、ここを通さないとUnityでVRM化の際にBlendShape関連のエラーが起きました。ので一応記載。
書き出しの設定方法は1.と同じです。
toylabo.tech

1度目のVRM化(Blender使いもここ注意)

4.Unityで書き出したFBXファイルを読み込み、1回目のVRM化を行う(Blenderのみの場合も、VRoidを使用している場合はここ重要)

VRMで書き出す前に下記の作業をします。VRoidから書き出したモデルを使用している場合は必ず必要になります
1.Projectの中のFBXファイルをクリック
2.Inspectorが出てくるので、「Rig」タブから「Animation Type」を「Humanoid」にして一度「Apply」を押す
3.「Configure...」にチェックが入っていればOK
4.「Configure...」をクリックし、「Head」ボタンをクリックする

f:id:prince9:20190315193913p:plain
↑Headボタンをクリックした状態

5.Left Eyeの横の「J_Adj_L_FaceEyeSet」をクリックし、Hierarchyの中の「J_Adj_L_FaceEye」をクリックする
f:id:prince9:20190315194229p:plain

6.同様にRight Eyeの横の「J_Adj_R_FaceEyeSet」をクリックし、Hierarchyの中の「J_Adj_R_FaceEye」をクリックする
7.Headのボーンの割り当てが下記のようになっているか確認する。jawにボーンが入っていたら、jawの右の◎をクリックして「None」を選択する
f:id:prince9:20190315194348p:plain

設定が終わったら、「Apply」→「Done」の順にボタンを押す

8.1度目のVRM化。マテリアルとテクスチャはこの後設定するので、Humanoid化とボーンの割り当てを変更したらVRM化を行う。
FBXファイルをHierarchyに配置してクリック→「VRM」メニューの「UniVRM-バージョン」を選択→「Export humanoid」で1度目の書き出し
9.下記を参考にして、マテリアルとテクスチャを再設定する
qiita.com
10.こちらのやり方で揺れモノやコライダーの設定を再設定する
scrapbox.io
※上記の「[設定を出力する手順]」でHierarchy上にモデル1体のみ置くことを推奨されています。
この場合、このようにしてモデル1体のみ表示します。
1.「Assets」を右クリックして「Create」→「Prefub」を選択
2.新しくできた「New Prefub」の名前を英語で変更する
3.Hierarchy上のモデルを2.にドラッグ&ドロップする
4.Hierarchy上のモデルを右クリックし、「Delete」で消す
5.再度モデルを置く場合は3.でできたPrefubをHierarchyにドラッグ&ドロップする

5.その他細かいところを修正する

2度目のVRM書き出しを行う前に、10.では調整しきれていない箇所やBlendShape(表情)の再設定を行う。
VRoidからの書き出しの場合は、VRMアバターを選択して出てくるInspectorにて下記を修正する。
VRM Look At Bone Applyerの「Degree Mapping」→「Horizontal Outer」「Horizontal Inner」の「Curve X 〜」と「Curve Y 〜」の値を下記のようにする
f:id:prince9:20190315194919p:plain

VRM Blend Shape Proxyの「Blend Shape Avatar」→「BlendShape」をダブルクリックして、「LOOK〜」以外の表情を設定する
→「LOOK〜」は未設定でもOKだが、下記の方法で設定するとプログラム上でいぢりやすくなる。
1.Blend Shapeの設定画面を開いた状態で、「LOOKUP」ボタンをクリックする
2.「Material List」タブをクリックして「+」を押してから、VRoidの場合は下記のように設定する。
「LOOKUP(上を向いた状態)」では「Offset」のYの値を変えることになる。この値はモデルによって違うので、下の「BlendShape」画面を見ながら調整する
f:id:prince9:20190315195913p:plain
3.他の「LOOK〜」も同様に設定する

2度目のVRM

6.2度目のVRM書き出しを行う

1回目のVRM書き出しで作成されたVRMファイルをHierarchyに配置してクリック→「VRM」メニューの「UniVRM-バージョン」を選択→「Export humanoid」で2度目の書き出し


スキニングがちゃんと出来ていれば、下記のようにFBX化の際に追加した鈴が髪の毛(揺れモノ設定あり)に追従します。
hub.vroid.com

Processingで立方体をランダムな位置&ランダムな方向に回転させる

イラストの背景用にまた自動生成グラフィックを使ってしまったのでメモ。
楽なんですもの・・・

下記の画像のように、ランダムな方向を向いた立方体をランダムな位置に配置しました。
マウスを押すと新たに描画してくれます。
好きな画像が生成されるまで、マウスをクリックします。

f:id:prince9:20190121052624p:plain

Processingは3Dで描画した場合はPDF書き出しができないので(私のやり方が悪いのかも)、PNGで書き出してフォトショやイラレでテクスチャを貼ります。
Processing上でテクスチャを貼っても良いのですが、あまりキレイじゃない気がするので、そこは妥協しました。


 float rotX, rotY, rotZ;
  float boxsize;
  float posx, posy, posz;  

void setup(){
size(600, 600, P3D);
  smooth();
  noLoop();
  
}
void draw(){
  background(255,255,255);
  translate(width/2, height/2, 200);
  

   //20個描く
  for(int i=0; i<20; i++){
    boxcity();
  }
}
 
void boxcity(){
boxsize = 30; //奥行きで大きさが決まるので、立方体のサイズは一定でいいかも

//以下、立方体の位置
    posx = random(-100, 100);  
    posy = random(-100, 100);
    posz = random(-100, 100);


    
    fill(0,0,0);
  stroke(255);
 strokeWeight(2);
    pushMatrix();
    translate(posx, posy, posz); 
    box(boxsize, boxsize, boxsize);
    popMatrix();
    
    //立方体の回転角度
    rotX = random(10, 340);
    rotY = random(10, 340);
    rotZ = random(10, 340);
    
    rotateX(radians(rotX));
        rotateY(radians(rotY));
            rotateZ(radians(rotZ));


}

  
//ボタンを押すとランダムに描画
void mousePressed() {
      redraw();// ボタンが押されたときだけ実行
}

なお立方体の描画に関して、下記を参照させて頂きました。

http://solo-p5.tumblr.com/post/69249477759/p3dとboxとarrayとjavajsモードの違いとtips
solo-p5.tumblr.com

バ美声を使ってボイスチェンジする(設定あり)

つい最近ベータ版が発表されてそのクオリティの高さが評判となった「バ美声」を使ってボイチェンをしてみました。
halfsode.booth.pm

配信側の設定は下記をご参照ください。
prince9.hatenablog.com


物理女性声→高い女性声へチェンジしたところ、よく知られている「恋声」よりもクオリティが高かったです(個人調べ)。
地声(女性にしては少し低め)→バ美声→バ美声の順番です。

soundcloud.com


設定は下記と変わりませんが、一応載せておきました。
prince9.hatenablog.com

■バ美声→VST使用可能アプリ(REAPERやCubaseなど)
1.Windowsサウンド設定
・「再生」のタブの「スピーカー」を右クリックし、「既定のデバイス」を選択する。Viveのイヤホン端子またはヘッドセットの出力を既定のデバイスにする
・「録音」のタブの「VoiceMeeter Output」を右クリックし、「既定のデバイス」を選択する(「VoiceMeeter Banana」インストール済み)
f:id:prince9:20181021185832p:plain
f:id:prince9:20181021185954p:plain

・さらにViveを使って配信する場合は、SteamVRを下記のように設定する
f:id:prince9:20181021191045p:plain


2.「VB-CABLE」をダウンロード&インストールした状態で、バ美声の設定を下記のようにする
www.vb-audio.com

・入力デバイス:「Viveのマイク(3-HTC Vive)」またはヘッドセットのマイク
・出力デバイス:「CABLE Input」
f:id:prince9:20190117192631p:plain

3.VST使用可能アプリ(REAPERやCubaseなど)で下記のように設定する
・確認+録音する場合
f:id:prince9:20190117192744p:plain

・配信にゲストとして参加する場合
f:id:prince9:20181021195946p:plain

ShaderGraphで灯篭的なものをつくる

トゥーンシェーダで影がドットのものを作りたくなったので、ShaderGraphで作ってみることにしました。
ShaderGraphとは、シェーダを線のようなもので繋いで作成していくものです。
今回はその練習として、UVスクロールのShaderを作ってみます。要するにテクスチャがアニメーションして動くものですね。

インストールの準備をする

※注意 ShaderGraphの使い方をググると、ProjectManagerからShaderGraphをインストールしようなどの項目が出てきますが、2018年11月下旬において、それを行うとShaderGraphで作ったファイルが保存できません。
現状このやり方でできますので、注意が必要です。
テンプレートではなく新しくプロジェクトを作って、ProjectManagerから各種ファイルをインストールしても同様の結果でした。
すでに作ったプロジェクトを「Edit」メニュー→Render Piepeline→Update Project Materials To Lightweight Materialsを選んで、「Processed」を押してアップデートしても同様でした。

1.Unityのプロジェクトを作る。このとき、「Template」を「Lightweight RP(Preview)」にする
f:id:prince9:20181123114229p:plain
2.テンプレート画面が出てくるので、「Assets」を右クリックして、「Create」→「Scene」で新しいシーンをつくる
3.「GameObject」メニュー→「3D Object」→「Cube」などでテストモデルを作成する
4.「Assets」にドットのテクスチャをドラッグ&ドロップで読み込ませておく

Shaderをつくる

1.「Asstes」を右クリックし、「Create」→「Shader」→「PBR Graph」を選択して「RollShaderGraph」など名前をつける
2.「RollShaderGraph」をクリックした状態で、右クリックし、「Create」→「Material」でマテリアルを作成して「RollMat」など名前をつける
3.「RollShaderGraph」をダブルクリックし、ShaderGraphを立ち上げる

ノードをつくる

1.テクスチャを表示する
→テクスチャのRGB(4)を「PBR Master(最終出力)」の「Albedo」につなぐ
f:id:prince9:20181123152922p:plain

2.テクスチャを手動でスクロールさせる
2-1.ShaderGraphの画面で右クリックして「Create Node」を選択→「Input」→「Basic」→「Slider」でスライダーを表示する
2-2.下記のようにノードを接続する

全体:
f:id:prince9:20181123153752p:plain

部分:
f:id:prince9:20181123153711p:plain
f:id:prince9:20181123153725p:plain
f:id:prince9:20181123153737p:plain

2-3.「Slider」のスライダを動かして、テクスチャが動けばOK


3.自動でテクスチャがスクロールさせる
3-1.「Sider」をクリックし、右クリックして「Convert to Property」を選択する。これでInspectorからSliderの値をコントロールできる
f:id:prince9:20181123163421p:plain
3-2.どこでもいいので右クリックして、「Create Node」で「Multiply」を選択する
3-3.同じように「Time」を選択する
3-4.「Property(元Slider)」から「Combine」に伸びている線をクリックし、右クリックで「Delete」を選んで消す
f:id:prince9:20181123164008p:plain
3-5.「Time」「Property」「Multiply」を下記のように接続する
f:id:prince9:20181123164306p:plain
3-6.「Multiply」と「Combine」を下記のように接続する
f:id:prince9:20181123164344p:plain
3-7.ShaderGraph画面左上の「Save Asset」を押して適用する

最終的に、
全体:
f:id:prince9:20181123164538p:plain
部分:
f:id:prince9:20181123164602p:plain
f:id:prince9:20181123164619p:plain
f:id:prince9:20181123164630p:plain

ShaderGraphで作ったシェーダを適用する

1.「RollMat」を選択し、「Shader」のところを「RollShaderGraph」にする
2.「RollMat」をオブジェクトにドラッグ&ドロップする
3.「RollMat」をクリックし、「Isnpector」の「Vector1」で回転速度を変える。0なら停止状態
※マシンスペックによっては、Sceneビューのみ回転していてGameビューは停止状態ということもあり。Playボタンを押せばちゃんと動くので問題はない
f:id:prince9:20181123165011p:plain

スクリプトでライトをコントロールする

こちらでも扱っていますが、たまに忘れるのでメモ代わりに。
prince9.hatenablog.com

注意点としては、スクリプトを直接ライトにつけると、プレイ時にエラーが出ます。
空のオブジェクトを作って、「public GameObject slight」などにしてライトをドラッグ&ドロップする必要があります。

準備

下記の3点を作ります。
・空のゲームオブジェクト(「GameObject」メニュー→「Create Empty」
・明るさをコントロールしたいライト
スクリプト(「Assets」を右クリックして、C# Script)

スクリプト

1.スクリプトを空のゲームオブジェクトにドラッグ&ドロップする
2.空のゲームオブジェクトをクリックし、Inspectorの「slight」にコントロールしたいライトをドラッグ&ドロップする

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LightScript : MonoBehaviour {

//以下2つ必須
public GameObject slight;
float LIntensity;

	// Use this for initialization
	void Start () {
		LIntensity = slight.GetComponent<Light>().intensity;
		
	}
	
	// Update is called once per frame
	void Update () {
		//ライトの明るさ
		LIntensity = 100f;
		slight.GetComponent<Light>().intensity = LIntensity;
		
	}
}