悪戦苦闘の末、電子コミック【ナナのかぼちゃパン】の最終ページがほぼ完成しました。
前回のブログで、アニメーションが止まってしまったと書きましたが、その後アニメが動いたけど音声が再生されなかったり、音声とアニメの動きがずれたあげくアニメが止まったりとかなり厳しいことになってしまい、制作を始めてから最大の危機的状況でした。
原因は、やはり音声・サウンドだと思います。
無声・無音で作っていたときは、Flashで作り込んだアニメを「Toolkit for CreateJS」でパブリッシュし、「iBooks Author」のページにHTMLウィジェットとして読み込むという手順で何ら問題ありませんでした。
HTMLウィジェットのサイズが4~5MBに達すると、iPadをタップしたときにHTMLウィジェットが起動しないという問題はありましたけど。(その時はページを分割して乗り切った)
ところが音声ファイルが揃って、アニメに音声を同期させ始めたら、iPadでプレビュー中にアニメが止まるという現象が出始めたんですよね。
問題点を整理すると以下の3つになります。
1. 音声とアニメの動きがずれる
2. ウィジェットを再生中にアニメの動きが止まり、音声はそのまま再生される
3. アニメは問題なく再生されるが、音声がまったく再生されない
2番目と3番目は、問題を解決すべくいろいろと試したところ、それぞれの動作結果だったという意味です。
1番目の「音声とアニメの動きがずれる」というのは、ある程度は覚悟してたんですけど、許容範囲を超えてめちゃくちゃ激しくずれてます。Flashのタイムラインのフレーム数とfpsから割り出したタイミングで音声を鳴らすというものだったんですけど、ここまでずれるとは思いませんでした。
やっぱり(第3世代)iPadのスペックでは追いつかなかったのかもしれません。先日売り出したiPad Airなら大丈夫かもしれませんが、旧世代のiPadでもちゃんと動作しないことにはダメですからね。
音と動きがずれるのは大問題ですが、さらに動きが止まってしまったのには参りました。
サウンドオブジェクトの問題なのか、それとも負荷がかかり過ぎたのか...
もう抜本的に見直さなければ先に進めないと思ったので、一番理想的なやり方を再度試してみました。
そもそもiBooks Authorで扱えるサウンド・フォーマットがAACオーディオ(m4a)だけなのが問題で、wavやmp3がOKならばFlashで読み込んでそのまま使えたのに...と愚痴ってもしょうがないけど。
理想的なやり方というのは、まずwav音声を使ってFlashでアニメを作りこみます。
次に、Toolkit for CreateJSでパブリッシュ。
書き出されたsoundsフォルダ内の音声ファイルをAACオーディオ(m4a)に差し替える、というやり方です。
もちろん書き出されたJSファイルも、m4aファイルが使えるように書き換えてあげる必要があります。
このやり方は、【ナナのかぼちゃパン】制作開始時に試してみたんですけど、その時はうまくいきませんでした。今回は再挑戦です。
その結果、Webブラウザでの動作チェックでは、音声が鳴りアニメも問題なく動作しました。ところがiBooks Authorに持っていってiPadでプレビューすると音がうんともすんとも鳴らないんですよ。Webブラウザでうまくいったときは『よっしゃ!』と思ったんですけどね。
どうしても音声が鳴らないので、苦し紛れに今までのやり方と合体させてみました。今までのやり方とは、音は鳴るけどずれるという問題があるやり方です。「iBooks Author制作日記8」で書いたやり方ですね。
ただし関数の実行は、Toolkit for CreateJSによって書き出されたJSファイルの、timeline functionsの中で実行します。そうすると音声再生のタイミングがアニメの動きとぴったり同期するので、ずれの問題も解決です。
iPadでプレビューしたところ音声もアニメも問題なく動作しました。
上の画像はラストシーンなんですが、ナナがこちらに走ってきてズームアップで静止します。そしてエンディング・サウンドの再生開始。
う~ん、苦労しただけにうれしいですね。
本来なら、Toolkit for CreateJSによって書き出されたplaySound関数で音を鳴らしたいところなんですけど、どうしても鳴らないので苦肉の策です。
はぁ~、良かった。次に進める。
制作がうまく進めばちょっとハッピー、だめだとがっくり落ち込むという繰り返しですね。
でもやっぱり好きだからやってるんですよ。
それでも頑張って乗り越えていくところがスゴイですね。
働き者ですね。
少しは見習わないと。