カメラスクリプトを作るときに見るWEBサイト
はじめに
この文書はカメラスクリプトを作るときに利用させていただいている、コマンドの説明とか書いてくれてるWEBサイトの覚書です。
カメラスクリプトの説明書
Scriptmapperプリセットコマンド
https://github.com/hibit-at/Scriptmapper#%E3%83%97%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E5%9F%BA%E6%9C%AC%E7%B7%A8
hibit-atさんのGitHubのページで、詳細な説明書を付けてくださっているので、カメラスクリプトを作るときに必ず見てます。
無駄にページビューをカウントしているのは私かもしれません。ごめんなさい☆
Scriptmapperアドバンスドコマンド
https://github.com/hibit-at/Scriptmapper/wiki/Advanced-Document
同じくhibit-atさんのGitHubのページで、プリセットコマンドでは説明しきれなかった拡張コマンドの説明があります。
私が良く使うのは回転コマンドの"rot"です!
イージング関数チートシート
https://easings.net/ja
こちらはhibit-atさんの説明書の中にもリンクがあります。
必ずといっていいほど開くページです。
カメラスクリプトに使うときは名前の"ease"を消して使います。
例えば"easeInSine"の場合は"InSine"だけカメラスクリプトに書きます。

JSONきれい ~JSON整形ツール~
https://tools.m-bsys.com/dev_tools/json-beautifier.php
こちらは必須ではありませんが、時々お世話になってるページです。
これ以外にも似たようなページはたくさんあるので、お気に入りのページで良いと思います。
カメラスクリプトに限らず"Beat Saber"の設定ファイルはJSON形式が多いのですが、時々修正に失敗して動かなくなったりしたときにJSONファイルを開いて確認したりします。
ただ、JSON形式は改行が必須ではないのでダダーと1行で繋がってたりします。
そういったファイルの中を見づらいときに、このページで綺麗に整形してもらって見やすくなったものを確認しています。
カメラスクリプトのエディター構築方法
リュナンさんの説明記事
https://note.com/rynan/n/n2830a21add26
こちらのページを見れば大丈夫!
カメラスクリプトを作るときの小ワザ
なにか役に立ちそうな小ワザがあれば書いておこうかなと思ったんだけど……。大したネタはなかった感じ💦
基本は"stop"
カメラを動かす範囲を決めたら、その開始と終了の位置に"stop"のブックマークを"New"ボタンで打ち込みます。
それから「開始点~終了点までの間」に移動して"change"で編集します。
終了点で編集してはダメですよ。そこは次のブックマークですから。

表示されてるブックマークに注意
ブックマークを編集するときに"Change"を使いますが、その時に編集されるのはテキストボックスの中(下スクショの青い枠)じゃなくて、すでに作られているブックマーク(下スクショの赤い枠)です。
ひとつ前の「基本は"stop"」でも書いてますが、ブックマークは「開始点~終了点までの間」が有効範囲です。
見間違って上書きして潰しちゃうことがよくあるので気を付けてくださいね。(何度も泣いてます)

"Movement Enable"は便利
"Movement Enable"をONにするとメイン画面がカメラ視点になり、OFFにするとカメラ視点の小さい画面が表示されます。
編集してると「あの角度、もっかい使いたい!」ってなることが良くありますが、その時は"Movement Enable"をONにして、コピーしたい場所に譜面を移動すると、右下のカメラ位置の情報が見えてる位置の値になるので、それをコピーすればOK!

エラーはログファイルを見る
思ったカメラ位置に動かない!
なんだかカメラ位置が変!
ログウィンドウが表示された!(エラーになっても出ないときもある)
といった時には、ログファイルを見てエラーの原因を探します。
ログファイルはマップのあるフォルダに"log_latest.txt"というファイル名で出力されています。
ログファイルは日本語で書いてくれてるので、(英語ダメな私には)とても分かりやすい!
エラー時のログのパターンとしては、明らかにエラーっぽい文章が書いてあるときと、ログが途中で終わってるときがあります。
よくあるパターンとしては、大文字小文字が間違ってる、カンマじゃなくてピリオド(ドット?)が掛かれてる、設定値が欠落して足りてない(X,Y,Z,RotX,RotY,RotZが足りてない)、コマンドやイージング関数の文字列が間違ってる、などがよくあるパターンですね。


回転は強い!かっこいい!(個人の意見です)
手でスクリプト作るときに一番難しいのは、やっぱり回転です。
だから回転が簡単に作れるのはとても嬉しい。
そしてなにより見栄えも良い!
ずっとグルグル回したい!(それはダメですがw)
イージング関数は第二のブックマーク
イージング関数の中には、最初や最後、またはその両方があまり動かないパターンがあります。(InOutQuintとか、InCircとか)
そういったパターンはブックマークしてるみたいにタイミングをずらすこともできるので、慣れるととても便利です。
表現も豊かになるので、イージング関数がハマるとかっこよく見えます!

カメラスクリプトを作ってて気づいたこと
マウスのホイールが効かないとき
デフォルト設定だと、マウスのホイールを回すと譜面が進んだり戻ったりするのですが、時々動かないときがあります。
そういう時は一度エディタ画面からメニュー画面に戻って、再度エディタを開くと動くようになります。(だいたいそれで治る)
"DEV"モードでも動きます!(2023/04/01更新)
"ChroMapper"は設定で"DEV"モード(開発者モード?)が使えますが、"ScriptMapper"は"DEV"モードでは動きません。
"Stable"モードで使ってください。
でも"DEV"モードじゃないと、アークやチェインのマップは作れません。
悩ましい~💦(2023/03/31時点)
修正が入って"DEV"モードでも動くようになりました!(≧▽≦)
リュナンさん、ありがとうございます!
これでアークやチェインのあるマップでも、カメラスクリプトを作ることができますね♪

"stop"は小文字
大文字で”STOP"とか頭だけ大文字で"Stop"はダメです。
他のスクリプトも大文字小文字を合わせておいた方が良いです。
でもイージング関数の名前は、いつもWEBページからコピペしてるから試してないです。
2種類作るときは注意
"ScriptMapper"では1つのマップに1つのスクリプトを作ってくれるツールなので、コラボなどで2種類カメラスクリプトが必要な時は注意が必要です。
Hardでカメラスクリプトを生成して、そのままExpertで生成すると作成したスクリプトは上書きされちゃいます。
でも作成したスクリプトの設定値は"ChroMapper"のブックマークとして、それぞれの難易度に保存されるので、もう一度生成すれば大丈夫です。
カメラの位置はみんな同じじゃない
コラボをして気づいたんですが、同じカメラスクリプトを使ってもカメラの位置は同じにならなかったり、同じでも見えてる大きさが違ってフレーム(画面の枠?)に入りきらなかったりします。
私が経験した違いはこんな感じかな。
・リアルの身長が違う
リアルで身長差があると上下にズレます。
なのでアップで撮影するとフレームに入りきらない可能性があります。
"Beat Saber"には身長設定があるのですが、どうやらそれは無視されるみたいです。
同じ身長設定でも下のスクショのようにズレます。

・キャリブレーションの仕方が違う(NalulunaAvatarsの場合?)
私は"NalulunaAvatars"しか使ってないので、これは"VMC"では起きない、または"NalulunaAvatars"と"VMC"の間で起きることかもしれないです。
"NalulunaAvatars"ではキャリブレーションの方法として「HEAD(頭)合わせ」と「HANDS(手)合わせ」があります。
これが違ってると奥行きがズレるみたいです。
あとがき
今のところ書けるのはこれくらいかな。
たくさんの人がカメラスクリプトを使ってカッコいい動画や配信を作って公開できるようになったら良いなと思ってますので、みんな頑張ってね♪