Papervision3D 1.5 の objects(1) ~スケール~
2007/07/26 21:45 - Papervision3D
今まで、Papervision3D 1.5 の変更点のうち、第3、4、10番目について、ごくごく簡単に見てみました。
残りの項目は自分にとって、特に検証する必要を感じなかったり(第1、7、8、9番目)、意義が理解できない or どのクラスに変更が施されたのか分からない(第2、5、6番目)ものであったりします。
理解度が進むに伴い後者の検証をおこなう機会が生じるかもしれませんが、変更点として列記されている項目について見るのはここまでにしておきます。
で、今回の話。
PV3D のプリミティブオブジェクトは下記例のように、たいていの場合、その3階層上のスーパークラスに DisplayObject3D を持ちます。
その DisplayObject3D について着目してみます。
今回はスケールに関するプロパティについて見てみましょう。
スケールに関するプロパティは以下の4つが存在します。ゲッター・セッター型です。
- scaleX
- scaleY
- scaleZ
- scale
1~3までの3つは、それぞれ各軸におけるスケールということで、Flash.display.DisplayObject におけるソレにZ軸のが加わったものと考えれば良いでしょう。
最後の scale プロパティは、コードを見るに、前述の3スケールに対して同時に同じ値を操作するもののようです。
そして、今までスケールプロパティは write-only という何だかよく分からないものだったそうですが(参照:Papervision3Dメモ #9 from note.x )、1.5 ではセッターとゲッターが定義され、read-write になっています。
以下、Tweener を使って、各 object のスケール変更を試してみました。
トゥイーン対象のプロパティは次の二つにします。
- 上述した Papervision3D のプロパティである scale
- Tweener のプロパティである _scale(つまり scaleX と scaleY )
領域クリックでスケールのプロパティに適用する値を切り替えます。
1 と 2 のトグルです。
Plane
scale
|
_scale
|
Cube
scale
|
_scale
|
Cylinder
scale
|
_scale
|
Sphere
scale
|
_scale
|
- ScaleMain.as( 3.78 KB )
Plane はZ軸方向に厚みがないのでどっちも挙動は同じですが、他のプリミティブオブジェクトで _scale を使うとなかなか面白い動きになります。
Cylinder や Sphere の場合、_scale に 2 が適用された形態は new では作れないものですね。