++++パーティクルライブを作るのに必要な技術
++必須
unityでのアニメーション作成スキル
ワールド固定などいくらかのvrchat関連技術
++準必須
パーティクルの操作
++あれば尚良し
Shader技術
とりあえず、アニメーション作成さえできれば、素材をboothやunityのアセットストアで購入することで、それなりのものを作ることが出来ると思います。
アニメーション作成とパーティクル関連については、こちらのfleyさんの記事にまとめられていますので、こちらを読むことをオススメします。
パーティクルライブ・パリピ砲の基礎知識について - バーチャル思考実験室
この記事では、私が動画のライブを作成していて得られた知見やどうやって作ったのか、より具体的な話を中心に書いていこうと思います。
++++++ライブ作成前に気をつけた方がいいこと
++++命名規則やオブジェクト管理のルールを予め作っておく
全体把握をしやすくするため
++++同一オブジェクトはprefab化する
後で変更が必要になったとき、一括変更しやすくなります。
++++ヒエラルキー上のオブジェクトのフォルダ構成
音楽を任意のパートごとに分割して番号を振り、その名前のオブジェクトの下位にそのパートで開始するオブジェクトを配置するのがいいのではないかと思う。
千本桜のライブを作ったとき、歌詞メッシュ、その他のメッシュ、パーティクルの3種のフォルダに分けて、その中で、音楽をパートごとに分けて番号を振り分けたのだが、これをやると分類を超えて連携させるとき、やや面倒であった
++++素材は使う段階に近くなってから作る
例えば、曲の最後までライブを作るつもりだったが、気力が付きて1番だけ、となってしまう場合や作ってる内に予定していた演出を変更するなど
++++ライブ用のunityプロジェクトを作り、そこで作る。
++++使用する独自シェーダは一つのフォルダにまとめて、
shaderのパスを独自パスにする
++++出現させる方式はエモートスイッチを使う
アニメーションオーバーライドで出すと、手のボーンの動きに追従するようにする処理が入るため、自分から見た場合重くなる。エモートスイッチで出すとこの処理がないために軽い。
【VRChat】EmoteSwitch V3(エモートスイッチ)使ってみた!! | ケーキのPC情報集会所
++++素材を作る場合は汎用性の高いものの方がよい
光の玉だけのパーティクルやレーザーなど汎用性の高い素材の方が次のライブ作成時に使いやすくてよい。千本桜の場合、ハートの太陽の背景や富士山など、やや汎用性にかけるモデルを作成したが、あれは反省点である(デザイン能力がないので既にあるものを3D化しよう、というコンセプトのもとにライブを作成したのであるが)
++++++アニメーションの構成方式
一つのアニメーションで管理するか、一つのアニメーションから小分けにしたアニメーションをコールして作るか。
前者の方式はアニメーションを作成するにつれ、アニメーションが複雑化していき、見通しが悪くなる。
後者の場合、見通しは良くなるが、アニメーションからコールされたアニメーションはコール元のアニメーションのTimelineを動かしても作用しない、という問題がある。
++++アニメーションを作成していて、一瞬メッシュがちらついて見えたりする場合
ライブを作っていて、アニメーションを持つオブジェクトをアクティブ化したときメッシュが一瞬見えてしまう、みたいな問題に遭遇した。Shaderで非表示にして回避した。
アニメーションをアクティブ化した時、transformやScale値等が無視されて一瞬だけメッシュが表示されてしまうバグ、初期状態をMeshRendererオフにしたり、Scale値ゼロにしたり色々試したが、Shader側でclip(-1)か通常表示か分岐させるパラメタで初期状態オフ、2フレーム目で表示するようにしたら解決 pic.twitter.com/RmhnNCOeBE
— 光属性のアルモジナ(VRChat勢) (@arumogina) October 17, 2019
ちなみに2フレーム目ではなく、デフォルトの非表示にしておき、1フレーム目で見えるようにしても問題なかった。
(最初はアニメーションからアニメーションをコールする方式だから起きるものかと思っていたのだが、どうも違うっぽい。また新たにCube等を作成し、再現実験を行ったが、失敗したので常に起きるわけではないっぽい。)
++バックアップとしてgithubを使う
githubは共同作業でなければプライベートリポジトリを無制限に使える(多分)のでバックアップとバージョン管理を行うのによい。
詳細に書きたいところではあるが、正直面倒なのでTODOリストだけ出すので具体的なやり方はググってください。
githubにアカウントを作る(必須)
github desktopをDLする(なくてもいいが、非プログラマ的にはこちらの方が使いやすいだろう)
github desktopでFile=>New Repositoryでリポジトリを作成
そのリポジトリのフォルダを開いて、.gitignoreというファイルを作成し、( .gitignore 、. (ドット)を忘れずに)
Temp/
と書き込み保存。
そのリポジトリのフォルダの中にバックアップしたいunityプロジェクトを移動。これでgithub desktopにファイルの一覧が表示されるはず
適当なコメントを書いてCommit to Mastarを押す。
これでローカルに変更が確定した状態で保存される。
githubと連携していれば右側にpush to originというボタンが出るのでそれを押す。
前のバージョンに戻したかったりしたらやり方はググってください。