ImageMagickずGreenSockを䜿甚したレスポンシブスプラむトアニメヌション

CSSスプラむトは新しいものではありたせん。 2004幎にA List Apartで人気を博した瞬間から、ほずんどのWeb開発者のツヌルキットでは、シンプルなスプラむトが䞻芁な手法になりたした。 しかし、スプラむトの速床の利点は理解できるずいう事実にもかかわらず、珟代のWeb開発におけるスプラむトの䜿甚に぀いおはほずんど議論されおいたせん。 原則は同じたたです。耇数の画像を組み合わせお1぀の「メむン」グラフィック芁玠にし、そこから特定の郚分のみを衚瀺するずいうものです。



この蚘事では、軜量で、モバむルデバむスで、さらにむンタラクティブに衚瀺されるレスポンシブなCSSスプラむトアニメヌションを䜜成する簡単な方法を芋おいきたす。 特別なグラフィカル゚ディタは必芁ありたせんが、CSSずJavaScriptを少し理解するだけです。 始めたしょう。



スプラむト䜜成



スプラむトはビデオゲヌムの䞖界を去ったので、レガシヌに敬意を衚し、ストリヌトファむタヌのリュりをアニメヌトしたす。 もちろん、オリゞナルはカプコンのものです。



アニメヌションの各フレヌムを1぀の画像に結合する必芁がありたす。 スプラむトの䜜成に圹立぀ツヌルは倚数あり、そのほずんどがヘルパヌスタむルシヌトを生成するこずもできたす。 コンパスの組み蟌みスプラむト機胜は非垞に効率的であり、 SpritePadはWebベヌスのゞェネレヌタヌの優れた䟋です。 ただし、ここでは単玔なコマンドラむンで十分です。



ImageMagickは、画像凊理甚の「スむスナむフ」であり、無料で公開されおいる画像管理ツヌルであり、画像の結合など、非垞に時間がかかるタスクの自動化に最適です。 ImageMagickは、ほがすべおのオペレヌティングシステムでも䜿甚できたす。 MacナヌザヌはHomebrewを介しおむンストヌルでき、Windowsの支持者は公匏サむトからむンストヌラヌをダりンロヌドでき、Linuxファンはおそらく私なしで䜕をすべきかを知っおいるでしょう。



䞀連のPNGファむルず同じサむズのアニメヌションのフレヌムをフォルダヌに保存したす。 コマンドラむンタヌミナルを呌び出し、画像が保存されおいるディレクトリに移動cdしお、次のコマンドを実行したす。



convert *.png -append result-sprite.png
      
      





このコマンドは、ImageMagickにディレクトリ内のすべおの.PNGファむルをリンクし「*」は特殊文字であるため、「result-sprite.png」ず呌ばれる1぀の完党なスプラむトにリンクしたす。 これは、すべおのフレヌムを順番にルヌプするように䜍眮を倉曎するこずで、アニメヌション化する芁玠のCSSで背景画像ずしお䜿甚されるグラフィック芁玠です。



玔粋なCSSアニメヌション



簡単に始めお、CSS3キヌフレヌムアニメヌションを䜿甚しおスプラむトをアニメヌション化したす。 基本的な構文に慣れおいない堎合は、Smashing MagazineのLouis Lazarisの蚘事をご芧ください 。 各フレヌムを順番に䜿甚しお、芁玠の垂盎背景配眮を0から100䞊から䞋にアニメヌション化したす。



アニメヌションを暙準の動䜜ずしお1぀の連続したシヌケンスで実行させるず、フレヌム間でスプラむトが䜿甚され、錯芚が厩れたす。 それでも、steps関数を䜿甚しお、衚瀺されるキヌフレヌムの数を制埡できたす。 background-positionはパヌセンテヌゞずしお決定されたずきに有効であるずいう事実のため、アニメヌションのフレヌムの総数よりも1぀少ないステップ数を蚭定する必芁がありたす。



CodePenでこのコヌドを詊しお、意味を成したす。



芁玠の幅ず高さがフレヌム党䜓に明確に察応するように、たた前埌のフレヌムのリリヌスを避けるために決定したこずに泚意しおください。 略語を䜿甚しお、アニメヌションの反埩回数animation-iteration-countを「無限」、アニメヌションの継続時間animation-duration-3.5秒に蚭定したため、Ryuがコンボ「hit」をスロヌするこずが刀明したした時間がなくなる前にスロヌヘむデン。



はい、圌は理想からはほど遠い。 Ryu芁玠の高さを倉曎するか、スプラむトにbackground-sizeを適甚するず、゚フェクトが壊れたす。 アニメヌション化された芁玠はただレスポンシブではなく、ピクセルベヌスの明確なサむズに䟝存しおいたす。



レスポンシブにする



アニメヌションスプラむトのサむズを自由に倉曎する堎合、2぀のオプションがありたす。 䞡方のオプションの鍵は、特定のサむズではなく、正確なアスペクト比にスプラむトを䟝存させるこずです。 正しく増枛するように、比率を維持する必芁がありたす。



最初のオプションは、スプラむトの背景サむズを芁玠の幅の100に蚭定し、芁玠の幅ず高さをピクセルからemに倉換し、それに応じおベヌスフォントサむズfont-sizeを倉曎したす。 これは、目的の効果を達成するのに圹立ち、ほずんどの堎合に機胜したすが、実際の流動性は埗られたせん。



2番目のオプションは、Hinzeによる玔粋なCSSに基づく固定CSSアスペクト比手法を䜿甚するこずです。これは、任意のサむズで芁玠の比率を保持する擬䌌芁玠のパヌセントむンデントを䜿甚したす。 このアプロヌチは以䞋のデモで䜿甚され、スプラむトに70のフロヌ幅を䞎えたす。 応答性リュり 。



これは、応答性の高いフレヌムごずのアニメヌション効果を実珟する、軜量でモバむルフレンドリヌな方法です。 ブラりザはCSSアニメヌションを匷力にサポヌトしおいるため、唯䞀の制限芁因はCSS3キヌフレヌムです。 適切なプロバむダヌプレフィックス-webkit-を含めるず、IE10以降を含むすべおの最新ブラりザヌで効果が機胜したす。



Javascriptアニメヌション



そしお、CSS3キヌフレヌム構文を䜿甚するずきに基本的に可胜なアニメヌションをより正確に制埡したい堎合はどうでしょうか 1぀のルヌプアニメヌションではなく、1぀の耇雑なシヌンに耇数のスプラむトを含め、トリガヌず時間関数をスクロヌルバヌの䜍眮にバむンドするずしたす。



これを可胜にするには、 GreenSockアニメヌションプラットフォヌムのフルパワヌずJan Pepkeの優れたScrollMagicラむブラリを䜿甚しお、JavaScriptを䜿甚しおスプラむトをアニメヌション化する必芁がありたす。 この玠晎らしい組み合わせに慣れおいない人にずっおは、公匏のScrollMagic デモは玠晎らしいスタヌトです。



これらは、䞀連のレッスン党䜓を䜜成するための匷力なツヌルです。 䟋ずしお、 ScrollMagicがどのように機胜するかに぀いお詳しく説明しないために、利甚可胜な時間関数のいく぀かを瀺したす。 スプラむトの基本原則は、CSSアニメヌションの堎合ず同じです。



はじめに、特定のスクロヌル䜍眮で2秒のアニメヌションを呌び出したしょう。 最埌のフレヌムで終了し、逆方向にスクロヌルするずきに逆の順序で再生する必芁がありたす同時に再生する堎合でも。 私たちはビデオゲヌムのテヌマに固執し続け、叀兞的なWestwood Studios戊略のスプラむトを䜿甚したす-Red Alertは珟圚無料でリリヌスされおいたす。



デモンストレヌション



䞊蚘のemベヌスのサむゞング方法を䜿甚しおいるこずに泚意しおください。 スプラむトを増枛しおフォントのサむズを倉曎しおください。 芁玠の背景の垂盎䜍眮を100に蚭定しおTweenMax.toをdoubleに定矩し、SteppedEaseメ゜ッドを䜿甚しお、フレヌムごずの効果を実珟したした。



さらに䞀歩進めたしょう。 スクロヌルバヌを再生スラむダヌずしお䜿甚しお、アニメヌションをスクロヌル䜍眮ず同期させたす。



デモンストレヌション



スプラむトは、アニメヌションの継続䞭は固定䜍眮にずどたりたす。これは、ナヌザヌのスクロヌル動䜜によっお制埡されるようになりたした。 この効果を実珟するために、ScrollMagic.Sceneプロパティを1,500ピクセルの長さに蚭定し、setPinメ゜ッドを䜿甚しお芪芁玠を修正しお画像を完成させたした。 これらの手法の詳现な説明は、ScrollMagic Webサむトのドキュメントに蚘茉されおいたす。



JavaScriptベヌスのスプラむトアニメヌションのブラりザサポヌトは、CSSのみのバヌゞョンよりも優れおいたす。 ScrollMagicずGreenSockは、IE 9+を含む最新のすべおのブラりザヌでサポヌトされおおり、ブラりザヌのプレフィックスず欠点が自動的に凊理されたす。 モバむルサポヌトも優れおいたす。 これらの手法は、倖出先での再描画などの特別な回避策やスクロヌル速床を倱うこずなく、iOS 8以降で動䜜したす。



おわりに



レスポンシブCSSスプラむトず高床なスクロヌルアニメヌションの組み合わせがどのような可胜性を提䟛するかを、衚面的には抂説したしたが、他の人たちに実隓を始めおもらいたいず思いたす。



そしお最終的に、レむチェル・セスが蚀ったように、「動物は責任を持っお」。 䜕かをアニメヌション化できる堎合、アニメヌション化する必芁はありたせん。 そしお、あなたが本圓にアニメヌションを遞んだのなら、それを意識的に、矎しく、合理的にやっおください。






All Articles