Adobe Animateで絵を動かす

アートとクラフト

昨年、仕事でアニメーション作成の機会があり、Adobe Animate(以前はFlashという名で知られていた)というアプリに興味を惹かれたが、時間的制約から同社のAfter Effects(略:AE)を使用して必要な作業を行った。

 その後、このアプリを使ってできることをいろいろ知ると、これが2000年代初期にネット界隈で1大ブームを巻き起こしたかつてのFlashだったと知り、今後はどうなるか分からないけど面白そうだから使えるようになりたいと思うように。最近、サイエンスSARUというアニメーション制作会社が劇場用作品やTVアニメをAnimateで作っていることも知った。すごい!

 なにしろわからないことを解決しようと思っても参照できるデータや例が少なくて、インターネット検索でも日本語ではほとんど役に立つ例を見つけられなかった。多少の助けになったのはAdobe公式のチュートリアルだったけど、これも古いバージョンでの操作が混在していたり、全体的に僕には理解しにくい内容に思えて正直それほど助けになったとも言えなかった。数々の失敗や躓きを経て、このアプリを使って実験しながら3つの短いループアニメーションが出来たので、かなり特殊なこのアプリについて少し書いておこうと思う。後々自分でも読み返すかもしれない。マジで難しいんだよコレ…Flash使ってた人しか使ってないのかもしれない。

 ※僕自身、まだまだこのアプリについては勉強中で、わからないことや理解できていないことが多いです。もしも記事中に間違いや誤解を招く部分がある場合、ページ下部にあるコメント欄で気軽にやさしく教えてください!

 前半でAnimateというアプリについて覚書。検索で来た人にも参考になるといいなぁ。後半は今回作った3本の短いアニメーションについて。

Animateって何ができるんだ?

 これを読む人の中にはAnimateの初心者だったり何かの問題を解決するために検索した人も含まれていると思うから、僕がゼロからAdobe Animateを使い始めて失敗を重ねながらなんとか短いアニメーションを3本つくるまでに躓いたポイントや覚えておきたいことを書きます。

 Animateというアプリケーションソフトでは、アニメーションをつくることができる。アプリ上で直接絵を描いてそれに動きを付けていくこともできるし、用意した画像に動きを付けてアニメーション化することもできる。僕は今回、既にある自作のドローイングを元にパーツを用意して動かすためにこのアプリを使用するので、直接描画してアニメーションする方法については触れません。

プラットフォームタイプがふたつあるぞ…

 アプリを立ち上げてファイルを新規作成するとき、まずカンバスサイズを入力して、フレームレートを決めるところまでは何も困らない。しかし、その下にプルダウンリストで“プラットフォームタイプ”を『ActionScript3.0』『HTML5 canvas』のどちらかに設定する必要がある。

 『ActionScript3.0』っていうのはFlashで使われていたスクリプトだということを知ってる程度。これを選択すると結果として出力は動画ファイルかアニメーションGIFになる。『HTML5 canvas』の方はHTML+JavaScriptで動きを再現する。この場合は動画ファイルやアニメーションGIF以外に画像とスクリプトとHTMLをそれぞれ書き出すことができるからサーバ上にアップロードして呼び出す形も可能だ。

 違いはそれだけじゃない。後で書くけれど、プラットフォームタイプの選択でその後の作業のやり方が変わるから、最終的に何を書き出すかをはっきり決めてから選択をしなければいけない。これはとても重要だ。

シンボルとインスタンス?

 さて、実際にアプリ上でアニメーションを作っていく上で、素材となる画像を読み込ませる必要がある。僕の場合は元になる絵をPhotoShopというアプリでパーツごとに切り分けてレイヤーに振り分けておいたものを使用する。しかしこれをAnimateに読み込むだけでは作業が進まない。読み込ませた後に、アニメーションをつけるための下ごしらえをする必要がある。分解したりレイヤーに配分したり、ボーンツールでアーマチュアを設定したりと、下ごしらえの手間は多い。

 この下ごしらえをする前に理解しておくべきことがある。“シンボル”と“インスタンス”という概念だ。詳しくは割愛するが、以下のリンク先をよく読めば理解の助けになるはず。

Adobe Animateマニュアルより「Animate でのシンボルインスタンスの操作および作成

シンボル

 ライブラリに格納されているグラフィックなどのオブジェクトを指す。

インスタンス

 ステージ上でシンボルを参照しているエイリアス。


 “シンボル”には3つの種類がある。ムービークリップ、グラフィック、ボタンだ。この記事ではグラフィックとムービークリップについて書いておきます。

ムービークリップシンボル? グラフィックシンボル?

 前述のとおり、シンボルには3種類あり、アニメーションで使うのは主に“ムービークリップシンボル”と“グラフィックシンボル”の2つになる。両者にはちょっと理解しにくいけれど明確な違いがあるので備忘録として簡単な説明と参照用のリンクを載せておく。

Adobe Animateラーニングより「シンボルのタイプ

ムービークリップシンボル

 メインのタイムラインのほかにもう一つの固有タイムラインを持てる。使用例として虫の羽ばたきや航空機のプロペラなど、オブジェクト全体の動きに影響を受けず常に動き続ける部分への用途が想像しやすい。ActionScriptによるエフェクトの適用などにも制限がない。

※注意
 ムービークリップシンボルの固有タイムラインはメインタイムライン上をスクラブしてもプレビューできない。

グラフィックシンボル

 こちらも子タイムラインを持つことができるが、メインタイムラインと連動する。エフェクトの適用は制限される。

トゥイーン?

 動きをつけるフレームの間を自動的にアニメーションさせる効果をトゥイーン(tween)と呼んでいる。これはビトゥイーン(between)を語源としているようで、フレームの間という意味合いの造語。トゥイーンにはいくつかの種類があるんだけど、この違いがまたなんというかややこしい…。詳しい違いについては下記のリンク先を参照。

Adobe Animateマニュアルより「モーショントゥイーンとクラシックトゥイーン

クラシックトゥイーン

 Flash時代から引き継がれているトゥイーンのスタイル。後述の理由もあって現在でも利用する機会が多い。

モーショントゥイーン

 直観的操作でアニメーション効果を付与できる新しいトゥイーンのスタイル。しかし、誤動作やバグと思われる挙動が多く、不安定な部分が目立つのでクラシックトゥイーンを利用する頻度のほうが高くなる。安定してほしい…。

シェイプトゥイーン

 シェイプの形状変化をアニメーション化できる。

動きを付けるにも複数の方法が…

 実際作業してるとわけがわからなくなったりしてマジでめんどくさいんですが、一つの結果を得るための方法が複数あるのはとてもいいことだと思っています。下に挙げる例は選んだ環境によってできることが変わる例として挙げましたが、アプリを習熟していけばもっといろいろなことが見えてくると思う。

パーツ同士をペアレンティングして動かす

 パーツごとにシンボル化して、基準点を回転軸として扱う。これを親子関係で結んでいくことでボーンツールによるアーマチュアと同じような状態にできる。これの利点は、重なり合うパーツの扱いが容易なこと。ちょっと面倒なのは、個人的には大問題なんだけどプラットフォームタイプをActionScript3.0にしていないとペアレンティングが使用できないこと。

パーツ同士をボーンツールで繋いで動かす

 ボーンツールを使用して、パーツ同士を繋げてアーマチュアという塊として使う。パペットのようなもの。ボーンの設定時や動きを付けるときに重なりあっているパーツの扱いが煩わしい。しかし、関節部の可動範囲を限定出来たり関節固定のON/OFF切替が出来たりして便利。HTML5canvasで複数パーツで構成されるキャラクターを動かすにはこれが必須になると思う。しかし、なぜかアーマチュアのズレが頻繁に起こる

最初にちゃんと全体を決めてから作る必要がある

 まぁ当然のことなんですが、作り始める前にコンテなどで全体の流れや動きの設計をしておくか、せめてイメージスケッチ的に要所を押さえておく必要がある。というか、アプリを習熟するまではそうしたほうがいいと感じた。自分の手に合った手順が確立できればあとは思いつくまま気ままに作り始めるのも楽しいはず!

 今回僕が作った短い3本のアニメーションは、ひとつの原画を元に、無謀にもいきなり思いつくまま1本目を作ってみて、そこで気づいたことを調べて解決したり試しながら2本目、3本目と作っていった。1本につきそれぞれ2日以内で仕上げることを制約とした。正直、かなりストレス溜まったし難しくてしんどかったけど、絵が動き始めると楽しさとワクワク感がすごく大きくて、今はまたすぐに次のアニメーションを作りたい


3つの短いアニメは3つのやり方で

 それぞれポートフォリオサイト(hiderino.jp)に個別の作品ページがあるんだけど、ここではtwitterにUPしてある動画を埋め込み掲載します。原画は『I can fly!』というタイトルで、鶏頭の黒スーツのキャラクターが飛翔する一瞬を描いたドローイング。I can fly!』作品ページ

1本目

 最初の一本。

 PhotoShopで原画を切り抜き、パーツごとに切り分けレイヤーに振り分ける。関節の重なり部分は動かしたときに破綻の無いように必要な部分へPhotoShop上で加筆。

 PhotoShopで作成したPSDファイルを、HTML5canvasとして作成したAnimate(flaファイル)上のライブラリに“単一Animateレイヤー”として読み込み、いくつかのチュートリアルを参照しながら動きを付けていった。

 このとき、メインのタイムラインとムービークリップシンボルの固有タイムラインがどういう扱いなのかを曖昧にしか理解できていなかったので、キャラクターが跳ねるような動きの軌跡をメインタイムラインでモーショントゥイーンにて設定。キャラクター自体の細かい動きはメインタイムラインのフレームと連動するように調整しながら固有タイムラインで設定した。正直、すごくやりにくかった。

 キャラクターの各パーツはシンボル化されているが、ペアレンティングは形式の制限でできないしアーマチュアは設定しなかった。パーツ分割は7パーツと最小限にとどめていたのでさほど不自由は感じなかった。

※切り抜いたパーツの周辺に消し忘れ部分が残っていると画像のように無駄な余白が目立ってしまいます。

スプライト画像というのはこういうやつです
スプライト画像の例

 最終的に出力したのはHTML5canvas(スプライト画像、JavaScript、HTML)とmp4形式動画ファイル(H264)、アニメーションGIFの3形式。画質は当然HTML5の圧勝だが基本的にリンクを参照させる形となってしまうのと、閲覧端末の処理能力を考える必要がある。扱いやすさはmp4だがループしない、アニメーションGIFは無限ループ再生可能だがファイルサイズを小さくすることを念頭に置く必要アリ。ファイルサイズに関して、今回の作品は白背景にモノクロ画像が動いているので色情報は少ないけれどペン画ゆえにディテールの情報が多いので元のファイルサイズはそれほど小さくない。HTML5で参照するPNGスプライト画像は4095pix角で2.50MBほど。アニメーションGIFは出力後にファイルサイズ軽減処理を加えて最終的なファイルサイズは405×720pixで724kBにまで削減出来た。画質はお察しください。

 HTML5canvasを選択したのは、ウェブサイトに作品として掲載する際に読み込み容量が少なくて原画のボールペンのタッチを生かして見せたいと考えたから。

 シンプルにスローな動きで原画のイメージをアニメーション化した狙いはバッチリはまったと思う。

2本目

 一本目が完成して出てきた改善点やアプリの操作で掘り下げたり試したいことを実践するために2本目を作った。

 キャラクター素材は基本的に1本目と同じだが余白部のカスは除去した。(実は取りきれてない)見た目的には背景を置いたことが目立つが、実はプラットフォームタイプをActionScript3.0で製作したのが一番の違い。この選択によりオブジェクトのペアレンティングが可能になったが、HTML5canvasへの変換時にペアレンティングされているオブジェクト群の位置情報が正常に置き換えられず、実質HTML5canvasでの書き出しは不可能になった。最終的に書き出したのは1280pix角でmp4(H264)形式の動画ファイルが5.75MB、同サイズのアニメーションGIFはメディアエンコーダからの書き出し時点で20.9MBとなったためファイルサイズ軽減処理を加えて6.33MBの仕上がり。

 キャラクターは各パーツをシンボル化して基準点を回転軸として扱いペアレンティングで疑似的にアーマチュアのように操作した。画面内に同じキャラクターが5回登場するが、それぞれ違う動きを付けている。

 画面内にハトがいるんですが、フォーカスがあっていない背景部分、街燈、ハトの3オブジェクトはきっちり切り分けてあって、よく見ると鶏頭キャラクターは街燈とハトの間の空間を横切っているのがわかります。また、ハトは一枚のビットマップ画像にボーンツールで動きを付けています。

3本目

3本目はHTML5canvasとして製作。ボーンツールによるアーマチュアで動きを付けることを目標にした。鶏頭キャラクターは12パーツに切り分け直している。

 キャラクターに関する目標のほかに背景部分でも目標を設定した。オブジェクト間の奥行深度を適切に設定して仮想カメラによって全体に動きを付けること。

 画面全体の動きとキャラクターの動きを連動させてしかもループするように組み立てていくのが楽しかったが、パースのきいたポーズの原画から可動部を決めてパーツに切り出したため違和感なく動かす範囲には制約ができた。動きの付け方はあまりリアリティにより過ぎず、操り人形的なぎこちなさとミニチュアや玩具を連想させるコミカルな動きを目指した。これは割とうまくいったんじゃないかと思っている。仕上がりとして、羽ばたきの動きが今一つ納得いくものにならなかったのが残念。フレーム(ポーズ)の状態をうまくコピペすることができず、ループのつながりに違和感が残ってしまった。(今気づいたけど最終フレームと最初のフレームで一つのパーツの向きが違ってしまっている…)

 最終的な書き出しはHTML5canvas(イメージ計10.1MB+JavaScript+HTML)と、1280pix角mp4(H264)形式の動画ファイルが6.23MB、同サイズのアニメーションGIFはメディアエンコーダ書き出し時点で68.6MBと巨大になってしまったので軽減処理を加えたが40.3MBまでしかファイルサイズが軽減できなかったのでサイズを640pix角に縮小して最終的に9.64MBまで軽減した。

※2020年8月12日追記
 この3本目をポートフォリオサイトにHTML5canvasを埋め込む形で表示するためにサイズの縮小作業をしていたのですが、いくつかの不具合がどうしても回避できず、最終的に掲載できたものはこの記事に載せているものと少々カメラワークが異なってしまいました。

すぐに次を作りたい

 このまとめ的な記事を書くのに2日以上かけてしまったので、今は一刻も早く次のアニメーション製作に着手して、アプリの習熟度を上げていきたい。そして思い描いたものをできるだけ遜色なく作品に落とし込めるようになりたいです。そのためにはアプリをボールペンや鉛筆と同じくらい手に馴染ませなければいけないのです。がんばるぞ!

※2020年8月25日 編集

タイトルとURLをコピーしました