2008-09-11

【Papervision3D 2.0】AbstractViewクラスの_cameraプロパティがCameraObject3Dクラスである意味が分かりません

あまりにも意味がわからなかったので,

そのままタイトルにしてしまったw



Papervision3D 2.0で追加されたBasicViewクラスはカメラやViewPortといった,描画でかならず必要となるクラスをまとめて宣言してくれるすぐれもの.

Spriteクラス→AbstractViewクラス→BasicViewクラス

という継承なのでSpriteとしても使えるところが便利.



で,BasicViewクラスでカメラを"CAMERA3D"で宣言して自由にカメラを動かそうと思ったときに気づいたことなんだけど・・・.

カメラを設定するために以下のようなコードを書いた.


basicView = new BasicView(container.stage.stageWidth, 
container.stage.stageHeight,
true,
true,
"CAMERA3D");
// カメラの位置
basicView.camera.x = 0;
basicView.camera.y = 0;
basicView.camera.z = -1800;
// カメラの視点
basicView.camera.target.x = 100;
basicView.camera.target.y = 0;
basicView.camera.target.z = 0;

��本来はBasicViewをextendした方がスマートかもね)

上のコードを実行すると,

(;・∀・)あれ?

targetが未定義だと怒られた.

CAMERA3Dを指定したんだし,targetはCamera3Dクラスでpublicなんだから,当然Camera3Dクラスのプロパティは使えるはずだよね?



で,ソースを読んでみた.

どうやらスーパクラスのAbstractViewクラスでカメラのプロパティ_cameraを宣言して,getterを使ってcameraでプロパティアクセスができるようになっていたのだけど・・・


protected var _camera:CameraObject3D;

public function get camera():CameraObject3D
{
return _camera;
}

(;・∀・)ハッ?

_cameraプロパティがCameraObject3Dクラス!?

カメラにはCamera3Dクラス,FreeCamera3Dクラス,FrustumCamera3Dクラスの3つあって,CameraObject3Dを継承している.

で,BasicViewクラスではそれらをnewして_cameraに代入しているのだけれど・・・_cameraプロパティがCameraObject3Dクラスだったら,継承したプロパティ(target)なんかあるはずねぇよw



まだまともにPapervision3D始めて1日も経ってないのに,いきなりバグ発見?

ヾ(・∀・;)オイオイいくらベータとはいえこんな初歩っぽいところで間違っててこれでいーのか.



まあ,でもまだバグって決まった訳じゃないし・・・.

AbstractViewクラスの_cameraプロパティがCameraObject3Dクラスである理由が分かる方がいたら是非教えて頂けるとありがたいです.



とりあえず,対策としてAbstractViewクラスを次のように編集してどうにかしてみた.


protected var _camera;

public function get camera()
{
return _camera;
}







追記:

自己解決.

よく見たら,BasicViewクラスにこんな記述が.


public function get cameraAsCamera3D():Camera3D
{
return _camera as Camera3D;
}

コレ使ってアクセスしろというわけですか.

つまり,

basicView.cameraAsCamera3D.target.x = 100;
basicView.cameraAsCamera3D.target.y = 0;
basicView.cameraAsCamera3D.target.z = 0;

とすればよかったのね.

でも,そうすると_cameraのsetterが全く持って意味がないよね.

そういうところってちゃんと整理しておかないとダメだと思うんだけどなぁ.

2008-09-08

【初音ミク】ボーカロイドタイピング Typenist

たまたま見つけた.



http://kanmisikou.net/typenist/


ボカロの曲に合わせてタイピング.

しかも,基本的にはネットワーク上の
他のユーザとも遊ぶことができるように部屋を作ってその中でプレイするようなシステム構成.

やってみたけど・・・非常に残念なことに
重くてキー判定がうまく遊べませんでした.

自己診断テストでは快適と言われたのに・・・(´・ω・`)

ボカロの曲でタイピングは曲のレパートリーもあって面白そうなんだけどなぁ.

どうやらJava Scriptで開発しているらしい.

Java Scriptって本気になればここまで作れるとは,

制作者さんGJです.



自分もFlashかAIRで何か作ろうかなぁ.

実は今いくつかアプリとして機能するものを本気で作ろうかと画策中.(・∀・)ニヤニヤ

今は難しいかもしれないが,空いた時間に一気に作る予定.


2008-09-03

【ニコ動】新機能はメッセと連携

今,生放送で見てきた.

メッセユーザ間でニコ動を共有.

ニコ動IDのないメッセユーザでも視聴が可能だそうです.



・・・どうなのこれ?

聴いた瞬間はびっくりしたけど,

実際使う場を考えると微妙な気がする・・・.



そもそも,自分のメッセ仲間はみんなニコ動IDもってるから,

URL渡すだけでいいしなぁ.



連携するにしてももっと何かアイディアがないと意味ない気がしますねぇ.