“Ability proceeds from a fusion of skills, knowledge, understanding and imagination, consolidated by experience.”
MICHAEL KLARKE
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce ornare porttitor ipsum a mollis. Pellentesque sagittis enim ac libero luctus, at vulputate ante lobortis. Praesent lacinia, leo sit amet congue malesuada.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor ins.
RECENT ARTCLES
lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua ets unsers.
babylon.js ステップ9 カメラとメッシュの衝突判定&重力 (Cameras, Mesh Collisions and Gravity)
babylon.js を覚えようステップ9は衝突判定と重力制御です! いやー、重力とか楽しそうですね。 メッシュだけでなく、カメラにも設定できるようです。 いきましょう!! 説明 1.重力の設定 2.楕円体を定義する 衝突を適用する(Apply collision) メッシュオブジェクトとメッシュオブジェクトの衝突 ArcRotateCameraでの衝突 まとめ 説明 FPS(First Person Shooter)ゲームをプレイしたことがありますか?この回では、そのFPS的なカメラの動きをシミュレートします。カメラは床にあり、地面と衝突しており、シーン内のオブジェクトと衝突している可能性がありますねでは、このFPS的な設定をしていきましょう! 1.重力の設定 シーンにグラビティ(重力)ベクトルをVector3型で設定します。 scene.gravity = new BABYLON.Vector3(0, -9.81, 0); 古典的には、yに重力加速度9.8を下向き(負)に設定すると良いです。カメラへの適用は、applyGravityプロパティをtrue設定します camera.applyGravity = true; 2.楕円体を定義する 次の重要なステップは、カメラの周りに楕円体を定義することらしいです。この楕円体はプレーヤーの幅(プレイヤーサイズ)を表します。外部のメッシュがこの楕円体に接触すると衝突イベントが発生し、カメラがこのメッシュに近づきすぎないようにすることで、カメラがメッシュにめり込まないようにします。 babylon.jsカメラの楕円体プロパティのデフォルトはサイズ(0.5、1、0.5)ですが、値を変更すると、調整された軸に応じて、背が高く、大きく、小さく、薄くなります。次の例では、カメラの楕円体をデフォルトの楕円体よりも少し大きくします。 //カメラの周りに楕円を定義 (e.g. your [...]
babylon.js ステップ8 アニメーション(Animations)
babylon.js でのステップも8個目!!今回はアニメーションです!アニメーションは、メッシュに動きを与えて見栄えがするシーンを作成出来ます。いきましょう! アニメーションの2つの方法 キーフレームアニメーション アニメーションを止める方法 終了を待って同期処理をする CreateAndStartAnimation関数 アニメーションのブレンド アニメーションの重みを設定してブレンド イージング機能 複雑なアニメーション まとめ アニメーションの2つの方法 アニメーション方法には2つあります。 予めアニメーションの動きのキーフレームを定義する方法 実行時にアニメーションを適用されるようにプロパティを随時変更する方法 キーフレームアニメーション まず環境を作りますシーン、ライト、カメラを設定してから、箱を一個置いてみます。 function createScene() { //Here... your basic scene as before: [scene, light, camera] //Create a box var box1 [...]
babylon.js ステップ7 ライティング
babylon.js ステップ7 ライティングです。3D表現はライティングが無いと始まりません。ライディングの無い空間はただの暗黒です。暗黒の空間に一条の光として、ライトを設置します。ライトと言っても、太陽のような環境光もあります。いきましょう! ライトの種類 4種類のライトあります ポイントライト(Point Light) 指向性ライト(Directional Light) スポットライト(Spot LIghe) 半球ライト(HemiLight) ポイントライト/点光源(Point Light) ポイントライトは、ワールドスペース内の一意のポイント(点)にから発光されるライトです。光はこのポイントからあらゆる方向に放出されます。ポイントライトの分かりやすい例は、裸電球です。ちょっと上(y軸を多め)に置くとメッシュ全体を照らせます。 var light = new BABYLON.PointLight("pointLight", new BABYLON.Vector3(1, 10, 1), scene); 例はこちら https://www.babylonjs-playground.com/#20OAV9 指向性ライト/平行光源(Directional Light) 指向性ライト/平行光源は、方向によって定義される特殊な光です。光は、指定された方向のあらゆる場所から放出され、無限の範囲を持ちます。指向性ライトの例としては、太陽からの十分に遠い惑星があったとしてその惑星に対して、並行な光が降り注ぐと思うのですが、そんな感じです。下方向に光を当てると、オブジェクトの上部が明るくなります。 var light = new BABYLON.DirectionalLight("DirectionalLight", new [...]
babylon.js ステップ6 カメラ
babylon.jsにはよく使われる2つのカメラがあります。一つは1人称視点のユニバーサルカメラ(the Universal Camera)、もう一つはアークカメラ(Arc Rotate Camera)です。 まずカメラのコントロールを可能にしましょう camera.attachControl(canvas, true); ユニバーサルカメラ Universal Camera ユニバーサルカメラはキーボード、タッチ、ゲームパッドに対応したカメラです。これはFreeCamera,Touch Camera, Gamepad Cameraの上位互換です。ユニバーサルカメラを使うとFPSっぽい一人称視点を得られます。それぞれの入力方法のデフォルト設定は次の通り キーボード・・・上下左右キー マウス・・・視点を回転 タッチ操作・・・上下左右にスワイプ ゲームパッド・・・デバイス次第 コード // Parameters : name, position, scene var camera = new BABYLON.UniversalCamera("UniversalCamera", new BABYLON.Vector3(0, 0, -10), [...]
babylon.js ステップ5 マテリアル
マテリアルを使用すると、メッシュを色とテクスチャで覆うことができます。なお、メッシュを表示するには光が必要です。拡散マテリアル(Diffuse)と鏡面マテリアル(Specular)では、光源を作成する必要があります。いきましょう! 色 まずは、StandardMaterialでいきます。 var myMaterial = new BABYLON.StandardMaterial("myMaterial", scene); myMaterial.diffuseColor = new BABYLON.Color3(1, 0, 1); myMaterial.specularColor = new BABYLON.Color3(0.5, 0.6, 0.87); myMaterial.emissiveColor = new BABYLON.Color3(1, 1, 1); myMaterial.ambientColor = new BABYLON.Color3(0.23, 0.98, 0.53); mesh.material = [...]
babylon.js ステップ4 位置、回転、スケーリング
babylon.js やってみようシリーズのステップ4位置、回転、スケーリングのお話です 位置の話 babylon.jsには2つの座標系があります ワールド座標系 ローカル座標系 ワールド座標系 ワールド座標系の原点は変わりません。通常、メッシュが作成されると、その中心はワールド軸の原点に配置されます。移動しても、ワールド座標系はそのワールドの中心(原点)を元に判断されます ローカル座標系 ローカル軸はメッシュの場所によって動きます。でもローカル軸の原点は、ワールド座標における位置に関係なく、常にメッシュの作成された中心にあります。 初期状態 ワールド座標とローカル座標は一致しますがメッシュが動くとズレることになります。 配置 mesh(メッシュ)に対して positionで位置を設定出来ます mesh.position = new BABYLON.Vector3(2, 3, 4); 例えばワールド軸にしたがって、2,3,4の位置に配置しますこの意味は obj.position.x = 2; obj.position.y = 3; obj.position.z = 4; です。赤がX軸、緑の線がY軸、青がZ軸 回転 meshに対して rotationで回転させることが出来ます [...]