FPS(ファーストパーソンシューティング)のチュートリアル Vol.1

2024年3月28日木曜日

GDevelop Tutorial

X f B! P L

はじめに

GDevelopに3D作成機能が本格実装されたのは2023年5月19日のv5.1.162からです。
Release 5.1.162 · 4ian/GDevelop

Release 5.1.162 · 4ian/GDevelop

🎁 Create 3D games with GDevelop You can now create 3D games with GDevelop: from classic 2D games with 3D elements to full 3D games. This is only the beginning, and many more game engine and editor ...


それまでも擬似的な3Dゲームは作成できましたが、フル3Dを作成できるようになったのはこのバージョンからです。
まだ実装から1年未満(執筆時の2024年3月18日時点で)の比較的新しい機能で、現在もアップデートのたびに改善が続いている発展途上の機能です。
それでも、クラッシックな3Dゲームを作成するにはじゅうぶんな機能はすでに揃っています。

3Dゲーム作成機能は、いち早くPANDAKOさんが拡張機能として公開していました。
undefined

WithThreeJS Extension for GDevelop by PANDAKO

Extension for GDevelop to create simple 3D scenes.

現在も3D機能周囲のアップデートにはPANDAKOさんが貢献しており、アップデートのContributors(貢献者)にそのお名前が記載されています。

PANDAKOさんは、3D機能以外にも「Mouse pointer lock」や「Online Multiplayer Extension」や日本語への翻訳サポートなどさまざまな形で貢献なさっていて、日本人唯一のGDevelop公認アドボケイトです。
GDevelop 無料ゲーム制作ツールを使い倒す Blog

GDevelop 無料ゲーム制作ツールを使い倒す Blog

GDevelop はオープンソースでクロスプラットフォームなゲームエンジンです。 なお、このブログは GDevelop が好きなだけの全然無関係の人が勝手に書いてる非公式サイトです🤤

私もPANDAKOさんにはGDevelop公式Discordでお世話になっています。

そんなPANDAKOさんが玄人向けに技術サポートをする一方、私はビギナーさん向けに今回3D機能のサポートをしていきたいとおもいます。

1.オブジェクトの作成

というわけでGDevelopの3D機能をご紹介していきます。
まず最初に、プレイヤーとなるオブジェクトを作成しましょう。

オブジェクトには『3Dボックス』を使用します。

つぎは、床、壁、天井に使う3Dボックスを作成します。

今回使用するオブジェクトは以上です。

2.拡張機能の追加

今回使用する拡張機能は4つです。
以下の拡張機能を追加します。
  1. Walk3D:移動用のエクステンション
  2. Jump3D:ジャンプ用のエクステンション
  3. FirstPersonCamera:1人称カメラ用のエクステンション
  4. MousePointerLock:視点移動用のエクステンション





Playerのビヘイビアに、Walk3DとJump3Dを追加します。

3.ベースシステム

ここからはイベントを編集していきます。
イベントエディタを開いて最初のイベントを追加します。
Escキーを使ってゲームを終了させることができるようにします。
 Escape キーを離した   ゲームを終了する 

拡張機能「MousePointerLock」によってマウス操作による視点の移動を可能にするイベントを作成します。
まず、MousePointerLockを有効にするイベントを作成します。

・条件
 (反転)The mouse pointer is locked 
 マウスの Left ボタンを離した直後 
・アクション
 Request Pointer Lock 

つぎに、マウスの動きによって視点を動かすイベントを作成します
・条件
 The mouse pointer is locked 
・アクション
 Player の角度を変更する: MousePointerLock::MovementX()/20加算 
 Player のY軸上の回転を変更する: MousePointerLock::MovementY()/20加算 

数式エディタでマウスのX軸の動きの式を呼び出し、20で割ります。
Y軸の動きも同様に20で割ります。

角度は左右、Y軸上の回転は上下の視点移動になります。

今はまだカメラの視点はトップダウンの状態なので、Playerの視点に固定するイベントを追加します。
 - 無条件 -   Move the camera of ベースレイヤー to look through Player eyes 

視点が低いので高さをPlayerの深度に合わせて調整します。
 - 無条件 -   Z軸のカメラ座標を変更する: Player.Object3D::Depth()加算 

上下の視点移動で、一回転してしまうのを防ぐために上下90度で角度を制限します。
 - 無条件 -   Player のY軸上の回転を変更する: clamp(Player.Object3D::RotationY(),-90,90) を代入 


トップダウンやプラットフォーマー同様に、Playerが障害物を通り抜けないように分離します。
 - 無条件 -   Separate Player from platform Wall 


基本的なシステムは以上となります。

4.キーによる操作

w,s,a,dキー、またはUp,Down,Left,Rightキーを押したときに前後左右の移動をシミュレートさせます。
 Up キーを押している   Simulate pressing move forward key for Player 
これと同様に後と左右の移動もシミュレートさせます。

スペースキーを押したときにジャンプさせるイベントも追加します。
 Space キーを押している   Simulate pressing jump key for Player 

5.プロジェクトファイル

こちらから本チュートリアルで使用したプロジェクトファイルをダウンロードできます。

おわりに

今回、Vol.1ではここまでとなります。
このつづきをお読みになられたい場合は、ページ下部の5段階評価で高評価をおねがいします。

最後までお読みいただきありがとうございました😆
もしよろしければ下記のボタンから応援よろしくお願いします🙇



こちらの記事はいかがでしたか?
ぜひご評価をおねがいします🙏

プロフィール


My name is Cratier.
I'm an indie game developer.


Read more...

このブログを検索

Translate

UPDATE

最新コメント

人気の投稿

アーカイブ

リンク元ランキング

カテゴリー

アンケート



Q.クレイティアのGD覚書でお気に入りのコンテンツはどれですか?

チュートリアル
TIPS
RTA Develop
雑記
That's談
その他


Q.あなたのGDvelop使用歴はどれくらいですか?

1ヶ月未満
半年未満
1年未満
1年以上
2年以上
3年以上
4年以上
5年以上

オープンチャット

LINEアカウント

ご連絡フォーム、またはLINEから お問い合わせ、ご要望、ご指摘など、お気軽にご連絡くださいませ。

ご連絡

名前

メール *

メッセージ *

💗雑談CHAT💗
お気軽にお話しください🐹
同時接続人数:

もしよろしければ下記のボタンから応援よろしくお願いします🙇




QooQ