名古屋でホームページ制作とFlash eternity design BLOG

最近のPV3D2.0 GreatWhite

1ヶ月ほど前になるけど、Camera3Dがめっちゃ変わった。
(Revision645からかな)
正直、面倒な仕様変更なので実際にコード書いて確かめたわけじゃないけど、FreeCameraとかFrustumCamera3Dがなくなった。
というと正確じゃないけど、Camera3DがFreeかFrustumみたいになったというべきか。
Canera3Dのパラメータもすごく変わってます。
BasicView使う人はデフォルトでは前のCamera3Dと同じ動作になるようになっている。
(たぶん、TARGETって、それっぽい名称だし)
[code]var myBasicView:BasicView = new BasicView(width, height, scaleToStage, interactive, cameraType);[/code]
このcameraTypeパラメータが指定するところで、値は以下が使える。
CameraType.TARGET
CameraType.FREE
CameraType.DEBUG
BasicViewではデフォルトで「CameraType.TARGET」が指定されているけど、普通にnew Camera3Dすると「CameraType.FREE」になってるんじゃないかなという気がする。
んじゃ、BasicView使わないときはどうやってcameraType変更するんだってことになるけど、これまたよくわからない。
PV3DScene3Dクラスにpublicな変数でcameraTypeがあるから、これだろうか。
ここで”Free”と指定されているから、上記の気がするという件の根拠なんだけども。
[追記]
PV3DScene3Dクラスでnew Scene3D、new Viewport3Dしてる。
ほんとにすごい変わったなぁ
asdocもRevision677で出力しようとするとXSLTエラーとかでて、生成されないし。
コマンドラインとか勘弁してよ。
Flash Player10用のPV3Dも出てますよ。

PV3D ReflectionView

Papervision3D 2.0 GreatWhite revision 641 でReflectionViewってのが追加されてる。
サンプルとか詳しいことはこちら。
まぁ、こーゆーの今までだと、自分で実装しないといけなかったので楽にはなるんだけど、
Effectとしての追加ならAppleとかみたいに、フェードアウトして表示されるオプションもほしいな。
こういう感じの↓

reflection_hope

Papervision3D 2.0とGreat WhiteとEffects

1ヶ月ほどAS2のほうで仕事やってて、それも一段落して久しぶりにAS3の世界に舞い戻るのにPapervision3D触ろうと思って状況確認してみたら、EffectsがGreat Whiteのほうに統合されてた。
基本的には、それぞれのObjectのuseOwnContainerをtrueしてやればあとはDisplayObjectと同じ方法でfilterやらalphaやら使えるようになります。

p.useOwnContainer = true;
p.filters = [new BlurFilter()];
p.alpha = 0.5;

blendModeも使えるようなんですが、revision629だと、エラー出る。
他にもいろいろとEffectsから追加されているけど、getChildLayerとかよくわからない。
サンプルコードのコメントによるとオブジェクトが大量のときに使うと早くなるみたいなことが書いてあるけど詳細がわからない。
サンプルコードとか詳しいことはこちら
そろそろPV3DのASDocで出力しただけでない、まともなドキュメントほしいな。
できれば日本語で。
Papervision3D 2.0 Effects

Papervision3D 2.0 Effects

Papervision3D 2.0 Effectsのお話。
GreatWhiteにはできないと思われるPrimitiveなオブジェクト(というかDisplayObject3Dと MaterialObject3D)に直接フィルタ効果を適用できるバージョンってことでいいんだろうか。
GreatWhiteと異なる部分だけ解説。
(エフェクトかけるところ以外は完全に同じですが)
まずは、エフェクトの設定

effectLayer = new EffectLayer();
effectLayer.addEffect(new LayerEffect(new DropShadowFilter(distance, angle, color, dsAlpha, blurX, blurY, 1, quality)));

Filterの複数指定はaddEffectを指定すればよいだけ。
Viewport3Dにエフェクトレイヤーの適用

viewport.addRenderLayer(effectLayer);

各オブジェクトにエフェクトの適用

p.renderLayer = effectLayer;

詳しくはココ。
しかし、この方法、TweenerによるFilterのTweenができないんじゃないだろうか。
1.x系だとAS標準的なやり方でFilterの設定ができるのでTweenerで問題なさそうだけど。
なぜGreatWhiteとEffectsと分かれてるのかとか、1.7Betaがすでに2月から修正加えられていなかったり、Flash Player 10の登場でPV3Dもいろいろと変更が出てくるだろうし、どうなるんだろうか。
Flash Player 9対応の2.0だけはちゃんとリリースしてほしいところです。
あ、alphaもお願いします。
なんか方法ないかなぁ・・・

Papervision3D 2.0 と alpha

わ~か~ら~ねぇ~。
WORKSコンテンツでPV3Dを利用しようとして触り始めたPV3D 1.5。
ベースな部分はできたんですが、どうしてもPlaneに張ったテクスチャの歪みが気になるのでsegmentsの値を歪みを許せる値まで大きくしたんですが、ぎりぎり我慢できる値でも重い。
しかし、PV3D1.7だとPrecise~系のMaterialが追加されており、2.0だとMaterialそれぞれのオプションで設定できるものがあり、これを利用すると歪みが少なくなる。
ということで2.0用にASを書き換えていたんですが、今度は2.0でalphaプロパティの設定方法がわからない。
1.x系でいう下記のもの。

// Planeの場合
Plane.container.alpha = 0.5;

2.0だとPlaneなどのprimitivesクラスに直接addEventListenerできたりと1.x系に比べると、わかりやすくはなってるんだけどなぁ。
scaleやらは使えるのにalphaはどこいった?

Papervision3D

世間ではFlash Player10 Betaの登場で3D系のライブラリがどうのこうのとかで3D関連でちょいと動きがあるようですが、かなり遅れてPV3D1.5で遊び始めました。
2.0はまだ正式リリースされていないし、DL面倒。
BitmapAssetMaterialで同じBitmapクラスを複数のPlaneに利用すると2枚目以降のPlaneの表示がおかしくなる現象が出てるんですが、なぜだろう。
BitmapAssetMaterialもPlaneも当然newしてるし、MovieAssetMaterialだと問題ないんだけどなぁ。

About me

名古屋を中心に、フリーランスでホームページ制作してます。 デザイン・サイト制作・Flash制作と幅広く対応可能です。 案件のご依頼・ご相談はお問い合わせよりご連絡ください。