Home -> PHP/ming 0.3a MENU
コンバータ・テスト3D
Last modified: 2004/3/22
<<マウスを動かすと回転します。>>
obj2draw3d.phpを改良しました。
面(m.setFace)が4点の場合でも表示されるようにしました。2004/3/22
「draw3d.as」を使うためのコンバータ(obj2draw3d.php)をPHPで作り、メタセコイヤで作ったOBJファイルをコンバートしたテストSWFです。
コンバータ(obj2draw3d.php)は、Macromedia Flash MX or 2004でも使えると思います。
ヨットらしきものは、メタセコイアで「面の生成」->「三角」で作りました。
OBJファイルは3点だけの面表示ですので、「三角面」で作っていかないと穴があいてしまいます。
使い方 :
obj2draw3d.phpの13行目の
$fp = fopen("yacht.obj", "r" ); の"yacht.obj"を変換したい.OBJファイル名に書き換える。
そして
#>php obj2draw3d.php > hoge.as
でhoge.asに変換されたデータができあがります。
次に、テキストエデタで、hoge.asの一番下の「m = new Draw3D (XX , XX);」を削除して一番上に移動させる。
あとは、draw3d.asと同じように
// get as from external file(s)
$strAction = join("", file("hoge.as"));
// add actionscript to movie
$movie->add(new SWFAction(str_replace("\r", "", $strAction)));
と書いて、ming 0.3aから呼び出すようにします。
ポリゴン数が多いと動きが鈍くなりますので、ほどほどの数でご使用ください。
/////////////////////// test3d.php ///////////////////////
<?
ming_setScale(20.00000000);
ming_useswfversion(6);
$movie = new SWFMovie();
$movie->setDimension(400,400);
$movie->setBackground(0xff, 0xff, 0xff );
$movie->setRate(31);
// get as from external file(s)
$strAction = join("", file("draw3d.as"));
// add actionscript to movie
$movie->add(new SWFAction(str_replace("\r", "", $strAction)));
// get as from external file(s)
$strAction = join("", file("hoge.as"));
// add actionscript to movie
$movie->add(new SWFAction(str_replace("\r", "", $strAction)));
///// mx actionscript /////
$strAction = "
theta = 0;
m.scene.onEnterFrame = function () {
with (_root) {
my = ((m.scene._ymouse) / 190);
m.clearTransform();
m.rotateZ (0);
m.rotateY (theta);
m.rotateX (my*180*0.0174);
m.applyPerspective (500);
theta += 0.02;
if (theta > 6.282) theta -= 6.282;
m.render ();
}
};
";
$movie->add(new SWFAction(str_replace("\r", "", $strAction)));
$movie->save("test3d.swf");
?>
//////////////////////////////////////////////