Papervision3D

Papervision3Dでメタセコイアのmqoファイルを表示する

出来るらしいというのは知ってましたが、やったことなかったのでやってみました。

<<-- MqoSample.swf -->>

この表示されてる戦闘機は、DOGA-L1で作ったモノ。

それをMetasequoia LEで読み込み、mqoファイルを作成。

このあたりの作業方法は、んぱかさんとこを参照のこと。

4

Macユーザーの僕は、VMWare Fusionでこの一連の作業を行いましたが、仮想マシンの3Dアクセラレーションがなくても特に問題ありませんでした。

mqoファイルの読み込みには、Metasequoiaクラスを使用。

現在は、Papervision3D 1.7を中心に使用しているので、1.7用のファイルをダウンロードして使用。

1.7用のファイルは、クラス名がMetasequoiaとなっていて使い勝手が悪かったので、Metasequoia_1_7に変更して使用。

MqoSample.as

| | コメント (2) | トラックバック (0)

Papervision3DとTweenerの組み合わせでの立方体の回転

Papervision3DとTweenerの組み合わせで、立方体を回転させるサンプルを作ってみました。

addとdecで動きの選択。

適当な場所をマウスクリックで、立方体の回転。中心点から遠ければ遠いほど速く動きます。

まぁなかなか、かっこよく動いてよいんじゃないかと。


Pv3dTweener.as


TextButton.as

| | コメント (0) | トラックバック (0)

Papervision3DでColladaファイルを表示する

2_13

今更なんだけど、Colladaファイルの読み込みを試してみました。

まぁ、普通にできるなと。

Gun.daeは、ここから借用。

マウスホイールで、カメラが前後するようになってます。

コンパイルオプションは、

-default-size 240 240 -default-frame-rate=30


ColladaView.as

| | コメント (3) | トラックバック (0)

Papervision3D public beta版では、BitmapMaterialの挙動が変わった

Papervision3Dがpublic betaになったとのこと。

新しいバージョンになり、svnのアドレスも変わったようなのでインストールして試してみた。

インストールしたバージョンは、Revision 29。

試してみると、どうもBitmapMaterialを使ってる今まで書いたコードがうまく動かない。

んー?弱った。

BitmapMaterialに対して描画して、テクスチャに変更をかけているサンプルが動かない様子。

単純なコードを書いて試し見ると、次のことがわかった。

1.

BitmapMaterialはBiamapDataを渡されると、以前のバージョンでは、参照を保持していたと思われる。だが、今のバージョンは、渡されたものと同じコピーを内部に作成して保持するようだ。

なので、Material内部のBitmapMaterial.bitmap に対して、描画処理を行わなければならない。

2.

BitmapMaterial.bitmapに対して描画するオブジェクトは、addChildされた
ものでなくてはならないようだが?

なんか納得いかないけど、addChildしてないと描画されないので、どうもそういうことのようだが、なんでなのか?

とりあえず、下記のテストコードでは、textFieldをaddChildする処理をはずすと、何故か描画されない。

TextFieldの場合だけ?よくわからん。

ということみたい。

調査のために書いたテストコードと、それによって生成されるswfが以下のもの。


Pv3DBmpmat.as

| | コメント (0) | トラックバック (0)

Papervision3Dでカメラの画像をテクスチャにする

昨日のFLVをテクスチャに貼るコードを、ちょっと変えてウェブカメラなど、PCに接続されているカメラの画像をテクスチャに貼るコードを書いてみました。

MAC BOOK、MAC BOOK PROなら、元からカメラが付いていますので、Flashのカメラ設定をすれば動きます。

コード的には、昨日のFLVより簡単。

Cameraクラスを使用して、ウェブカメラの画像を取得。

毎ループ、テクスチャのビットマップにカメラ画像を描画。

って感じですね。

カメラがあれば、次の絵のように、カメラ画像がテクスチャとして貼られた立方体に、ブラーかかかったり、かからなかったりしながら表示されるはずです。

2_5

以下、ソースコード。


CameraTexture.as

| | コメント (0) | トラックバック (0)

Papervision3DでFLVのムービーをテクスチャ表示する

というのをやってみました。

ちなみに、この猫、電脳空間カウボーイズのトグサ秋月氏の猫ですね。

猫がサンプルに出てくると、猫でもわかるプログラミングみたいで、微妙に良いんじゃないかとか勝手に思ってるんですが(笑

このサンプル、ビデオ再生のループ処理もやってるところが微妙にポイントですかね。

参考資料は、ここ

原理的には、ビデオ再生して、そのビデオを毎ループ、テクスチャのビットマップに描画してます。

あとはなんとなくブラー処理を、見た目のために追加。

以下、コードの太字の部分が重要な点ですかね。


Video3D.as

| | コメント (2) | トラックバック (1)

Papervision3Dでのフィルタエフェクト

さっき、発光エフェクトを作ったら、つまりFlex 2のエフェクトであるFilter各種は普通にPapervision3Dで使えることが解った。

なんで、ブラー、ドロップシャドウ、グロウ、ベベルをマウスクリックでそれぞれ切り替わるサンプルを作ってみた。

ベベルはオブジェクトが3Dでぐるぐる回ってるんで、だいぶ不自然なんだけど。

ポイントは、それぞれのエフェクトを行うためにフィルタを設定している、setFilter関数ですね。


FilterPv3D.as

| | コメント (0) | トラックバック (0)

Papervision3Dでの発光エフェクト

発光エフェクトを作ってみました。

ポイントとしては、DisplayObject3Dのcontainerが作られる必要があるので、まず、sceneをMovieScene3Dで作製する点。

あとは、その平面の持っているcontainerのfiltersに発光フィルターを設定してやればよいだけ。

このプロパティに対してフィルターかければいいんだったら、結局どのエフェクトもかけられるってことか。

ここのGlowを参考にしました。


GlowEffect.as

| | コメント (0) | トラックバック (0)

Papervision3DでKEY_DOWNイベントを取得する

KEY_DOWNイベントを取得するサンプルを書いてみた。

stageに対して、addEventListenerしているのが、唯一のポイントかな。

上下左右のカーソルキーで、板が回ります。


Pv3dKey.as

| | コメント (0) | トラックバック (0)

Papervision3Dでの画像テクスチャの半透明描画

最近、Papervisionについてばかりの当ブログ。

画像テクスチャを半透明描画するサンプルを描いてみた。

BmpDataのdrawのColorTransformで、アルファでマテリアルに画像を描画。

ここがポイント。


ImgAlpha.as

| | コメント (0) | トラックバック (0)

Papervision3Dで角丸矩形かつ半透明の平面を描く

角丸矩形かつ、アルファの時は、角丸矩形を書く際に、アルファで描いてやれば良い感じ。

beginFillの第2引数で、アルファ値指定。


BmpAlpha.as

| | コメント (0) | トラックバック (0)

Papervision3Dで半透明ポリゴンを描く

アルファブレンドで描く処理を作ってみた。

ColorMaterialのコンストラクタの第2引数、またはプロパティのfillAlphaによって設定。


AlphaBlend.as

| | コメント (0) | トラックバック (0)

Papervision3Dで角丸矩形の平面を描く

Flashの3DライブラリのPapervision3Dで、角丸矩形の四角を描いてみた。

特に難しい点は無いんだけど、BitmapMaterialで透明のBitmapDataを元に、マテリアルを作成。

そのBitmapDataに対して、ShapeのdrawRoundRectで、角丸矩形を描画。

ってだけですね。

note.xさんのところの記事を参考にさせてもらいました。

どもです。

以下ソースコード。

*2007/06/10

rootNodeというオブジェクトをsceneの下に作り、その上でplaneを追加していたのを、sceneの直下にplaneを作るように変更。rootNodeは削除。


pv3dRoundRect.as

| | コメント (0) | トラックバック (2)