Blend4Web、3次元Webアプリケーションを作成するためのオープンプラットフォーム

以下は、私がMozilla Hacksのために書いたBlend4Webプラットフォームに関するレビュー記事の内容であり、変更と追加があります。



2014年3月、ロシアの開発者チームが、3次元Webアプリケーションを作成するためのオープンプラットフォームであるBlend4Webの最初の公開リリースを発表しました。 この記事では、プラットフォームの開発の歴史とそのアプリケーションの展望について説明します。



Blend4Webとは何ですか?



つまり、Blend4Webは、3次元のWebアプリケーションを作成するためのオープンプラットフォームです。 人気のあるオープンソース3DモデリングソフトウェアパッケージであるBlenderをコンテンツ作成のメインツールとして使用します。 3DグラフィックスはWebGLテクノロジーを使用して表示されますが、これもオープンスタンダードです。 これら2つのキーワード-BlenderとWeb(GL)-は、このプラットフォームの目的を最も完全に説明しています。



Blend4Webプラットフォームの完全なソースコードとその使用例は、 GitHub WebサイトでGPLv3ライセンスの下で公開されています (商用ライセンスも提供されています)。



3Dインターネット



Appleは6月2日に、SafariブラウザでのWebGLサポートを含む、新しいオペレーティングシステム(OS X YosemiteおよびiOS 8)を発表しました。 このイベントは、最初の不安定なブラウザ(Firefox 3.7のアルファ版など)で始まったWebGLテクノロジの5年の開発サイクルの終わりを告げました。 現在、すべての主要なデスクトップおよびモバイルブラウザーは、3Dグラフィックスを表示するためのこのオープンスタンダードをサポートしており、プラグインをインストールする必要はありません。



Blend4Web開発者がWebGLテクノロジーの開発を追うのは長く困難な方法でした。 壊れた機能、ぶら下がっているブラウザタブ、 一部の主要なプレーヤーからの技術の「不安定性」に関する警告、および公開ブラウザリリースでの技術のアクセス不能性は、特定のリスクの原因でした。 それにもかかわらず、ブラウザで3次元グラフィックス(およびサウンド)を再生する独自の機能には価値がありました。



ブレンダー



Blender 2.5xパッケージの最初のバージョンは2010年の夏に登場しました。その後、 短編映画Syntelの影響を受けて開発者は3Dモデリングの基礎を学び始めました。 Blenderは、オープンソースツールに基づいて完全に独立したワークフローを編成することを可能にしました(Linuxがオペレーティングシステムとして使用されました)。 その後、Blenderコミュニティの才能あるアーティストがBlend4Webチームに参加しました。



デモアプリケーションの例に関するBlend4Webの進化



Blend4Webに基づくデモアプリケーションは、プラットフォーム自体の成熟度を反映しています。 これらの最初のものはOstrovでした。これは、非常にシンプルなグラフィックスを備えたほとんど非対話型のアプリケーションです。 デモは2011年に登場し、公開リリース前に多少洗練されました。 すべてのリソースが個別の(ライブラリ)ファイルに保存され、シーンデザインとさらなるエクスポートで使用するためにメインファイルに接続されたBlenderベースのワークフローを実装した最初の製品です(このため、一部のBlend4Webユーザーは「無料Unity Pro」と呼びます) 。







ファッションショーでは、衣料品のアニメーション技術を紹介しました。 後処理効果、動的反射効果、およびパーティクルシステムが後で追加されました。 Blend4Webのパブリックリリースが行われた後、 レッスンの1つで衣服シミュレーション技術の概要が説明されました



「農場」は、特にブラウザアプリケーションの観点から見ると、巨大なシーンです。25ヘクタールを超えるエリアで、建物、動物、植生があります。 デモでは、一人称モードでの移動、オブジェクトとのやり取り、車両の運転など、いくつかのゲームモーメントを実装します。 アプリケーションには、定位置音源(Web Audioを使用)と物理サブシステム( BulletAsm.jsに基づく )が含まれます。 Freedesktopプロジェクトに関連する開発者はこのデモアプリケーションを使用してMesaのドライバーをデバッグしました。







Still Lifeアプリケーションは、プラットフォームの視覚化機能を実証しました。 このシーンでは、リアルさを増すために、慎重に準備されたテクスチャと素材、およびさまざまなグラフィック効果が使用されました。 ただし、それを作成するために使用されたテクノロジーはシンプルで、やや保守的なものでした。その当時は、シェーダーの視覚的な編集のためのツールが存在しなかったからです。







プラットフォームの開発における新しい時代は、Blenderパッケージのノードマテリアルのサポートの実装後にもたらされました。 したがって、Blend4Webチームのアーティストは、Sportcarモデル用に40以上の異なる素材を作成しました:クロム仕上げ、ラッカーを塗った金属、ガラス、タイヤ用ゴム、革のシートなど。



Blend4Webの最近リリースされたバージョンでは、アニメーションアクション機能がユーザーアクションに基づいて追加されました。 その結果、コードを記述せずに対話型アプリケーションを作成できます。 新しい機会を示すために、Mi-34ライト多目的ヘリコプターのインタラクティブな3次元インフォグラフィックが発表されました。







このシンプルで効果的なツール(NLAスクリプト開発者によって呼び出されます)には、インタラクティブな3次元Webデザイン、商品とサービスのプレゼンテーション、視覚トレーニング資料、ストーリーベースの漫画、ポイントアンドクリックゲーム、その他のアプリケーションなど、さまざまなアプリケーションがあります。以前は通常、Flashテクノロジーを使用して作成されていました。



仕組み



この技術を導入するためのしきい値は非常に低いです-次のビデオチュートリアルで説明されているように、Blenderプログラムにアドオンをダウンロードしてインストールするだけです。







このプラットフォームの優れた機能の1つは、3Dシーンを単一のHTMLファイルにエクスポートできることです。たとえば、メールで送信したり、自分のWebサイトやクラウドに投稿したりできます。 これは、ユーザーが1つまたは別のインターネットリソースを使用する必要がないため、Blend4Webと3Dコンテンツパブリッシングサービスを提供する多数のWebサービスの根本的な違いです。



複雑なインタラクティブ3D Webアプリケーションの開発者向けに、開発キット(SDK)が提供されています。 Application Programming Interface(API)のいくつかの注目すべき使用法は Web デザインからゲームまでのプログラミングレッスンで実証されています



プラットフォームを使用して3D Webアプリケーションをプログラミングすることは、平均的な「リッチ」インターネットアプリケーションを作成することほど難しくありません。 他のWebGLベースのフレームワークとは異なり、Blend4Webでは、グラフィックコンテンツ、アニメーション、およびサウンドの準備タスクは、対応する専門家によって実行されます。 プログラマーはシーンをロードする必要があります...



var m_data = require("data"); m_data.load("example.json", load_cb);
      
      





...そして、アーティストによって行われた変更が3Dシーンで行われるロジックを説明します。たとえば、クリックされたオブジェクトのアニメーションが再現されます。



 var m_scenes = require("scenes"); var m_anim = require("animation"); var myobj = m_scenes.pick_object(event.clientX, event.clientY); m_anim.apply_def(myobj); m_anim.play(myobj);
      
      





ご覧のとおり、APIはモジュール形式(CommonJSのスタイル)で構成されており、開発者によると、コンパクトで高速なWebアプリケーションを作成するために重要です。



見込み



インターネット技術(および一般的な情報技術)の開発がどの方向に進むかを予測することは困難ですが、ネットワークの3番目の次元はすでに強固な基盤を持っていると主張できます。 ユーザー数の増加により、インターネットの外観の考え方が変わることが予想されます。 同様に、Blend4Webチームは、Web開発者向けのツールを継続的に改善し、安定性と生産性を向上させ、新しいグラフィック効果のサポートを実装しています。



Blend4Web開発者は、 WebGL 2.0標準の開発にも関心を寄せています。これにより、Web上で3次元グラフィックスを表示する機能が劇的に向上します。



情報とサポート



Blend4Web開発者ブログでは、ニュースやトレーニング資料を定期的に公開していますこれらはVkontakteGoogle+でも読むことができますYouTubeチャンネルでは、デモアプリケーションのビデオバージョンとビデオチュートリアルを公開しています。 フォーラムで質問することができます。



All Articles