- 締切済み
pv3Dについて教えてください
【環境】 FlashCS4 pv3D 2.0 アニメーションを作りたいと思い、数日前か勉強し始めました。 今まで全くプログラミングの勉強をしたことがないのと、サイト などに落ちているソースを見てもpv3Dのverが違うのかコンパイル エラーで思うように動いてくれません。 作りたいアニメは、 ・x,y,z軸 ・軸のプラス方向に矢印がついており、更にその先にx,y,zの文字 ・x,y,z軸それぞれプラスの値の適当な位置にy軸方向に長い 直方体を配置 ・直方体の側面にそれぞれ矢印が向いている ・軸、直方体を含め、マウスドラッグでy軸もしくは直方体を 中心に回転 という動きを実現したいのですが。。。 思い描いている動きとしては http://clockmaker.jp/blog/2009/05/papervision3d_tutorial_5/ にあるDemo (step3)が一番近いのですが、どうしても上手く いきません。 ※自分はフレームアクションではなく、asファイルで作成しています。 参考サイトやソースがわかる方いらっしゃいましたらぜひ教えて 下さい。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- H240S18B73
- ベストアンサー率65% (190/288)
#3です、続きです for(var i=0;i<3;i++){ cubeList.push(new Cube(mtrList,30,30,100)) cubeList[i][["x","y","z"][i]]=200 vw.scene.addChild(cubeList[i]) vecList.push(new DisplayObject3D()) var cone=new Cone(mtr,10,30) var bar=new Cylinder(mtr,3,100) cone.y=100 bar.y=50 vecList[i].addChild(cone) vecList[i].addChild(bar) vecList[i][["rotationX","rotationY","rotationZ"][i]]=90 if(i==2)vecList[i].rotationZ=-90 vw.scene.addChild(vecList[i]) var movMtr=new MovieMaterial(makeTxtMov(["X","Y","Z"][i]),true,false,true) movMtr.oneSide=false txtList.push(new Plane(movMtr,50,50)) txtList[i][["x","y","z"][i]]=300 vw.scene.addChild(txtList[i]) } function makeTxtMov(str:String):MovieClip{ var rtn=new MovieClip() var fld=new TextField() var fmt=new TextFormat fmt.size=100 fmt.color=0x339955 fld.defaultTextFormat=fmt fld.text=str rtn.addChild(fld) return rtn } light.y=light.x=light.z=500 vw.camera.y=400 vw.startRendering() addChild(vw) addEventListener(Event.ENTER_FRAME,frameTick) function frameTick(e){ drc+=rot rot*=0.98 for each(var txt in txtList)txt.rotationY=-drc*180/Math.PI-90 vw.camera.x=light.x=Math.cos(drc)*dst vw.camera.z=light.z=Math.sin(drc)*dst } stage.addEventListener(MouseEvent.MOUSE_DOWN,function(e){prevX=mouseX;stage.addEventListener(Event.ENTER_FRAME,setRot)}) stage.addEventListener(MouseEvent.MOUSE_UP,function(e){stage.removeEventListener(Event.ENTER_FRAME,setRot)}) function setRot(e){ rot=(prevX-mouseX)/300 prevX=mouseX } 最近VectorShape3Dっていう使えそうなクラスが追加されたのに なぜかレンダリングの段階でエラーが出て使えなかった・・・
- H240S18B73
- ベストアンサー率65% (190/288)
つねに最新のものを使って公式のdocumentationを 確認するのが一番かなとも思います GreatWhiteもまだまだ変わってくみたいだし 便利なクラスやプロパティが追加されていったりしますからね 最新入れてるなら、フレームスクリプトですが ちょっと練習がてらつくってみました コードが長くなっちゃったんで2回に分けます import org.papervision3d.view.BasicView import org.papervision3d.objects.DisplayObject3D import org.papervision3d.objects.primitives.* import org.papervision3d.objects.special.VectorShape3D import org.papervision3d.materials.ColorMaterial import org.papervision3d.materials.utils.MaterialsList import org.papervision3d.materials.shadematerials.FlatShadeMaterial import org.papervision3d.materials.MovieMaterial import org.papervision3d.lights.PointLight3D var vw=new BasicView(1,1,true,false) var mtr:ColorMaterial = new ColorMaterial(0x33AA88); var light:PointLight3D=new PointLight3D(false) var shdMtr:FlatShadeMaterial=new FlatShadeMaterial(light,0xAAFFCC,0x338844) var mtrList:MaterialsList=new MaterialsList({all:shdMtr}) var cubeList=new Array() var vecList=new Array() var txtList=new Array() var drc:Number=0 var dst:Number=500 var rot:Number=0 var prevX:Number=mouseX
補足
頂いたソースを大まかにですが解読し、自分なりに思い描く形に修正させて頂きました。 また問題点が出てきましたので、新たに投稿させて頂きますので、暇があれば教えてください。
- Hoge_Moge
- ベストアンサー率33% (1/3)
PV3Dなら入門書を買って順番にチュートリアルをこなしていく方が習得が早いですよ。 PV3Dには、様々なブランチバージョンがあって、バージョンアップの度に下位バージョンとの互換がなくなっていきます。 ネットの情報では、バージョンがごちゃごちゃに紹介されているので、効率的に学習するのには向いていないと思います。 おすすめの本は 「Flash3Dコンテンツ制作のためのPapervision3D入門」 です。プログラミングのための環境作り等も載っているので総合的にステップアップできます。 最終的には手にとって判断すると良いと思います。 頑張ってください。
お礼
Hoge_Mogeさんありがとうございます。 仰る通り、サイトのソースをサンプルにしようにもバージョンの 違いによりコンパイルすら出来ない状態です。 どのバージョンで作られたソースなのか、そもそも自分のバージョン すらよく分かっていない状態です。最新であることは確かですが。。 一度、参考書を手にとってみたいと思います。
- joy_28
- ベストアンサー率84% (45/53)
pv3dの世界では、clockmakerさんは、有名な方ですよね。 ご本人が、下のQ&Aのフォーラムを立ち上げてますので、そちらで、質問された方が、サンプルの原作者でもあり、pv3dの見識も相当高い方ですから、回答が得られると思いますよ。
お礼
joy_28さん ありがとうございます。 頂いたURLのフォーラムでも質問してみます。
お礼
H240S18B73さん、ご返答遅くなり申し訳ないです。 さっそくではありますが、頂いたソースを今から試してみたいと思います。 また、質問等させて頂くかもしれませんが、暇であればで結構ですので、よろしくお願い致します。
補足
H240S18B73さん、再度の報告です。 正直すごい感動です。 昨日まで自分なりにasファイルを作成し作っていましたが、 マウスイベントや、回転軸、ライト等で詰まってしまい、 どうしても綺麗なものにはならなかったです。 フレームアクションとASファイルとのソースの違いは、これから 勉強していきたいと思いますが、個人的にご教授願いたいくらい です。 とりあえず今から、ソースの解読をしていきたいと思います。