歌うゴースト

これもメモ。最近メモばっかりで実装に手がつけられない…

  • 自力で音を生成する
    • ミクみたいなモジュールフリーであったら面白いけど
    • いまのところ、喋るのが限界、歌うのはかなり無理
  • 音に合わせて動く
    • 歌詞があればおk
    • 現状、外部アプリが歌詞ファイルをDSSTPに変換して叩き込むしかないわけで
    • ゴースト自身がMP3プレイヤーなら、自力で歌詞ファイル読んでそのとおり動けば
    • 数十msの遅れが発生するような仕様だと音楽に合わせて踊るのは厳しいか
  • 歌詞ファイルの統一性
    • 要するに外部ファイルのシナリオに沿ってゴーストを動かすための規格
    • という意味では「DSSTPファイル」と変わんない
    • 歌詞だけでなく汎用として使える拡張性
  • 歌詞ファイルなしで音に合わせて動く
    • 曲のBPMやビートタイミング、特徴点抽出のアルゴリズムが必要
    • オープンで研究されてるものもありそう、ソースもあるかも
    • でもやっぱり、再生タイミングとゴースト操作タイミングの同期ズレが課題になるか
    • 人間は音のずれには敏感、50ms以下には抑えたい(20fpsは人間は感知可能)
  • 同期タイミング操作
    • 再生時間に対して動作を指示する方式なら原理的には本体内部のディレイのみ
    • でも本体に特殊モードと特殊ロジックが要るよね
    • スクリプトの再生のタイミング取り(ウェイトタグとか)は結構精密だった(はず)
    • あった。少なくともSSPは精密にいけそう http://bottle.mikage.to/memo/200308.html
    • だから、後は、曲の再生時間と、スクリプトの再生時間のズレを検知して直す方法があれば
    • 既存の仕様の範囲内でも出来なくはない・・・か?でも恐ろしく面倒で難しそう
  • たとえばこんなタグがあったとしたら可能か
    • \![sound,playscriptsync,hoge.mp3]ほげほげ\_w[90]へもへも\__w[3297]ぴょん
    • playscriptsync が指定されると、以降に続くさくらスクリプトは、音声再生開始の瞬間=スクリプトの0秒として再生される
    • 以降、普通であれば実時間とシンクロして再生されるさくらスクリプトは、音声ファイルの再生時間とシンクロされる
    • よって、\__w[] のタグの意味も「その音声ファイルの指定した再生時刻になるまで停止」となる
    • その音声ファイルの再生停止と同時に解除
    • スクリプトが割り込まれたりしても解除