(※青は 2013/10/03の主な追記事項) Live2Dを他社のシステム(ゲームエンジン等)と連携させる上で、最初に確認しておくべきポイントについて記載します。 Unity、cocos2d-x についてはSDKが対応しておりますので、ここではそれ以外の環境との連携についてまとめております。また、Live2Dをプラットフォーム毎の標準的なプログラム環境で利用する場合もこのページの情報は必要有りません。 以下の操作、描画を他のシステムの間に含めることが可能であれば、連携が実現できる可能性は高くなります。 Live2Dの初期化と開放 Live2D::init( )によりLive2Dを初期化ます。Live2D::dispose()により使用しているメモリを開放し、ライブラリをアンロードできる状態にします。(通常のゲームではライブラリを途中でアンロードする必要は発生しません) メモリ管理 Live2Dで使用するメモリ(CPU、GPU)の確保を行うためのアロケータを外部で定義していただき、Live2D初期化時(Live2D::init())に登録します。Live2Dのメモリマネージャから必要に応じて4K以上のブロックでのメモリの要求が発生します。 モデル・テクスチャのロードと初期化 Live2Dは描画のみの機能を提供するため、Live2D内でリソースの管理は行わず、外部のコードまたはゲームエンジン側でリソース管理を行う前提で設計されております。
アクション・モーションの開始等 クリックなどのイベント等に応じてLive2D用のアニメーション、表情変化等の命令を呼び出します。Live2D内の処理はスレッドセーフになっていないため、同時に複数のスレッドからモデルデータの更新、描画等が行われないようにする必要があります。 フレーム毎のモデルの更新と描画 フレーム毎に上記で初期化頂いた各モデルに対して以下の命令を行います。
描画の詳細 通常の3Dで行われるデプスバッファを用いた描画と異なり、Live2Dでは平面のポリゴン(半透明部分を含むテクスチャ)を、背面から順番に重ねてブレンド描画して表現しております。(Photoshopのレイヤー表現を3D上で行うようなイメージです) 具体的な描画設定・内容は
各種描画命令はOpenGL等、プラットフォームごとの3D命令の途中で Live2Dモデルのdraw()を呼び出すことで行います。描画命令はLive2Dのライブラリの中で隠蔽されて呼び出されます。描画部のソースコードは開示されておりませんが、特別な契約により描画部のコードを提供することも可能です。詳しくはサポートにお問い合わせ下さい。 ・・・ 描画時の対象が3Dと同じスクリーンに直接描画する場合と、Live2D用のオフスクリーンバッファに一度描画してからスクリーンに描画する場合で処理が多少異なります。Live2Dのキャラクターを半透明の状態にしたい場合は、2のオフスクリーン方式を取る必要があります。 1.スクリーンにLive2Dを直接描画する場合
2.オフスクリーンにLive2Dを描画する方式
|
Cubism SDK > はじめに >