Cocos Creator で コンベアを作る

Uncategorized
1.1k words

こんなの作ります。

こちら から実際に動かせます。

環境

Cocos Creator 2.4.3

作成手順

3Dモデルを作る

Blender で角と直線の 3Dモデル を作ります。今回は メッシュ だけで テクスチャ はありません。

3Dモデル

3Dモデル

3Dモデル が出来たら FBX形式 でエクスポートします。

FBX形式エクスポート

Cocos Creator に FBX形式の3Dモデル をインポートします。

ファイルを掴んでドラッグすると、インポートする事が出来ます。

3Dモデルインポート

3Dモデル をインポートするとこんな感じになります。

3Dモデルインポート

Cocos Creator の設定を変更する

設定を 3Dモード に変更します。

3Dモード

シーンを作成する

始める前に、一度シーンを保存しておきます。

「Ctrl」+「S」を押して、assetsフォルダ内であることを確認してから ファイル名 を入力し、保存ボタンでシーンを保存できます。

シーン保存

3D制作用のテンプレートを追加する

まず「Node Tree」の Canvas を選択してから右クリックをして「Create」>「Create 3D Node」>「3D Stage」の順で選択して、3D制作用のテンプレートオブジェクトを追加します。

テンプレートオブジェクト追加

このように「New 3D Stage」が作られて、その中に「3D Camera」「New Directional Light」「New Ambient Light」「New Box」が出来上がります。

テンプレートオブジェクト追加

「New Box」は使わないので New Box を選択して「Delete」キーで削除しておきます。

床を作る

New 3D Stage を選択し右クリックから「Create」>「Create 3D Node」>「Plane」の順で選択します。

Plane 追加

そうすると、平らなオブジェクトが追加されます。

オブジェクト追加

カメラを動かす

今のままだと、カメラとオブジェクトが平行に配置されているため、実行画面には全く見えません。

カメラ確認

なので、カメラを上方向に動かして見下ろす感じにします。

まず、カメラのロックを解除してカメラを動かせるようにします。

カメラロック解除

ひとまず「Position」と「Rotation」をいじってみました。

カメラ位置変更

実行してみるとこんな感じに見えると思います。

動作確認

背景色を変える

黒い背景だと嫌なので、背景色を変えます。

Node Tree の 3D Camera を選択してから「Background Color」を変えて、ClearFlags の「Color」にチェックを入れると、背景色を設定する事が出来ます。

Background Color 設定

床の色を変える

床の色も変えましょう。

最初は無地の DefaultMaterial が設定されているので、着色したマテリアルを作って、付け替えます。

DefaultMaterial

assets を選択してから右クリックで「Create」>「Material」の順で選択して、新しいマテリアル を作成します。

マテリアル作成

新しく作ったマテリアルを選択して、Effect を「builtin-phong」に変更します。

そうすると diffuseColor が変更できるようになるので、床にしたい色を設定し「Apply」で確定します。

マテリアル設定

最後に、今作ったマテリアルを 床のマテリアルにドラッグして、変更完了です。

マテリアル設定

落ちるブロックを作る

3D空間に重力を設定して、落ちるブロックを作成します。

まず、落ちるブロックを作ってプレハブ化します。プレハブ化すると、同じオブジェクトを再利用することが出来ます。

Canvas に Box を置いて、その Box を assets にドラッグするとプレハブ化することが出来ます。

プレハブ化

次にスクリプトを書くため、assets に TypeScriptファイル を追加します。

TypeScriptファイル追加

作ったスクリプトファイルに下記ソースを貼り付けます。

1
2
3
4
5
6
7
8
const { ccclass, property } = cc._decorator;
@ccclass
export default class NewScript extends cc.Component {
start() {
// 物理システムを有効にする.
cc.director.getPhysics3DManager().enabled = true;
}
}

ブロックが重力の影響を受けるようにする

ブロックに Rigid Body 3D を設定すると、重力の影響を受けるようになります。

Rigid Body 3D 設定

実行すると、ブロックがひたすら落ちていきます。

コンベアを作る

Blender で作った 3Dモデル に当たり判定を付けていきます。

流れる部分と壁に BoxCollider3D を付けて行きます。

BoxCollider3D 設定

実行すると、このようにブロックがすり抜けなくなります。

BoxCollider3D 設定後

あとは、同じ感じで作っていけば完成です。

おわりに

ソースコードを Github に上げたので、参考にどうぞ。

https://github.com/noitaro/cocos-creator-conveyor