ログイン | アカウントの作成
CONTACT | HOME | BBS | Wiki | Blog | Tools |


wikiトップページ

最近更新されたページ
Bit演算比較
型の処理速度比較
Arrayの複製速度比較
PHP Linuxで実行する
flash / Adobe Air
Flash
new Date().getTime速度テスト
派生クラスのアクセス速度
複数のクラスをまたいだパラメーターへのアクセス速度
getter setter 速度比較
型比較の速度比較
Static変数の速度比較
サーバー構築 / CVSサーバー
サーバー構築
サーバー構築 / WebMin
XNA
Array多次元配列の速度比較
オペレーター(加算、減算、積、乗算、余り)の比較
Numberを整数に変換処理比較
flash / jsfl

paper2D

paper2D とは

Flash 3D ライブラリ Papervision3D を利用して ボーンデフォーマー と アニメーション管理機能を備えた2D用 アニメーションライブラリです。

DEMO

wiki/paper2D/XSIBone.jpg
DEMO1【詳細】
XSI ボーンデフォーマー
によるアニメーションです。
wiki/paper2D/Box2D.jpg
DEMO2【詳細】
BOX2Dとpaper2Dを組み合わせた
ラグドール (Ragdoll ) 物理演算です。
wiki/paper2D/demo3/FlashMeshAnim.jpg
DEMO3【詳細】
Flash シェイプアニメーションを
ゆらゆらさせるデモです。

フォーラム

Belcro.net - Flash メッシュアニメーションライブラリ paper2D
質問、気づいたことなどは↑の板に書き込んでください。

作成した理由

1つめの理由が Flashではムービークリップやシェイプだけでは棒がしなるような表現が難しい。2つめに papervision3D でのボーンを使用する場合 DAEかCollada になると思うのですが。私が開発している環境XSIではすんなり表示された事がないので作成しようと思いました。 なのでゆくゆくは3D版も作成しようと思っています。(既にあるようですがExporterも作ります・・・)

Labs

ドキュメンテーション

サンプルコード


//マテリアルを作成
var mat:WireframeMaterial = new WireframeMaterial(0xCCCCCC,1);

//paper2D用 モデルデータ
var model_xml:XML = "<xml>モデルデータXML</xml>";

//モデルを作成
var model:SkinModel = new SkinModel(mat, model_xml , 50);
this.scene.addChild(model);

//paper2D用 モーションデータ
var motion_xml:XML = "<xml>モーションデータXML</xml>";

//モデルにモーションをセット
model.motion["test_motion"] = new Motion(motion_xml);
model.setMotion("test_motion");

//以下はENTER_FRAME などで毎フレーム呼び出す
{
    //モーションを再生させます ( 1F 進む )
    model.motionStep();

    //ボーンのトランスフォームから頂点の位置を計算します
    model.updateSkin();
}

モデルデータXML

  • vertexes - 頂点ノード
    • item - 頂点インデックス、位置情報
  • faces - 面情報
    • vertexes - この面の頂点への参照
      • item - 頂点への参照、UV情報
  • skeleton - 骨ノード
    • bone - 骨の位置情報
      • item - この骨が影響する頂点のウェイト情報

<data>
	<vertexes>
		<item index="0" x="-1" y="0" z="0" />
		<item index="1" x="0" y="1" z="0" />
		<item index="2" x="1" y="0" z="0" />
	</vertexes>
	<faces>
		<vertexes>
			<item index="0" u="0" v="1" />
			<item index="1" u="0" v="0.5" />
			<item index="2" u="1" v="0.5" />
		</vertexes>
	</faces>
	<skeleton>
		<bone x="0" y="0" z="0" >
			<item vertex="0" weight="100" />
			<item vertex="1" weight="100" />
			<item vertex="2" weight="100" />
		</bone>
	</skeleton>
</data>

モーションデータXML

  • frame_max - フレームの総数
  • bone - 骨リスト
    • anim - アニメーションのフレーム毎の値 カンマ区切りの文字列
    • kine - 変換の種類

<data>
	<frame_max>100</frame_max>
	<bone index="0">
		<anim kine="posx">0,1,2</anim>
		<anim kine="posy">0,2,4</anim>
		<anim kine="posz">0,0,0</anim>
		<anim kine="rotx">0,0,0</anim>
		<anim kine="roty">0,0,0</anim>
		<anim kine="rotz">2,1,0</anim>
	</bone>
<data>

ソース ダウンロード

version 0.9

  • wiki/paper2D/paper2d_0.9.zip
    • 対応している papervision のバージョン
      • Papervision3D_2.0.869
    • 適応できるトランスフォームは 【位置】【回転】のみです。このバージョンでは 【スケール】には対応していません。
    • 2Dなので Z 軸には対応していません。
    • 回転は rotZ が Flash 上の rotation に割り当てられます。




CgInstitute のホーム   -    コンタクト   -    CgInstitute について   -    アカウントの作成