【PlayCanvas】オブジェクトを移動させよう!【RigidBody】

福田です!今回はRigidBodyを使ったオブジェクト移動について書いていきます!
1.RigidBodyコンポーネントの概要
RigidBodyは、物理シミュレーションにおいてオブジェクトの動きを制御するためのコンポーネントです。これにより、重力や衝突などの物理現象をシミュレートすることができます!
今回はプロジェクトの作成からやっていきましょう!
2.プロジェクトのセットアップ
まず、PlayCanvasのプロジェクトを作成し、必要なアセットをインポートします。次に、シーンにオブジェクトを追加し、RigidBodyコンポーネントを設定します。
2.1 オブジェクトの追加
- PlayCanvasエディタを開き、新しいプロジェクトを作成します。
- シーンに新しいエンティティを追加し、名前を「MovingObject」に変更します。
- 「MovingObject」にモデルコンポーネントを追加し、適当な3Dモデルを設定します。
2.2 RigidBodyコンポーネントの追加
- 「MovingObject」を選択し、右側のプロパティパネルで「Add Component」ボタンをクリックします。
- 「RigidBody」を選択し、タイプを「Dynamic」に設定します。
- 同様に、「Collision」コンポーネントを追加し、形状を「Box」などに設定します。
3. スクリプトの作成
次に、オブジェクトを移動させるためのスクリプトを作成します。以下のコードは、キーボード入力に応じてオブジェクトを移動させる例です。
3.1 スクリプトの追加
- 「Scripts」フォルダを作成し、新しいスクリプトファイルを追加します。名前を「moveObject.js」にします。
- 以下のコードを「moveObject.js」に追加します。
var MoveObject = pc.createScript('moveObject');
// 初期化
MoveObject.prototype.initialize = function() {
this.force = new pc.Vec3();
};
// 更新
MoveObject.prototype.update = function(dt) {
var app = this.app;
var force = this.force;
// キーボード入力のチェック
force.set(0, 0, 0);
if (app.keyboard.isPressed(pc.KEY_LEFT)) {
force.x = -10;
}
if (app.keyboard.isPressed(pc.KEY_RIGHT)) {
force.x = 10;
}
if (app.keyboard.isPressed(pc.KEY_UP)) {
force.z = -10;
}
if (app.keyboard.isPressed(pc.KEY_DOWN)) {
force.z = 10;
}
// 力を加える
this.entity.rigidbody.applyForce(force);
};
3.2 スクリプトの適用
- 「MovingObject」を選択し、右側のプロパティパネルで「Add Component」ボタンをクリックします。
- 「Script」を選択し、「moveObject」スクリプトを追加します。
4. 実行と確認
すべての設定が完了したら、シーンを実行してオブジェクトがキーボード入力に応じて移動することを確認します。矢印キーを使用して「MovingObject」を移動させることができます。
まとめ
この記事では、PlayCanvasを使用してRigidBodyコンポーネントを利用したオブジェクトの移動方法について説明しました。RigidBodyを使用することで、物理シミュレーションを簡単に実装でき、よりリアルな動きを表現することができます。ぜひ、さまざまなシーンで試してみてください。
福田でした!
現在シェルパグループでは、一緒に働く仲間を募集中!
建築パース、3DCG、UnrealEngine、Unity、プログラミングに興味のある方は
是非リクルートサイトをご覧ください!
■リアルな3DCG制作の仕事をしたい方必見!
https://sherpa-recruit.jp/









