Papervision3D

2009年11月 6日 (金)

Pixel3Dの座標⇒普通のxy座標


Pixel3Dの持つ3D座標を、通常の2次元座標に変換しています。

参考にしたのは、Papervision3Dのソースコードの1つである、「RenderPixels.as」というファイル。

このファイルで、Pixel3DをBitmapDataにプロットしていたので、その部分の計算を拝借。

割と簡単に出来ました。

マウスでクリックした座標とPixel3Dの座標を照らし合わせてPixel3Dにクリックイベントをつけたりすると面白いかもしれないですね。



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

2009年10月 2日 (金)

キラキラPixel3D!

きらきら~。

超久々にAS3でプログラミングしました。

やっぱ楽しい。

PV3Dはこれからどうなっていくのかなー。

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

2009年8月 6日 (木)

wonderflに投稿してみました15 3Dでアトラクタっぽいの



久々にwonderfl。

前からアトラクタやってみたかったんで、PV3Dと組み合わせて3Dアトラクタって感じのやつを。

クリックで再描写です。

見やすくて綺麗な時もあれば、見づらい時もあります。

いやーアトラクタっていいですよね。




ちなみに、パーティクルの管理は配列ではなくていテレータでやってます。

パーティクル祭りの復習もかねてます。

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

2009年7月26日 (日)

FLARToolkitで遊んでみる その5

P



















絶賛FLARToolkitで遊ばせてもらってます。

遊んでいるうちに、なんかへんなの召喚してしまった。







BitmapFireEffect使いたくなっただけです。はい。

ソースとか画像をまとめたものはこちら

マーカー等は、スタートガイドのものを使わせてもらってます。

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

2009年7月22日 (水)

FLARToolkitで遊んでみる その4

P




















絶賛FLARToolkitで遊ばせてもらってます。

久々にサウンドスペクトラムをやってみまいた。

MP3はこちらのものを使わせて頂いています。










綺麗なような微妙なような・・。




以下、ソースです。

マーカー等は、スタートガイドのものを使わせてもらってます。

続きを読む "FLARToolkitで遊んでみる その4"

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

2009年7月21日 (火)

FLARToolkitで遊んでみる その3

P




















絶賛FLARToolkitで遊ばせてもらってます。

今回は、オリジナルのマーカーを作ってみました。

オリジナルのマーカー作成に関しては、下の記事を参考にさせてもらいました。



簡単! FLARToolKitをはじめよう! デベロッパーセンター



とりあえず、適当ですがオリジナルのマーカーを作成。


Marker






















参考記事に、マーカーを作るためのルールが書いてあります。

それに準ずれば基本的に大丈夫なようです。

作成したマーカーの画像からpatデータに変換するのは、太郎氏が制作されたARToolKit Marker Generator Onlineというのを利用します。

これで簡単にpatデータが作成できます。

あとはプログラムで読み込んで、はいおしまい的な感じです。

この前作ったやつを、オリジナルのマーカー使ってやりなおしてみました。





ちゃんと認識されてます。

よしよし。

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

2009年7月20日 (月)

FLARToolkitで遊んでみる その2

E





















FLARToolKitで遊び中です。

以前saqoosha先生がやってた、Papervision3D で穴の中身だけレンダリングするってのをやってみたくて作ってみました。

それと、FLARToolKitを使ったAR系Flashの作り方も参考にさせていただきました。

とりあえず、動作例は下みたいな感じ。




今回は、FLARBaseNodeにaddChildせずに、sceneにすべてaddChildして計算をしています。




以下、ソースです。

マーカー等は、スタートガイドのものを使わせてもらってます。

続きを読む "FLARToolkitで遊んでみる その2"

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

FLARToolkitで遊んでみる

A




















ふとやりたくなったので、FLARToolkitをやってみることに。

スタートガイドにサンプルがあったので、それを見ながらいじっていく。

サンプルではソースコードが3つのクラスに分けてあったので、自分の理解のためにと、1つにまとめてみました。

で、サンプルではキューブだったので、今回はPixel3Dを表示してみました。

動作例は下みたいな感じに。






おお。

すっごい簡単に出来てしまった。

これはおもしろい。







以下、ソースです。

とは言ってもスタートガイドとほとんど同じ感じだけど・・・。

マーカー等は、スタートガイドのものを使わせてもらってます。

続きを読む "FLARToolkitで遊んでみる"

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

2009年6月21日 (日)

そうめんをさわってみた その6

P





















そうめん練習中。

今回は、FlickrAPIとPV3Dを使って以前作った作品をそうめんVerとして書きなおしてみました。

サンプルはこちらです(右クリックでソースが見れます)。




スレッドの流れは、

プログレスバー作成して、それのリサイズイベント用スレッド実行

APIにアクセスして、XMLをロード

XMLを解析して、画像をロード

画像からPV3DのPlaneを作成。リサイズイベント用スレッドは割り込みで停止。

Planeを出現

Planeコントロール用スレッド実行

って感じです。






以前そうめんを使わずに作った時は、イベント系の処理がすごくめんどかった。

なので、そうめんを使ったことでaddEventListenerから解放されたのですごくいい感じにプログラムが組めました。

順序立てて考えができるので、デバッグとかもやりやすかたったし。

ただ、なんとなくソースコードが異様に長くなってしまうような感じがします。

こればっかりはうまく書いていくしかないっすかね。



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

2009年6月11日 (木)

wonderflに投稿してみました14 & Papervision3Dをやってみた50


ほしです。

数式を使って簡単プログラム。

課題がうまくいかないから気分転換でやりました。

ああ課題よ早く終われ。





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

2009年6月 1日 (月)

wonderflに投稿してみました13 & Papervision3Dをやってみた49




久々にFlash。

AS3.0を打ってるとすごく癒されるこの頃。

Pixel3D使ってみました。

10000個くらい普通に表示できたのは驚きました。

ローテーションの角度を簡単に計算する場合は、「viewport.containerSprite.mouseX 」とかを利用すると簡単に計算できます。

お手軽。



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

2009年2月17日 (火)

PV3DとBox2Dでドラッグしたり

P2_5





















暇を見て、PV3DとBox2Dの組み合わせを再び。

ドラッグ機能をつけました。

こんな感じです。




参考にさせてもらったPV3D + Box2Dでのドラッグのサンプルは、こちらのサイトや、先日clockmakerさんが公開したこちらです。

両方に共通しているのは、独自のイベントを作成して利用していることです(Pv3dArrayEvent だっけかな)。

今回は2つのサイトを参考に可能な限り簡単に書こうと思い、独自イベントを用いずに、1つのファイルにまとめて書きました。

全部で300行くらいです。

ソースは右クリックで見れます。

Box2Dのバージョンは2.0.1です。




本当はReflectionViewを利用したかったんですが、

ブラウザをリサイズするたびに鏡面が上下にずれまくって使い物にならなかったんでやめた。

私の利用方法が悪いんでしょうかね。

ここはちょっと調べる。







(追記)

ReflectionViewで鏡面がずれる結果が一応わかりました。

リサイズイベントでstageにアクセスしてるのが原因っぽい。

そこをコメントアウトしたらずれない様になった。

なんでこうなるのかは不明。

同じようなエラーのプログラムも見当たらないし。

あー何でだ。

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

2009年2月15日 (日)

wonderflに投稿してみました 12



エフェクトをいじる。

マウスの場所によって色が変わるけど計算は適当だからあんまきれいじゃない。

ちょっと残念。


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

2009年2月 8日 (日)

wonderflに投稿してみました 10




PV3DのCubeに、Flexコンポーネントを無理矢理貼り付けました。

コンポーネント自体は、黒いCanvasで隠してあります。

もっとスマートな隠し方ないですかね。



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

wonderflに投稿してみました 9




球体配置。

前、FP10で作ったのをPV3Dで作り直し。


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

2009年2月 5日 (木)

wonderflに投稿してみました 8



前作ったのをPV3Dで作り直す。

PV3Dは、カメラを動かすのが簡単。

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

2009年2月 3日 (火)

wonderflに投稿してみました 7



また投稿。

Vectorvision3DがPV3Dに統合された感じですか。

ただ、

・Word3D → Text3D

・VectorShapeMaterial → Letter3DMaterial 

という風に、多少名前が変わってるので注意。

そこ以外は同じです。


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

wonderflに投稿してみました 7

Papervision3Dが利用可能になったみたいなので。

とりあえず以前作ったのを投稿。





待ちに待ったPV3Dの利用可能のニュース。

面白い作品がどんどん投稿されるでしょう。

楽しみです。



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

2008年12月25日 (木)

マウスに連動して動かす 2

P_28





















この間の記事をイージングっぽくしてみました。

こんな感じです。

こっちのほうがいいよね。

前回の記事の、フレームイベントの中身を、

rotate += (-viewport.containerSprite.mouseX/15 - rotate)*0.1;


って書き換えればイージングの完成。

rotateは外部変数で定義してください。

お手軽アニメーション。

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

2008年12月16日 (火)

マウスに連動して動かす

P_27






















久々にPapervision3DでのFlashプログラム。

論文はなんとか今年中に終わりそうです。

さて、マウスに連動して円状に動くメニューみたいなやつ。

要はこんなやつです。

PV3Dの場合、最初に円状に配置してしまえば、フレームイベントでいちいち座標を再計算をすることなく、マウスに連動して回転させることができます。

iewport.containerSprite.mouseXでマウスの座標が原点を中心にして取ってこれるので、それを利用するだけです。

詳しくはソースのフレームイベントの部分を見てください。

ああ久々にFlash書いた。

Alchemyやりたい。







以下、ソースです。

続きを読む "マウスに連動して動かす"

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

2008年11月10日 (月)

Papervision3DのuseOwnContainerの話

Papervision3Dのオブジェクトにエフェクトをかける手法の1つに、「useOwnContainerをtrueにする」というものがあります。

ただ、これだと、マウスイベントが機能しなくなってしまう。

だから、代わりに「ViewportLayer」を利用する。

自分の場合は、ずっとこんな感じでuseOwnContainerは利用していませんでした。

んで、最近、この問題に関しての記事を発見しました。



Papervision3Dが使えるようになりたいメモその6_InteractiveScene3DEventについて - bao_bao_blog



つまり、すべてのマウスイベントが機能しなくなるわけではないみたいです。

実際に機能しないのは、OBJECT_CLICKOBJECT_DOUBLE_CLICK だけだそうです。

いやーこれは知らなかった。

自分は、てっきり全部のイベントが利用できなくなるもんだと思ってました。

恥ずかしい・・・。



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

2008年10月15日 (水)

FlexでHPみたいなの

P_11





















Flexでなんか作ってみようと思いまして。

HPみたいなのを作ってみようと思い、その思いのままに作ってみる。

とりあえず最初の演出みたいなのを。

とりあえずvectorvisionを利用。

こちらや、こちらのサイトがカッコよすぎなんで、まんまパクリ。

友人に味気ないと言われたんで、Box2Dで周りに何かを散らしてる。

結果、ごちゃごちゃして見づらくなったような・・・。

こんな感じになりました。

メニュー画面に移行したあとは、まだ何も考えていないのでとりあえずな感じ。

このHPうまくいったら何かに使おう。







ソースはごちゃごちゃしてるんで、あとで公開します。

Box2Dのバージョンは2.0.1です。






------------------------------------------------------------------
2008/10/19  追記


かなり適当ですが、形にしたんでソースを公開します。

右クリックからソースの表示でお願いします。

適当に1つのファイルにまとめて書いたんで、かなり見にくいですが・・・。
------------------------------------------------------------------

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

2008年10月 5日 (日)

Papervision3Dをやってみた48

P_10





















vectorvisionでちょっと気になること。

イベント追加の話。

まずはマテリアルのinteractiveをtrueにします。

Word3D自体にイベントを追加しても何も起こらなかったので、lettersプロパティの中にあるDisplayObject3Dに対してイベントを追加する。

これなら動いた。

Tweenerで色もトゥイーンしたかったけどそれはできなかった。

残念。

とりあえず、こんな感じ

文字をクリックすると、動きます。






以下、ソースです。

続きを読む "Papervision3Dをやってみた48"

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

2008年9月27日 (土)

Papervision3Dをやってみた47

P_4





















球体配置の続き。

まだ挙動がかなりおかしいし、エラー処理もしてませんけど。

一応こんな感じかな。

画像はFlickrから取ってきてます。

あと、クリックすると、画像がピクセル等倍で表示されるはず。

カメラを動かすか画像を動かすか悩んだけど、画像のほうが楽です。

こんな感じです。








以下、ソースです。

(2009/3  ソース直しました。)

続きを読む "Papervision3Dをやってみた47"

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

2008年9月26日 (金)

Papervision3Dをやってみた46

P_3






















前回の記事を改造。

結局、普通にサインコサインを利用して計算することにしました。

というわけで、サンプルはこちらです。

やっぱこっちのほうが好き。









以下、ソースです。

(2009/3  ソース直しました。)

続きを読む "Papervision3Dをやってみた46"

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

Papervision3Dをやってみた45

Photo























球体配置を少しいじる。

Tweenerでカメラを動かしてみた。

Planeをクリックしてみてください。

こんな感じになります。

rotationを計算してないからただ視点とカメラの位置がターゲットに寄るだけ。






ちなみに、planeの位置を獲得する場合は、シーン上の位置が欲しいのでsceneXプロパティなどを利用する。

あと、カメラの視点をTweenerで利用する場合は、targetプロパティのxyzを動かす。

ここらへんは覚えておくと便利です。






以下、ソースです。

(2009/3  ソース直しました。)

続きを読む "Papervision3Dをやってみた45"

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

2008年9月25日 (木)

Papervision3Dをやってみた44

P_2





















ViewportLayerを利用すれば、フィルターを利用できます。

下のように利用できます。

var  p:Plane = new Plane(mat, 100, 100);
var vpl:ViewportLayer = p.createViewportLayer(viewport, true);
vpl.filters = [ new BlurFilter(4,4,1) ];

useOwnContainerを利用する方法もありますが、これだとイベントが使えなくなる(何故)。

var  p:Plane = new Plane(mat, 100, 100);
p.useOwnContainer = true;
p.filters = [ new BlurFilter(4,4,1) ];

手軽にフィルターが利用できるのは便利です。

こんな感じに。ViewportLayerを利用しています。









以下、ソースです。

続きを読む "Papervision3Dをやってみた44"

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

Papervision3Dをやってみた43

P





















円配置。

各Planeに動いてほしかった。

これを作りたかったもんで。

こんな感じになりました。

簡易版って感じ。

もう少しいじりたい。







以下、ソースです。

(2009/3  ソース直しました。)

続きを読む "Papervision3Dをやってみた43"

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

2008年9月19日 (金)

Papervision3Dをやってみた42

Photo_6





















FogMaterialってのがあります。

全体に霧がかかったようなかんじになります。

まだ使い方がよくわかりませんが、簡単に霧が表現できます。

こんな感じになります。








以下、ソースです。

続きを読む "Papervision3Dをやってみた42"

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

2008年9月11日 (木)

Papervision3Dをやってみた41

Photo_4






















vectorvisionってのがあるそうで。

ちょっくら使ってみました。

文字とか奇麗に利用できるのはうれしい。

svgファイルも使えるみたいだし。

同梱されているサンプルファイルがものすごくわかりやすい。

とりあえず、こんなの作ってみました。

サンプルをちょっとだけいじっただけです。

エフェクトを追加したのはこっち。

いや、いいですよこれ。







以下、ソースです。

続きを読む "Papervision3Dをやってみた41"

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

2008年8月29日 (金)

Papervision3Dをやってみた40

Photo_3






















エフェクトとスペクトラムの組み合わせ。

思ったより重くない。

こんな感じです。

横に長いのを作っちゃったので、うまく表示されない場合は、最大表示にしてからリロードしてみてください。






以下、ソースです。

(2009/3 ソース直しました。)

続きを読む "Papervision3Dをやってみた40"

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

Papervision3Dをやってみた39

Photo_2





















久しぶりにエフェクト。

BlendModeをADDにしたから、色の混ざったところが白くなってきれい。

こんな感じです。

しかし、最近エフェクトがすごく軽くなって、実用的になってきた。

エフェクトでなにか作ってみようか。






以下、ソースです。

続きを読む "Papervision3Dをやってみた39"

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

2008年8月28日 (木)

Papervision3Dをやってみた38

P_25






















collada形式のファイルを読み込む。

テクスチャとかいろいろあって、正直よくわからない。

まあ表示されているし大丈夫なのかな。

モデルのデータに関してはSketchupを利用。3Dギャラリーから探してきました。

kmzファイルで書き出して、「.kmz」を「.zip」にリネーム。

解凍すると、中に.daeファイルがあるんで、それを読み込みます。

とりあえず、こんな感じに。

本当にとりあえずな感じです。





テクスチャの画像は、MaterialListにして渡すので、Embedなりして読みこまなければいけません。

画像が大量にあってもです。

ああめんどい。

そう思っていたら、Embed Generatorなるものを発見。

おおこりゃ便利。

これで、大量のコードも簡単に書き出せます。

今回は画像が少なかったから手打ちだったけど、大量の画像を扱う場合は重宝しそうです。







以下、ソースです。

続きを読む "Papervision3Dをやってみた38"

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

2008年8月15日 (金)

Papervision3Dをやってみた37

P_23





















大量のsphere。

Flash CS3が利用できたので、円をswfで作成して、planeに貼り付けて、おしまい。

とりあえず1500個。

こんな感じです。

画像よりswfの方が軽くなるってどっかで聞いたことがあるようなないような。





以下、ソースです。

続きを読む "Papervision3Dをやってみた37"

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

2008年8月14日 (木)

Papervision3Dをやってみた36

P_22























遊びで、鏡面反射のメニューを。

こんな感じです。

鏡面反射で悩むのももうすぐ終わりそう。

ReflectionViewクラス登場です。








以下、ソースです。

続きを読む "Papervision3Dをやってみた36"

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

2008年8月10日 (日)

Papervision3Dをやってみた35

P_21






















ReflectionViewってのが実装されたみたいですね。

こちらを参考にさせたもらいました。

サンプルはこちら

Papervision3Dで手軽に鏡面反射ができるようになりそうです。






以下、ソースです。

続きを読む "Papervision3Dをやってみた35"

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

2008年8月 2日 (土)

Papervision3Dをやってみた34

P_2






















バージョンアップにともなって、多少エフェクトの書き方が変わったみたいなので。

以前作成したものを書き直し。

こんな感じです。

以前作ったエフェクト関係も全部書き直しました。









以下、ソースです。

続きを読む "Papervision3Dをやってみた34"

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

Papervision3Dをやってみた33

P_20





















カメラとの距離によってぼやけたり。

こんな感じです。

参考にさせてもらったサイトはこちら








以下、ソースです。

続きを読む "Papervision3Dをやってみた33"

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

2008年7月31日 (木)

Papervision3Dをやってみた32

P_19





















鏡面反射とスペクトラムです。

この間の鏡面反射クラスをいじりました。

こんな感じです。

スペクトラムが再描写されると、ちゃんと鏡面も更新されてます。








以下、ソースです。

(2009/3 ソース直しました。)

続きを読む "Papervision3Dをやってみた32"

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

2008年7月29日 (火)

Papervision3Dをやってみた31

P_18






















3Dでの鏡面反射の練習。

Planeなら簡単にできた。

結果はこんな感じ

視点によって鏡面に見えたり見えなかったり・・・・。

微妙な感じがします。







以下、ソースです。

ReflectionPlaneってのが鏡面反射の付いたPlaneクラスです。

とは言っても、Planeを拡張したわけではなく、Plane2枚をDisplayObject3Dに入れただけです。

続きを読む "Papervision3Dをやってみた31"

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

2008年7月24日 (木)

FlexでHPを作る 2

P_17






















前回の記事を手直し。

こんな感じです。

変更点は、

・FadeエフェクトをAnimatePropertyに変更(こっちのほうがいい感じに動いたから)。

・Galleryに、前作成したやつをのっける。

・各viewでのエフェクトを作成。

画像は相変わらずパワポ。

デザインの勉強したい。

とゆーかしよう。








ソースは、右クリックから「ソースの表示」でお願いします。

Papervision3DとTweenerが必要です。

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

2008年7月20日 (日)

Papervision3Dをやってみた30

P_14




















試験の面接も終わったんで、久々のプログラム。

鏡面反射をやりました。

今までやってた鏡面反射の手法だと、どうしても平面が必要になる。

3Dっぽく鏡面反射できないかなーって考えて。

こんな感じに。

BitmapDataを利用。

正直、全然鏡面に見えない・・。







以下、ソースです。

続きを読む "Papervision3Dをやってみた30"

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

2008年7月 8日 (火)

Papervision3Dをやってみた29

P_11




















パノラマです。

Flickrで写真を探してきました。

大きく写したかったので、でかい写真を選んだら重くなりました・・・。



シリンダーに画像を張り付けて、中にFreeCameraを置いて、おしまい。

こんな感じです。







以下、ソースです。

(注:最新のPapervision3DではFreeCamera3Dがありません。カメラの設定を変えて使ってください。)

続きを読む "Papervision3Dをやってみた29"

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

2008年7月 5日 (土)

今まで作ったのをいろいろ組み合わせてみる

P_8























今まで結構いろいろ作ってきたんで、組み合わせてなにかできないかと考えたもんで。

こんなの作ってみました。

やっぱり、Tweenerは便利です。アニメーションみたいな動きが簡単に出来るし。

最初の文字の動きはBox2D。

あとはPv3DとTweenerで動かしています。









以下、ソースです。

Box2Dのバージョンは2.0.0です。

Tweener、PV3D、Box2Dを利用して、がりがり書いていったんで、やたら長いですが・・・。

あと、ソースと使用した画像のセットはこちら

(2008/12 なんか急に文字が全部現れる前に落ちるようになってしまった・・・。)

続きを読む "今まで作ったのをいろいろ組み合わせてみる"

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

2008年7月 2日 (水)

FlexとPV3D その4 を手直し

P_5


















この前作ったプログラムを手直しです。

みなさん情報提供ありがとうございました。

とりあえず、as3flickrlibは使うのをやめて、自分でXMLを解析していく方向に。

なんかこっちのほうが簡単だったかも・・・。

こんな感じになりました。

日本語は対応していないので注意してください。

あと、写真が球体を作成するのに足りない場合は、アラートが出ます。

たぶんうまく動くと思うんですが・・・。






ソースは右クリックから見れます。

(2009/3 ソース直しました)

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

2008年6月26日 (木)

Papervision3Dをやってみた28

P_4






















数式を利用して図形を作成。

色々作ってみました。

こんなのとか、こんなのとか、あと、こんなの

全部数式を利用して書きます。





今回は数式だけ。プログラムに利用してみてください。

forループでまわして、x、y、z座標を計算していきます。

最初のは、

var a:int=100;

for(var i:Number = 0 ; i<= 2*Math.PI ; i += 0.1){
     for(var j:Number=-0.4 ; j<=0.4 ; j+=0.1){
              x = a*(Math.cos(i) + j*Math.cos(i/2)*Math.cos(i));
              y = a*(Math.sin(i) + j*Math.cos(i/2)*Math.sin(i));
              z = a*j*Math.sin(i/2);
          }
   }

次のは、

var p:int=3;
var q:int=7;

for(var i:Number=-50*Math.PI ; i<= 50*Math.PI ; i += 0.1){
             x = Math.cos(i)*70;
             y = i;
             z = Math.sin(i)*70;

}

最後のは、

var p:int=3;
var q:int=7;
var a:int=50;

for(var i:Number=0 ; i<= 6*Math.PI ; i += 0.04){
             x = (2+Math.cos(q/p*i))*Math.cos(i)*a;
             y = Math.sin(q/p*i)*a;
             z = (2+Math.cos(q/p*i))*Math.sin(i)*a;
}

数式って、便利です。

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

2008年6月24日 (火)

FlexとPV3D その4

P1




















as3flickrlibってのを使って、Flickrから画像を取ってきて、球体に並べる。





こんな感じになります。


P2


































なぜかネットにあげるとうまく動かないので、今回はサンプルはなし。

ちゃんとローカルでは動くのに。

おかしい・・・。










以下、ソースです。

続きを読む "FlexとPV3D その4"

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

2008年6月23日 (月)

Papervision3Dをやってみた27

P_2






















前回の記事を改造。

こんな感じです。

直した部分は、座標を決めるところを

xxx = a*i*Math.sin(m*i)*Math.cos(n*i);
yyy = a*i*Math.sin(m*i)*Math.sin(n*i);
zzz = a*i*Math.cos(m*i);

と直して、あとで線が消えていく部分を追加。

dtime = dtime / 4;
for(var i:Number = 0 ; i<= 12*Math.PI ; i += 0.03){
    var ll:Lines3D = rootNode.getChildByName("line"+i.toString()) as Lines3D;
    Tweener.addTween(ll, {scale:0, time:2, delay:dtime, onComplete: function():void
                    {
                       rootNode.removeChild(ll);
                    }});
    dtime += 0.04;
}

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

2008年6月22日 (日)

Papervision3Dをやってみた26

P_3






















こちらの記事より。

確かに楽に出来ました。

こんな感じです。

PV3Dは変に座標で悩まなくてもいいのが楽です。








以下、ソースです。

(2009/3 ソース直しました。)

続きを読む "Papervision3Dをやってみた26"

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

2008年6月20日 (金)

Box2DとPV3Dを合わせる

P_12






















タイトル通りです。

こんな感じです。

Box2Dのワールドを作成して、その座標をPV3Dに反映させているだけ。

PV3Dは、オブジェクトがぴったり合わさるとレンダリングがうまくいかない気がします。







以下、ソースです。

バージョンは2.0.0を利用しています。

(2009/3 ソース書き直しました。)

続きを読む "Box2DとPV3Dを合わせる"

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

2008年6月19日 (木)

FlexとPV3D その3

P_11






















また遊びです。

ロボットアームです。

こんな感じです。

関節の計算とかめんどくさかったので、関節の曲がりには制限をかけました。

だからあまり曲がりません。






ソースは右クリックから見れます。

(2009/3 ソース書き直しました。)

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

2008年6月18日 (水)

Papervision3Dをやってみた25

今回は、プログラムはないです。

自分用の備忘録です。

分かり辛いかもしれませんが勘弁。






Planeの頂点制御を前にやったんですが、Cubeでも頂点制御できるだろうと思い、試してみました。

頂点のアクセスには、下のようにfor-each文でアクセスしていきます。

for each(var obj:Vertex3D in myCube.geometry.vertices)
   { 

   }





Cubeは6つの面を持ちますが、for-each文で回すと、front、back、left、right、top, bottomの順にアクセスしていきます。

各面とも、前回と同様に左下からアクセスして右上まで回ります。

しかも、各面で頂点の数が違います

たとえば、各面の分割数を4-4-4にしたとします。下の様に定義したってこと。

var cube:myCube = new Cube(matlist, 100, 100, 100, 4, 4, 4);

// matlistは自分で定義したMaterialsList



まず、frontにアクセス。

ここは普通に5×5の25個の頂点があります。

backも同じ。

次にleftとrightにアクセス。

ここで注意。leftとrightは両端の2列がfront, backとかぶっています

この2列はfront, backのものとして定義され、left, rightの頂点にはなりません。

よって、left, rightは真ん中の3列が頂点となり、頂点の数は5×3で15個。

最後に、topとbottom。

これは周りの辺にある頂点がすべて他の面とかぶっているんで、他の面のものとして定義されます。

よって、topとbottomの頂点は3×3の9個となります。




要は、かぶっている頂点は先にアクセスする面のものってこと。

rightとfrontでかぶっている頂点があったら、その頂点はfrontのものってことです。




で、これを使って何をするか。

・・・・・何をしましょうかね。

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

2008年6月16日 (月)

Papervision3Dをやってみた24

P_9






















前に作成した階段を昇るCubeを改造。

らせん階段を上ります。

こんな感じです。

この前同様、参考にしたサイトはこちら。

Cubeの動きと階段の配置を合わせるのが大変でした。

最初のほうはまだ計算ミスっているっぽい。

なんか重なってしまいます。

あとで手直しでも。







以下、ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた24"

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

2008年6月15日 (日)

FlexとPV3D その2

P_5





















ちょっとした遊びで作りました。

こんな感じです。

適当にいじってみてください。

こちらのサイトにあった関数を使って色々遊んでみました。

やっぱり数学って大事です。








ソースは右クリックから見れます。

(2009/3 ソース書き直しました。)

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

Papervision3Dをやってみた23

P_4





















頂点制御です。

こんな感じです。





Planeを生成するとき、第4、第5引数の分割数によって、頂点の数が決まります。

注意するのは、分割数と頂点の数は違うということです。

例えば、横の分割数を4、縦の分割数を3にした場合、横に並ぶ頂点の数は5で縦に並ぶ頂点の数は4になります。

下の図のような感じ。




P


















赤が横の頂点。緑が縦の頂点です。






今回は頂点をfor-each文で回していますが、アクセスする順番は、左下から始まって、上までアクセス、終わったら次の行に移動。

こんな感じで最後までアクセスしていきます。






分かりづらい説明ですみません。

何かの参考になればと。

以下、ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた23"

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

Papervision3Dをやってみた22

P_3





















Cubeが階段を上ります。

こんな感じです。






プログラムで面白い動きを作成する場合、数学の知識は不可欠です。

そんなことを考えていた矢先、友人がとても面白いものを教えてくれました。

いや、面白い。

たった一つの関数で階段の動きを表せるなんて。

星型の関数なんかも乗っています。

とても参考になるサイトです。

PV3Dではこういった関数を利用するのが簡単だと思うので、色々調べてみようと思います。







以下、ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた22"

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

Papervision3Dをやってみた21

P_2






















平面でサインカーブ。

そんだけ。

数学って大事です。

最近それを実感します。






以下、ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた21"

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

Papervision3Dをやってみた20

P





















PV3Dで、大量のSphereを生成すると、もの凄く重くなります。

そういう場合、平面に円の画像を貼り付けて、常にカメラの方向を向くように設定します。

これによって、平面がSphereに見えるようになり、大量のSphereが生成できるわけです。



・・・とまあそう考えて実験してみました。

こんな感じです。

カメラが円運動しています。

結果として、Sphereに見えなくもないと思います。

ただ、端のほうが歪んだりしているので、まだ色々設定しなければいけないみたいです。

あと、画像もちゃんと作ったほうがいいみたいです。

とりあえず、これで大量のSphereを利用できそう。








以下、ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた20"

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

Papervision3Dをやってみた19

P_33





















またエフェクト。

こんな感じです。

なんかライトみたいにりました。

エフェクトは資料が少ないですが面白いです。

頑張ってBitmapFireEffect使えるようになりたい。







以下、ソースです。

(2009/3 エフェクトの利用方法が変わったので、書きなおしました。)

続きを読む "Papervision3Dをやってみた19"

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

2008年6月11日 (水)

Papervision3Dをやってみた18

P_2




















ちょっと前に作った球体をクラスにしてみました。

こんな感じになる。

クラスを作る練習。




こちらです:planeSphere.as

(注意:Papervision3DとTweenerを利用しています)





使い方としては、

var ps:planeSphere = new planeSphere(250, 40, 40);            // 半径、planeの幅と高さ
this.rootNode.addChild(ps);

ってな感じで初期化して、

ps.makeSphere();

みたいに実行すれば球体が生成されます。

「ps.x = 100」 とか、「ps.rotationY = 20」 みたいなのも出来ます。





自分でクラス作れるようなると便利ですよね。

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

2008年6月 9日 (月)

Papervision3Dをやってみた17

P_32






















エフェクトを利用しています。

ちょっと前に作ったやつです。

こちらのサイトを参考にさせてもらいました。

こんな感じです。マウスの位置によってCubuが回転します。あと色も変わります。







以下、ソースです。

(2009/3 エフェクトの方法が変わったので書き換えました。)

続きを読む "Papervision3Dをやってみた17"

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

2008年6月 4日 (水)

Papervision3Dをやってみた16

P_28




















久々のオーディオスペクトラムです。

こんな感じになりました。

最初はエフェクトかけていたんですが、重すぎてやめました。








以下、ソースです。

(2009/3 ソース書き直しました。なんか鏡面がずれるようになった。)

続きを読む "Papervision3Dをやってみた16"

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

2008年5月31日 (土)

Papervision3Dをやってみた15

P_25






















鏡面反射です。

前に作成したものとは手法が違います。

参考にさせていただいたサイトはこちら

今回は、ViewportをBitmapDataのdrawメソッドを利用して描写してます。

サンプルはこちら

planeをクリックすると、その位置まで球体が動きます。

注意点としては、planeを両面表示にしない(plane.material.doubleSided = true を書かない)ことです。

両面表示にすると、カメラの前にplaneが壁として現われて、オブジェクトが移りません。

また、何もしないと、縦方向(z軸方向)の動きが逆に表示されるので、matrixを適用して上下を反転させています。

いろいろなサイトを見てまわりましたが、前回の手法より今回の手法のほうが多く使われている気がします。





以下、ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた15"

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

2008年5月29日 (木)

Papervision3Dをやってみた14

P_24





















以前作った、Planeで球体を作るプログラムをちょっと改良しました。

平面の縦と横の長さと、球体の半径を設定すれば、あとは自動で球体を作成してくれます。

サンプルはこちらです。





以下、ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた14"

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

2008年5月28日 (水)

Papervision3Dをやってみた13

P_23





















3Dの世界での鏡面反射です。

基本的な考え方としては、「カメラとビューポートをもうひとつ作成して、その画像を平面に表示させる」という方法になります。

こんな感じです。

平面にはフィルタをかけて、少しぼやけた感じに。





以下、ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた13"

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

2008年5月26日 (月)

Papervision3Dをやってみた12

P_22




















この間作った球体を作り直しました。

こんな感じです。前より細かくなった感じ。

球の半径や、平面の1辺の長さを自由に変更することができます。

それに対応して、球体を作るだけの面が自動で生成されます。

これは作っててかなり楽しかったです。






以下、ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた12"

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

2008年5月25日 (日)

FlexとPV3D

P_21






















FlexのコンポーネントをPV3Dに配置してます。

こんな感じです。

思ったより簡単に出来ました。





ソースは、右クリックから見れます。

(2009/3 ソース書き直しました。)

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

2008年5月24日 (土)

Papervision3Dをやってみた11

P_19





















Planeを球体に並べています。

サンプルはこちらです。

planeのどれかをクリックしてみてください。

球体に並べる方法ですが、for文で回してやればあっさりできます。

結構簡単でした。




以下がソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた11"

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

2008年5月22日 (木)

Papervision3Dをやってみた10

P_18




















画像の特定領域をBitmapDataにコピーして、こんなものを作ってみました。

クリックしてみてください。

特定領域のコピーですが、今回はUV座標を利用してみました。





以下ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた10"

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

Papervision3Dをやってみた9

P_17





















クリックすると、カメラがそのオブジェクトに向かって移動します。

ローテーションなどもします。

こんな感じです。

割と面白いものが出来ました。

Camera3Dの視点は、targetプロパティを設定することで移動することが出来ます。

これをやらないと、カメラがどこに移動してもカメラは中心を向いたままです。

まあ詳しくはソースを見てください。








そんな訳でソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた9"

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

Papervision3Dをやってみた8

P_16






















3Dシーンに設置した、各オブジェクトに対してイベントを追加します。

方法は次の通りです。



1. viewportの第4引数をtrueに設定する

2. マテリアルのinteractiveをtrueにする

3. オブジェクトにイベントを加える



とりあえずこんな感じです。

サンプルとして、単純なマウスオーバーのイベントを使ってみました。

こんな感じです。

マウスオーバーすると、キューブが大きくなります。






以下ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた8"

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

2008年5月20日 (火)

Papervision3Dをやってみた7

P_15





















平面などの各頂点の座標は編集できます。

今回は、各頂点のz座標だけいじってます。こんな感じです。

クリックすると元の写真に戻ります。

詳しくはソースをご覧ください。




ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた7"

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

Papervision3Dをやってみた6

個人的備忘録。

Planeの歪みをなくす方法。

private var mat:BitmapMaterial = new BitmapMaterial(bitmap_data,true);

マテリアルの第二引数にtrueを設定するだけです。

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

Papervision3Dをやってみた5

P_12





















今度はflvファイルを張り付けました。

こんな感じになりました。

BitmapDataのdraw()を使っています。

ちなみに、ムービーの猫はうちの猫です。






ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた5"

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

2008年5月19日 (月)

Papervision3Dをやってみた4

P_14




















Tweenerを使ってみました。

ファイルをDLして、ソースと同じフォルダに入れるだけで使えます。

とりあえず、適当に動かしてみようかと。

サンプルはこちら。クリックしてみてください。







ソースはこちらです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた4"

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

Papervision3Dをやってみた3

P_11





















ParticleFieldというものを使ってみました。

とりあえずこんな感じに




以下、ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた3"

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

2008年5月18日 (日)

Papervision3Dをやってみた2

P_9




















Cubeを作りました。

サンプルはこちら



以下、ソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた2"

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

Papervision3Dをやってみた

P_8





















ActionScript3.0の3Dライブラリです。

前からやってみたかったもんで。

今日バイトに行く前にちょっとやってみました。

バージョンが1.5から2.0に変わるときに、基本的なところが結構変わっちゃったみたいで、2.0のときに手を出すことが出来てよかったです。

サンプルはこんな感じ。

色々出来そうで面白いです。





以下がソースです。

(2009/3 ソース書き直しました。)

続きを読む "Papervision3Dをやってみた"

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