入力されたBPMに合わせてキーフレームを挿入するjsflコマンド「BPM2Keyframe」を作りました。Flashタイムライン上で音楽に合わせてアニメーションを作る際に、タイミングの目印を作ることができます。zipの中にjsfl本体とパラメータ入力用xmlが入ってますので、どちらもCommadsフォルダに入れてください。
jsfl? commands? という方は以下の記事の参照お願いします。
主な特徴は以下の通り。
- 入力パラメータ(時間[秒]・BPM)とflaファイルの設定fpsから自動計算
- 実行中の計算は小数精度
- レイヤーの長さが足りない場合はフレームを自動的に挿入
- マーク間隔ごとにフレームコメントを付けるすることでより見やすく
- マーク間隔は可変なので3拍子などにも対応可能
- Flashの音ずれに対応(後述)
BPMというのは音楽のテンポを表す尺度で、1分あたり何拍のビート(?)を刻むかを表します。大きいほど早いです。もともとのBPMは自動測定という訳にはいきませんが、作曲者さんに聞いてみるなり自力で測るなり。私の場合よくBPMカウンターを使ってます。
使用上の注意ですが、エラーチェックは結構適当です。パラメータに意地悪な小数値を入力したり大きすぎる値を入れると誤作動やフリーズの原因となりますのでご注意ください。 時間単位は秒です。また、動作させるときは空のレイヤー中の一フレームを選択することを想定しています。キーフレームのあるレイヤー上で動作させる場合、キーフレームが重なるとマークがずれる可能性があります。
最後に音ずれについて。Flashには、ストリーミング設定にした音声もオーサリング中とパブリッシュ後でタイミングがずれてしまうという問題があります。入力時に音ずれ補正を「あり」にするとFlash編集に、「なし」にするとパブリッシュ後に最適化されます。具体的には「あり」にすると720フレームにつき1フレーム間隔を詰めてます。720という数値は経験則なのでこだわる人は書き換えてください。Flashの音ズレについては以前まとめましたので、以下の記事をどうぞ。
ご指摘などお待ちしております。



ちょっとした提案。
ふと思ったのですが、
Flash作品のグラフィックがすばらしいので、
壁紙など製作なされてはいかがでしょうか。
僕はinfinaの最後をキャプチャして使ってます。
壁紙ですか。わざわざキャプチャまで・・どうもありがとうございます。
静止画と動画のデザインってまるっきり違うというのが勝手な持論なのですが、
イラレの練習がてら気が向いたらやるかもしれません。
あまり期待せずに待たれると吉だと思います。
ども、お久しぶりで御座います。
自分の作品は基本音とのタイミング重視でやることが多いので、音ズレには毎回悩まされておりまして。
参照先の音ズレの対処方法など、すっごい参考になりました。
いや、これ前にもこの対処方法探していたんですが、なかなか具体的なものが見つからなくて…結局トライ&エラーを繰り返してだましだまし調整かけていたんですが……。
いや助かりました。
このコマンドも今後有効活用させていただきます。
>機能美pさん
どうもこちらでははじめまして!
NMMで上げてる方みんなどうしてるのかなーと疑問だったのですが、やはりみなさん悩まれてるのですね。参考になれば幸いです。
特に機能美pさんのような長尺ものになると本当に深刻な問題ですよね・・。特性上、どれだけ調整してもシークされちゃうとずれちゃいますし。
コマンドも是非活かしてあげてください。また作品楽しみにしております。
はじめまして。
すごく記事が参考になりました。
音楽ゲームを作っていて、どうしても音ズレがおきて悩まされていました。タイミングを重視してるので、苦肉の策で1000フレーム毎に1フレーム追加したりして調整をしてたんです。
jsflコマンドを作ってくださっているとは!
とても助かります。もう、フル活用します。
ありがとうございます!
>アキラさん
どうもはじめまして。お役に立って何よりです。
確かに音楽ゲームとなると有効そうですね。
補正の間隔はほんと経験則で720に設定しましたので、シビアに調整する場合はコマンド内容をいじってみてください。