Aviutlにてリズムを合わせる時のBPMとFPSの関係について、メモ。


2024/4/17
追記:このnoteに書かれたことは間違ってる可能性が高いです。正確に知りたい方は以下の記事を参考にしてください。

あとこちらのツイート一覧も参考にしてください。

↓以下、元々書いてあった記事になります。一応残しておきます。




【説明】
BPMというのは
「60秒間に刻まれる拍の数」のこと。

FPSというのは
「1秒間に含まれるフレーム枚数」のこと。
(パラパラ漫画に例えると、1秒間にめくられるページの数、みたいなこと)

ここでちょっと計算をして
60÷BPM
をすると、
1拍を刻むのにかかる秒数
を求めることができる。
(BPM=120なら60÷120=0.5で、1拍を刻むのに0.5秒かかることが分かる)

120(拍)÷60(秒)をすると2(拍)。
これは「1秒間に刻まれる拍の数」を表している。つまり1秒で2拍刻まれる。
60(秒)÷120(拍)をすると0.5(秒)。
これは「1拍を刻むのにかかる時間」を表している。つまり0.5秒で1拍が刻まれる。

...という感じ。60というのは秒数のこと。

FPSは「1秒間のフレーム枚数」だから
例えば30fpsなら1秒間に30フレームがあることになる。

さっきの0.5秒を30フレームに掛けると
0.5×30=15
(これは「1拍刻むのにかかる秒数×1秒間のフレーム枚数=1拍に含まれるフレーム枚数」を表す式である)

つまり、BPMが120でFPSが30だと、1拍に含まれるフレーム枚数が15枚である...ということが分かる。


【原因】
映像を曲のリズムに合わせる為には、拍のリズムに合わせる必要があるが、例えばこれがピッタリ「1拍につき15枚」じゃなくて「1拍につき15.85729047...枚」とかだったりしたらどうなるか。

Aviutlのグリッドは、細かい小数点以下の数字に対して対応できないので、本当は15.85729047...だったとしても「めんどくさいから16にしちゃえ」と勝手に整数にされてしまう。

そうすると「1拍につき15.85729047...枚」の筈が「1拍につき16枚」になってしまうので、誤差が生じる。

そうなると、時間が経つにつれて徐々に映像と音声のズレが大きくなっていくので、映像と音声がうまく嚙み合わなくなってしまう。これが「映像と音声がリズムよく合わない」ことの原因。と思われる(実際は分からない)。


【解決策】
「60÷BPM×FPS=整数」になるように調整すればこの問題は解決できる。(1拍に含まれるフレーム枚数を整数にすればグリッド線とピッタリ合うから、リズム良くオブジェクトを配置することができる。ということ)
でもBPMは変えられないので、AviurlのFPSをうまいこと調整して合わせる。多分それで解決するはず。


[例]
BPM=154の場合。とりあえず30fpsにしてみると
60÷154×30=11.688311688311689....となる。

これを整数にしたいので、11.688...を比較的近い整数に置き換えてみる。11とか12とか。とりあえず今回は12に置き換えてみる。

fpsが不明なので
60÷154×?=12
これを解くと
0.38961038961×?=12
?=12÷0.38961038961
?=30.8

つまりfpsは「30.8」にすれば良い。
(ちなみに11にするとfpsが「28.2333333334」になる)

計算が面倒だけどやる価値はあるかもしれない。
自動で計算をしてくれるサイトもある。
https://toizubox.com/bpmfps/


【結論】
FPSとBPMには深い関係があるらしい。
何も考えずに30fpsとかにしてしまうとフレーム数の誤差が生じてしまうので、fpsには気を遣わなければならない。


【補足】
ちなみに拍とは何かというと

画像1

上の画像のように、リズムよく並べられた一個一個の音符(♪)のこと。
...だと私は思っている。
例えば曲に合わせてリズム良く手拍子をしたとすると、その手拍子ひとつひとつが「拍」となるのである。多分。

この記事が気に入ったらサポートをしてみませんか?