P5.jsは、有名なデスクトップクリエイティブコーディング環境処理の最新のJavaScript実装です。それは多くの電力と処理の使いやすさがかかり、それをあなたのブラウザに入れます。それはあなたがキャンバスを描くのを助けますが、あなたのWebページと統合するのに役立ち、あなたの「スケッチ」がDOMに応答して操作することを可能にします。
p5.js. アニメーションの頭痛をたくさん取り除きます データ可視化 Web上で、2つの簡単な機能を使用してアニメーションで起動して実行するのがスーパーシンプルになります。 セットアップ() そして ドロー() 。
しかし、あなた自身の関数を作成し、それを多くのコミュニティ作成されたライブラリの多くと共に拡張することで、この単純さが制限されていると仮定しないでください。
より多くのWebデザインツールとアドバイスについては、華麗なリストを参照してください。 ウェブホスティング プロバイダと必ず完璧を選択してください ウェブサイトビルダー そして クラウドストレージ 。
設計とアニメーションの「システム」の作成は、異なるデータをフィードできる規則、パラメータ、および変数範囲のセットを定義することを意味します。システムのパラメータと入力されたデータを入力する能力は、体系的なアプローチの一貫性を持つ無限の出力バリエーションを作成できます。
異なるデータは、完全に多様な視覚出力を作成することができ、急速な動きの大きいデータはオーディオです。それは私たちが私たちのアニメーションで使うつもりです。
データ駆動型アニメーションはデータの可視化ですか?はいといいえ。あなたのアニメーションは、ビジュアライゼーションのようにデータの視覚的表現になりますが、その目的は従来の視覚化のそれとは異なります。データの視覚化は、ビューアにデータへの洞察を与えるために使用されるため、グラフィックはデータの通信のサービスにあります。
ただし、興味深くテクスチャのグラフィカルなバリエーションを生成することを可能にするためのクリエイティブなシードとしてデータを使用します。したがって、データはグラフィックのサービスにあります。もちろん、1つの規律は相互接続されており、もう一方の規模で相互受粉されていますが、データを使用するときにあなた自身の意図を認識するのが良いです。
P5.JSは、サウンドファイルの分析から(MP3のように)、データへの迅速かつ簡単にアクセスできます。私たちは使うでしょう P5.FFT. オーディオ内で異なる周波数(ベースとトレブル)を分析し、その周波数の「エネルギー」または振幅を視覚化します。
それが再生されるようにサウンドの「形」を見ることができるようにするために、サウンドの現在の振幅を表示したいが、データポイントの「バッファ」をキャプチャしたいだけです。これにより、値の移動履歴を表示できます。
データポイントを表示するには、画面の中央から外縁まで一連の同心円状の円弧を作成します。円弧の長さはデータの振幅を表します。線量や色などのデータには、他のビジュアルエンコーディングも使用します。
コードを操作する、カバーします。
アニメーションのファイルはホストされています オープンプロセッシング 、他の人のスケッチを共有し、発見して発見するための素晴らしいプラットフォーム。あなたがコーディングするのは素晴らしい場所です。
オーディオデータを使用するように、スケッチにドラッグするにはMP3ファイルが必要です。 OpenProcessingで新しいスケッチを設定します。これはあなたのスケッチがオーディオをロードしたら、データを取得し、単純な「データ形状」を描画した方法です。
そしてこれが完成したスケッチがどのように見えるかです。
あるいは、あなたはそれを使うこともできます P5.JSオンライン編集者 それともあなた自身のプロジェクトにライブラリを含めるだけです ダウンロードまたはCDNを介して 。
無料のOpenProcessingアカウントを取得し、プロフィールページから[スケッチの作成]をクリックします。これにより、P5.jsの組み込み関数の2つを含む最も基本的なスケッチを作成します。
あなたはそれに気付くでしょう バックグラウンド() セットアップに1回呼び出されます。これにより画面がクリアされるので、フレームごとに画面をクリアしたい場合は、その開始時にこれを含めます。 ドロー() 関数も。
あなたが見つけることができるいくつかの例を使って、ここにいくつかのコードを使って遊びをしてください P5.JSサイトで 。
私のものに行きます 例スタータースケッチの例 。
Playボタンを押すと、キャンバスにMP3ファイルを削除するように求めるテキストがいくつか表示されます。アップロードを終了するために数秒待ってから、キャンバスをクリックして再生を開始します。あなたのマウスに従って、あなたのマウスに従って楕円が表示されます。これは、アップロードした音楽の中の低スケーリングと色の変化です。
コードの多くはコメントされていますが、いくつかの重要な要素を見てみましょう。
スケッチの始めに、前に セットアップ() 、グローバルな変数をいくつか作成しました。
以内に セットアップ() 私たちにはいくつかの重要な行があります。
colorMode(HSB,360,100,100);
カラーモード() rGBとHSBのようなさまざまな色のスペース内で動作するようにP5.JSを設定できます。また、チャンネルをナビゲートするために使用するスケールを設定できます。ここでは、デフォルト設定ではなくPhotoshopからより慣れている可能性がある値にHSB範囲を設定しました(0から255)。
canvas.drop(gotFile);
このスーパー有用なp5.js関数を使用すると、キャンバス上のファイルドロップイベントを聴くことができます。ファイルドロップイベントを受けると、電話をかけます gotfile() 正しいタイプであるかどうかを確認して、サウンドの分析を開始します。
soundFile = new p5.SoundFile(file.data);
ここで私たちはドロップされたファイルデータを SoundFile. 。サウンドファイルがある場合は、次のコードを使用します。
ヒント:データをスケール、速度、色などの視覚的なパラメータにマッピングするときに、データを0から1の範囲に変換するのは役に立ちます。
draw()関数を見てみましょう。この行は、低音周波数の現在の振幅(0から1の間)を要求し、それを変数に割り当てます mydataval 。
var myDataVal = getNewSoundDataValue(“bass”)
私たちは私たちの習慣を呼び出します getdatahsbcolor() データ値を別々に色相、彩度、明るさにマッピングし、カラーを返します。データが高いほど、色が色相スペクトルを横切って移動し、より明るく、色がより飽和します。
var myDataColor = getDataHSBColor(myDataVal);
私達が私達の楕円を描くことができる前に私達は私達のデータ値によって200(px)を乗算することによってそれにサイズを与える必要があります。それで、値が高いほど、楕円が大きくなります。
var myEllipseSize = 200 * myDataVal;
楽しい楽しみのために、コメントアウトしてください バックグラウンド() に電話をする ドロー() 機能とあなたはあなたのサウンドの反応性楕円を使って塗ることができます!
1つの周波数の1データ楕円を描画することは素晴らしいですが、今度はベースと高音の両方に一連のデータアークを作成します。また、サウンドの形状を見てもらうのを助けるために以前の値のバッファを描きます。
訪問 スケッチのこの完成バージョン それを実行してからMP3をドロップします。
画面の中央から出てくる一連の円弧が表示されます。水平円弧は低音の視覚化であり、垂直方向のものはMP3の高音を選ぶ。
コードを見て、データを最後のスケッチと同じであるため、セットアップ、ロード、分析、および取得の多くが表示されますので、無視できます。ここではかなりのコードがありますので、以前と同じように、いくつかのキーポイントを選びましょう。
アークを直接描画する代わりに ドロー() 、実際にカスタムクラスを作成しています。
各クラス定義には、いくつかのキー値を設定し、またクラスの動作を変更できるようにするパラメータを渡してコンストラクタがあります。今すぐ見てみましょう。
これは単一のデータ値を保持して対称アークを描画するクラスです。
setValue() そして getValue() ARCの内外でデータを取得し、データの更新としてアークの配列を介してデータをプッシュすることを可能にします。 redrawfromdata() ARCを再計算して再描画するために呼び出されます。
drawarc() Handy P5.js関数を呼び出すところです アーク() 。 アーク() 三角法を自分でするよりも速いですが、私たちは、アークの位置、サイズ、そして最確に、始点と終了角度のような数の値をそれに渡す必要があります。
その角度は「ラジアン」では程度ではなく測定されます。ラジアンは程度のようなものですが、異なるスケールで:360°は2 x PIラジアンと同じです。 P5.jsには有用な組み込み定数があります ピーピー 、 ハーフポイント そして QUARTER_PI 等
これは私たちの配列を作成する管理クラスです。 RadialArc {} クラスとそれぞれの出入りしてアークを呼び出すことで、それらを最新の状態に保ちます。 redrawfromdata() 関数。
初期化する RadialARCS() 高音と低音のためのクラス、見て セットアップ() 。あなたは私たちが2つを創造していることを見ることができます RadialARCS() インスタンスと私たちのカスタムパラメータを渡します。
これらのパラメータは次のとおりです。アークの数、内側および最も外側のアークのサイズ、開始角、最大ラインの重み、および色の色相範囲。これらのカスタムクラスを作成することで、コードを再利用することを可能にしますが、各インスタンスはこれらのパラメータを渡すことによって個別に個人を作成できます。
ARCオブジェクトが初期化されると、すべてのフレームが呼び出されます。 UpdaterAdialARCS() そして drawradialarcs() メインP5内 ドロー() 機能。アニメーションの更新と移動方法です。
私たちはここで多くのコードをカバーしましたが、基本的に私たちがデータを取っている方法を見ることができて、サイズ、位置、長さ、体重、色のような視覚的要素に適用してください。
さらに進むには、円弧、グループ、角度の数で遊びます。色の範囲を変更し、さまざまな形を描画するための新しいクラスを作成します。
この例では、絶えず流れるデータを使用し、高速フレームレートと組み合わせることで、アニメーションの錯覚を作成します。しかし、すべてのデータがそのようなものではなく、よりゆっくり更新できます。データが遅くなるには、それらの現在とそのターゲット寸法の間のシェイプのアニメーションを「Tweening」でスムーズなアニメーションを作成できます。
あなたの次のデータ駆動型アニメーションで頑張ってください!
この記事はもともと発行320に発行されました ネット Webデザイナーや開発者向けの世界で最も売れている雑誌。 問題320を購入する ここで ここで購読する 。
関連記事:
芸術に対比を使うことを学ぶことはあなたのプロジェクトとあなたが働く方法を変えるでしょう。芸術に取り組む私のお気に入りの側面は対�..
ChiaroScuro Artを作ることは、深さを生み出し、より重要なことに気分が生じるために、光と影の構成を使用することについてすべてです。この�..
Photoshopは、その部分の合計よりも大きい全体の完璧な例です。ツール、調整、フィルタのあふれ..
オイル塗料は、強くて面白い筆を達成するための理想的な媒体を提供します。アーティストのブラシストロークのスタイルは彼らの仕事を定�..