地球儀的なもの(PaperVision3D)

2009 年 11月 27 日

(1)ちょっと落ち着いた時間に「.fla2」を詠んでいたら、仕事とは関係ないFlashを作りたくなった。
(2)どうも風の噂では久々に3Dの案件が舞い込んでくるらしい。
以上2点から、PaperVision3Dのライブラリを引っ張り出してきて、地球儀的なFlashを作りました。マウスホイールでぐりぐり回せます。
処理としては、

・各都市の「緯度・経度」から、3次元上に「DisplayObject3D」を配置。
・それぞれの「DisplayObject3D」のスクリーン座標を得る(DisplayObject3D.screen.x、DisplayObject3D.screen.y)
・その座標に都市名の噴出しSpriteを表示させる(EnterFrame処理)

みたいな感じでやりましたが、2番目のスクリーン座標がいっくらやっても「0」しか返さず、小一時間ほど悩んで悩んで悩んで検索したら、どうも

Actionscript:
  1. var display_object_3d : DisplayObject3D;
  2. display_object_3d.autoCalcScreenCoords = true;

という「autoCalcScreenCoords」プロパティをtrueにしてやんないとスクリーン座標は「0」のママとのことで、ここにつまづきました。

以前担当した3D案件で、3D内のテキストはsmooth処理してやらない限りギワギワになっちゃったり、smooth処理入れたら入れたで重くなっちゃったりで、そんな感じの「重さとデザイン精度のバランス感」に苦しみまして、テキストはやっぱり2次元上のSpriteに別で表示してあげた方が良かったかなぁ、とずっと心残りだったことから、今回screen座標にチャレンジ。

使っている地球の画像の精度と、各都市の緯度経度の設定を細かく設定しているわけではないので、ちょっとずれたりしているとこもありますがご容赦ください。各都市の緯度・経度を参考にしたのはこのページです。

Leave a Reply