- チュートリアル -
ダウンロードして解凍した「PsychoVision3D\bg.html」ファイルを開きます。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PsychoVision3D</title> <script type="text/javascript" src="lib/Vector3D.js"></script> <script type="text/javascript" src="lib/Matrix3D.js"></script> <script type="text/javascript" src="lib/PsychoVision3D.js"></script> <script type="text/javascript" src="lib/Sprite2D.js"></script> <script type="text/javascript" src="lib/Model3D.js"></script> <script type="text/javascript" src="lib/BoneModel3D.js"></script> <script type="text/javascript" src="lib/Material.js"></script> <script type="text/javascript" src="models/Character.js"></script> <script type="text/javascript" src="models/Ground.js"></script> <script type="text/javascript"> var _model; var _bg; var _mouse = false; function beginWebGL() { _model = new Character(); _bg = new Ground(); } function drawWebGL() { var pos = _model.getPos(); if ( _mouse ) { pos = _model.forward(400); } else { _model.addRotateY(100); } if ( _bg.intersect(pos,new Vector3D(0,-1,0)) ) { _model._pos.x = pos.x; _model._pos.y = pos.y - _bg._distance + 50; _model._pos.z = pos.z; } _eye = _model.posPlus(600,300,600); _lookAt = _model.posPlus(0,150,0); _mvMatrix.lookAtCamera( _eye, _lookAt, new Vector3D(0,1,0)); _model.draw(); _bg.draw(); } function onMouseDown(event) { _mouse = true; _model.playAnimation(1,true,false); } function onMouseUp(event) { _mouse = false; _model.playAnimation(0,true,false); } function onMouseMove(event) { } function onKeyDown(event) { } function onKeyUp(event) { } </script> </head> <body onload="initWebGL();"> <canvas id="PsychoVision3D-Canvas" width="728" height="550"></canvas> </body> </html>
「beginWebGL」関数で初期化のコードを記述します。
「drawWebGL」関数が毎フレーム呼ばれるので「_model」を移動や描画したりします。
「pos = _model.forward(400);」で_modelを前進させて、その座標をposに返します。
「_bg.intersect(pos,[0,-1,0])」でposから真下にレイを飛ばして_bgの地面が交差するか判定します。
「_eye = _model.posPlus(600,300,600);」でモデルの位置に(x,y,z)を加算したベクトルをカメラ視点「_eye」に代入します。
Firefox等のブラウザで「PsychoVision3D\bg.html」を開いて、キャラクターがアニメーションするか確認してください。