GDevelop | katakuriko https://katakuriko.site Thu, 17 Jul 2025 01:47:31 +0000 ja hourly 1 https://wordpress.org/?v=7.0 https://katakuriko.site/wp-content/uploads/cropped-HlaHRV-32x32.png GDevelop | katakuriko https://katakuriko.site 32 32 GDevelop 覚えておきたい機能1 https://katakuriko.site/eventgorup/ Sun, 05 Feb 2023 06:11:06 +0000 https://katakuriko.site/?p=877 GDevelopの覚えておくと便利な機能を紹介します。
複数のイベントをイベントグループにまとめる場合、皆さんどうしますか?
私はイベントグループを作成し、1つ1つイベントを移動させていました。
私と同じことをされていた方は是非、右クリックメニューの「イベントをグループ内に移動」を使ってください。下のGIFを見て貰えば一目瞭然ですが、めちゃくちゃ便利です!!

]]>
TowerDefenceでよくあるUI https://katakuriko.site/tower-defence-ui/ Sun, 17 Apr 2022 02:05:17 +0000 https://katakuriko.site/?p=421 よくありますよね。TowerDefenceじゃなくても使うと思いますので参考にしてもらえればです。
今回は3つのパターンを紹介します。1から順に説明しますので1から見ていってください。

1.キャラクターのみ

完成イメージなります。

まずは、オブジェクト、オブジェクトグループを作成します。
キャラクターを3つ「アセットストアを検索」で追加してください。”GreenBar”以降は2、3で使います。オブジェクトグループ“Characters”を作成、”KnightMale”、”ElfMale”、”WizardMale”を追加します。
そして、画面左上にキャラクターを3つ配置してください。

次は、キャラクター3つにオブジェクト変数を下記の通りに設定します。

画面上に配置したオブジェクトのインスタンス変数を変更します。
“CostはKnightMale=50、ElfMale=100、WizardMale=150
“UI”

イベントエディターは、下記の2行だけです。すごい簡単ですね。
1行目:クリックされたキャラクターのオブジェクト名を使って、「名前からオブジェクトを生成する」アクションを使うところがポイントです。
2行目:キャラクターを移動させます。ポイントは、UI変数が偽のキャラクターを絞り込み、キャラクターをX方向に移動させます。UIの条件を入れないと画面上の全キャラクターが移動するのた試してみてください。

2.キャラクター、Cooldownバー

2の完成イメージです。

画面上に”GreenBar”を配置し、全ての幅を同サイズにしてください。私は31にしました。
ポイント:キャラクタオブジェクトの当たり判定領域に重なるようにしてください。
:”GreenBar”のビヘイビアに”Tween”を追加してください。

イベントエディターはこんな感じです。赤枠部分が今回の追加箇所です。
ポイント:先ほど作成したイベントをイベントグループでまとめていたら、コピーしコピー元のイベントグループをコメントアウト(有効/無効を切替)しておくとバックアップになります。

1行目:キャラクターとGreenBarをオブジェクトクンクさせるための処理になります。
ポイント:「インスタンスごとに繰り返す」を使うことです。
2行目(条件):キャラクタが生成されたあと一定時間生成不可能にしています。
ポイント:”GreenBar”の幅でキャラクタが生成されたのか判断しているので最大幅値を設定する。
2行目(アクション):クリックされた時に、GreenBarを徐々に短くする処理になります。
ポイント:「インクされた全ての””を考慮」を使う。GreenBarのTweenビヘイビアで幅を0にする。Tweenの””ミリ秒かけての値を変更することで、キャラクター生成のCooldown時間を制御できます。私は、2000ミリ秒(2秒)にしました。
4行目:GreenBarのCooldownが完了したら元に戻す処理です。ここで幅31に戻すことでキャラクターが生成可能になります。

3.キャラクター、Cooldownバー、コスト

画面にゴールドとコスト表示のBBテキストを配置します。
ポイント:TextCostはキャラクターの当たり判定と重なるように配置します。オブジェクトインク対応です。

TextGoldのオブジェクト変数に、”Gold”を作成し300と設定します。

イベントエディターです。

1行目:TextCostをキャラクターとオブジェクトリンクさせ、各キャラクターのコストをテキストに表示しています。
2行目(条件):Goldが足りない場合に、キャラクター生成させないための条件を追加。
2行目(アクション):キャラクター生成した際に、Goldからコストを減算します。
5行目:各キャラクターが生成できるか、Goldとコストをチェックしています。生成できない場合は、”Sale”を偽にして、TextCostを赤字にします。
6行目:Goldテキストを自身のGoldオブジェクト変数で上書きします。
7行目:これはなくても良いのですが、CoinをクリックするとGoldが加算されます。動作検証ようですね。

これで以上です。どうだったでしょうか?
全体のポイントとしては、「オブジェクトリンク」だと思います。オブジェクトリンクを使わなくても実装できると思いますが、イベントエディターの行数がかなり増えると思います。
このやり方を覚えてしまえば、アクションの「イベントリ」を使うことでアイテムを選択し使用するUIも実装できます。また今後書きたいと思います。

]]>
ドロンとキャラクター切り替え!! https://katakuriko.site/change-character/ Sat, 09 Apr 2022 21:31:54 +0000 https://katakuriko.site/?p=396 今回のポイントはドロンですよね。これはパーティクルオブジェクトを使用しており、とても簡単です。
是非、他のパーティクルオブジェクトも確認した方が表現が広がると思います。


まずはキャラクターのスプライトオブジェクトをいくつか用意してください。

アセットストアを検索で、「カテゴリ」からParticlesを選択しEnergy Explosion追加します。

プロパティー設定はこんな感じです。

オブジェクトグループにPlayersを作成し、キャラクターのスプライトを登録します。
そして、シーン変数にキャラクター名の配列変数を作成します。

イベントは、3行ですね。

1行目:キャラクターとパーティクルを生成させています。事前に画面に配置しておけば不要です。
2行目:キャラクターを削除し、新キャラクターを生成しパーティクルを放出してますね。
パーティクルはON、OFFはなく。容量で制御します。
3行目:キャラクター配列変数のインデックスをぐるぐる回すために初期化しています。

どうだったでしょうか?単にキャラクターを切り替えた時に、パーティクルを放出してるだけですね。この簡単な処理で、キャラクター切り替えが豪華になります。ぜひ色々な場面でパーティクルを活用したいですね。

]]>
スライドインするメニューUIを簡単に作成!! https://katakuriko.site/slide-in-menu/ Mon, 04 Apr 2022 19:49:33 +0000 https://katakuriko.site/?p=103 いきなりですが、今回のポイントは下記の2点です。
1、Tween終了条件を使う。
2、Buttonオブジェクトが表示されている条件を使う。

オブジェクトはスプライトオブジェクト5つです。
Textオブジェクトはなくても良いです。
メニューは画面外に配置します。”MenuButtons”オブジェクトグループを作成しメニューに表示するボタンを登録します。(CloseButton、AButton、BButton)
MenuOutlineのビヘイビアにTweenを追加します。
各オブジェクトの「ポイントを編集」を調整してください。

イベントはこんな感じです。最終行はメニューボタンのクリック処理なので無視してもらって良いです。

では、解説です。

1行目は、メニューを画面外からスライドインさせます。TweenでX座標を移動します。ポイントは「MenuButtonは表示されている」条件です。これはMenuButtonが非表示でも「MouseX、YがMenuButton内部にある」と条件が反応してしまうため追加します。

2行目は、メニューを画面外にスライドアウトさせます。1行目とほぼ同じでCloseButtonは画面外に移動するので表示したままにします。

3行目は、MenuButtonを表示させます。ポイントはスラウドアウト(Close)させてるTweenが終了したらMenuButtonを表示させることです。

4行目は、MenuOutline上にあるオブジェクトを追従させる処理です。MenuOutlineの中心座標に追従させます。

どうでしょうか?簡単ですよね。毎回ですが解説になってないんじゃないかと思います。イベントを見ただけで何をしているかすぐわかるのもGDevelopの良さですよね。

]]>
HPバー表示!! https://katakuriko.site/enemy-hp-bar/ Sat, 02 Apr 2022 21:45:00 +0000 https://katakuriko.site/?p=281 今回は追従するHPバーを実装します。

まずは敵のオブジェクトを複数用意し、”Enemys”オブジェクトグループに追加します。
そして、HPバーを用意します。敵オブジェクトに”Health”と”Flash”のビヘイビアを追加してください。
その他のオブジェクトは、敵を攻撃するためにBullet、WizardMale、GreenMagicStaffを登録してますが必要ないので無視してください。

イベントはこんな感じになります。赤枠の5行がHPバーに関するところです。その他は敵の移動、死んだ時の処理になるので無視してもらって良いです。

では、解説です。
まず1行目のシーンが始まったら”HPScale”シーン変数を作ります。
2行目は、2秒間隔で敵を出現させます。このポイントは2点。
・RedBarの幅にオブジェクトのHP×HPScaleを代入させる。
・EnemysとRedBarをオブジェクトリンクさせる。
3行目は、Enemysが攻撃を受けた処理になります。
このポイントは、Enemysのインスタンスごとに繰り返すことです。インスタンスごとに処理を行わないと全てのRedBarの横幅が変更されてしまいます。
4行目は、HPバーを敵に追従する処理です。
このポイントもEnemysのインスタンスごとに繰り返すです。

どうでしょうか?解説していないように思ってしまうのですが、それほど簡単ということだと思います。 要するに、リンクオブジェクト、Enemysのインスタンスごとに繰り返す が重要になります。
是非みなさんも試してください。

]]>
弾幕。ショットパターン。 https://katakuriko.site/shotpattern/ Thu, 31 Mar 2022 19:28:50 +0000 https://katakuriko.site/?p=184 シューティングゲームのショットパターンを実装してみました。あまりシューティングをやらないのでパターンがどのくらいあるかわからないのでググりました。すべて簡単に実装できました。シューティングに限らず様々なゲームで使えると思うので参考にしてもらえると嬉しいです。これで花火のゲームとか作れそうだな・・・


まずはスプライトオブジェクトを用意し、「ポイントを編集」で5つの発射ポイント(Fire)を作成します。ビヘイビアに「FireBullet」を設定します。もう1つ弾のスプライトオブジェクトを用意しビヘイビアに標準の「画面外で破棄」を設定します。

プログラムは下記の通りです。Numキーとショットパターンを一致させてます。

1、ノーマルショット

まず基本のFireBulletで球を発射します。発射角度が戦闘機の向きによって変わります。私の使用したスプライトは上向きのスプライトなので、「スプライトの角度+270度」としています。

2、ツインショット

発射元座標をFire1ポイントから7ピクセルずらして発射させます。

3、トリプルショット

発射元座標をFire1、2、5ポイントから発射。

4、ファイブショット

発射元座標をFire1、2、3、4、5ポイントから発射。

5、3Wayショット

発射角度を30度ずらして発射。

6、ばら撒きショット

発射角度を250から290の範囲でランダムに加算させます。
RandomInRange(250,290)
「数学的ツール」の「指定範囲内でランダムな整数」で設定できます。

7、サークルショット

36回繰り返しさせて、用意した変数(hoge)に10度づつ加算して発射させます。

8、スパイラルショット

これは、「TimeDelta()*250」がポイントになります。TimeDeltaについては公式wikiを参照してください。250の値はFireBulletのCooldown設定値によって調整が必要になります。

https://wiki.gdevelop.io/gdevelop5/events#timedelta

紹介した内容を使ってシューティングゲームを作成したのでぜひ遊んでみてください。

]]>
カッコイイUI-Part1 https://katakuriko.site/cool-ui-part1/ Wed, 30 Mar 2022 12:51:21 +0000 https://katakuriko.site/?p=278 今回はプレイヤーの周りに武器を回転させながら表示させます!!ただ回転して表示するだけですが、これだけでワクワクしますよね。実装は簡単なので是非試してください。


イベント全体で、5行になります。ポイントは武器をオブジェクトグループ”Weapon”にまとめ、TimeDelta()で角度、移動距離をジワジワ加算してるとこです。

まず、スプライトオブジェクトをアセットストアの「16X16 Dungeon Tileset」の「Weapons」カテゴリーから好きなものを8個選んでください。オブジェクトグループに「Weapon」を追加し、武器オブジェクトを全て追加します。そして、画面に適当に配置してください。これだけでもワクワクが・・・

それぞれの武器のオブジェクト変数の編集から「DispAngle」を追加し-45、45、90、135、180、225、270、360と値を設定してください。

KninghtMaleオブジェクトにTopDownMovementビヘイビアを追加し、「オブジェクトを回転する」のチェックを外します。

いよいよ、イベントです。
まずは兵士、武器を整えますが、事前にオブジェクトの大きさ、武器を非表示に設定しておけばこれは不要です。私は後々調整できるようにイベントでやっています。本当は8個の武器を調整するのが面倒なので・・・

ここがメインです。Weaponオブジェクトグループを「指定オブジェクトを基準に配置する」アクションで回転させながら移動させます。角度と距離は、TimeDelta()で少しずつ加算していきます。100、200は好きなように調整してください。解説しないでもわかりますよね。
角度 Weapon.Variable(DispAngle)+Weapon.Variable(AddAngle)
距離 KnightMale.Variable(WeaponDistance)

最後は、wキーを放した時に各オブジェクト変数を初期化し、武器オブジェクトを非表示にします。

これで、完成です。プレビューしてみてください。どうですか?表示されましたか?
矢印キーで兵士を動かしながら表示してください。武器がついてきますよね!!テンション上がったでしょうか?
今回はここまでです。これにエフェクトをつけたり、wキーを1回押した時に表示するとか色々改良できるのでまた書きたいと思います。

]]>
簡単にホーミングミサイル発射!! https://katakuriko.site/homing-missile/ Sun, 27 Mar 2022 19:28:19 +0000 https://katakuriko.site/?p=204 GDevelopの拡張機能「HomingProjectile」を使用したホーミングミサイル発射です。とても簡単で3行で実装できます。


・プロジェクトマネージェーで「HomingProjectile」ビヘイビアを追加

・下表のオブジェクトを追加します。スプライトはなんでも良いです。

オブジェクト名種類アセット検索
Playerスプライトblue player
Missileスプライトmissile
EnemyスプライトBlack Enemy

・イベントエディターで下記の3行を追加します。

1行目:HomingMissileを生成し、Lock projectileでMissileとEnemyを紐づけます。
2行目:HomingMissileがEnemyを追跡するアクションです。パラメータで追跡軌道を変えられます。
3行目:MissileがEnemyに衝突し削除されます。
Lock projectileMove projectile towards targetアクションは「その他のアクション」タブにあるので注意してください

・これで完成です。どうですかすごい簡単じゃないですか?拡張機能「HomingProjectile」は素晴らしいですね。

↓もう少し発展させ、レーダーでEnemyを見つけたら発射するものです。

このホーミングを使ったシューティングゲームを作成したのでぜひ遊んでみてください。

]]>
敵を簡単に動かす!! https://katakuriko.site/enemy-move/ Wed, 23 Mar 2022 12:08:53 +0000 https://katakuriko.site/?p=52 敵を色々なパターンで動かしたくなりますよね!今回はSineMovement拡張機能を使って色々なパターンを実装していきます。これ、すごい簡単で動作以外にも使えるのでぜったり習得しておいた方がいいです。パラメータがどう作用するかちゃんと理解すれば難しくありません!!

1、まず、プロジェクトマネージャーから「新しい拡張機能を検索」でSineMovementをインストールします。

2、そしたら、敵のスプライトオブジェクトを用意し、ビヘイビアにSineMovementを追加。設定値はデフォルト値でいいです。

2、画面の中央ぐらいに敵オブジェクトを配置します。

3、プレビューしてください。 どうですか?滑らかに左右に動いてますよね。下のGIFはつなぎ目がズレてるので止まりますが・・・

要するにSine波を使って動かしてるんですね。「Sine波 シューティング 敵」とググると仕組みを解説されているサイトがいくつかありますのでみて下さい。これをプログラムで実装するにはそれなりの行数になります。GDevelopってすごいですよね。プログラムを1行も描いてません。

4、ここから色々なパターンを作成していきますが、まずSineMovementのパラーメーターを理解しましょう。ここでポイントなのが敵オブジェクトを 画面に配置 した場合、CenterX,Yは配置されたX,Y座標になります。逆にイベントでSineMovementのCenterX,Yを設定するとオブジェクトも移動します。オブジェクト生成時に注意が必要です。

パラメータ
CenterX0
CenterY0
Horizontal Distance100
Horizontal Speed60
Vertical Distance0
Vertical Speed60

5、パターンを作成するために、敵オブジェクトのオブジェクト変数に「id」を追加

6、画面上にそれぞれの敵オブジェクトを配置してインスタンス変数のidに1、2、3と設定します。

7、イベントエディタに移動しこんな感じのイベントを書きます。

8、プレビューしましょう!垂直、水平、円の動きを繰り返しますよね。これが基本的な動きになります。

9、さらにid 1と2に 「オブジェクトを移動する(X軸とY軸)」イベントを追加しましょう。

10、どうでしょう?波のように移動していきましたよね。このように SineMovement拡張機能とフォースによる移動を組み合わせることで色々なパターンが作成できます。あとは敵オブジェクトにビヘイビアに「画面外で破棄」拡張機能も追加して、タイマーで一定時間に敵オブジェクトを生成すればOKです。

どうだったでしょうか?とても簡単だったと思います。これでシューティングゲームを作成したのでぜひ遊んでみてください。

]]>
レーダーホーミングミサイル発射!! https://katakuriko.site/homing-missile-2/ Wed, 23 Mar 2022 03:37:42 +0000 https://katakuriko.site/?p=33
・プロジェクトマネージェーで「HomingProjectile」ビヘイビアを追加

・下表のオブジェクトを追加します。スプライトはなんでも良いです。
Raderシェイプペインターはプロパティで、塗り潰し不透明度を0枠線のサイズを3にしてください。

オブジェクト種類アセットストア検索オブジェクト変数ビヘイビア
Playerスプライトblue player
Raderシェイプ
ペインタ
Radius[数値]
初期値:0
Tween
Missileスプライトmissile
EnemyスプライトBlack EnemyLock[真偽値]
初期値:偽

・各オブジェクトの「ポイントを編集」で編集します。

・Enemyオブジェクトの「衝突マスクを編集」>「カスタム衝突マスクを使用する」で頂点を追加して縁をなぞります。

・画面にオブジェクトを配置し、RaderオブジェクトのXY座標を0にしてください。

・イベントエディターで下記の7行を作成します。ポイントは、4-1行目でEnemyをインスタンスごとにループさせ、Missileを生成することです。以下解説していきます。

1行目:Spaceキーを放したら、Raderオブジェクトの「オブジェクト変数Tween」で0から300の値まで2秒かけて変化させていきます。
2行目:Randerオブジェクトに、Playerを中心に円を描きます。半径は1行目の変数を使うことで徐々に円が大きくなっていきます。
3行目:RaderとEnemyが衝突した際に、Enemyの色合いを赤に変更し、オブジェクト変数Lockを真に変更。
4行目:Randerの”RaderRadius”Tweenが再生終了した時に、Tweenを削除し、Radius値を0にします。これによりRader終了時に1度だけアクションが実行されます。
4ー1行目:EnemyのLockが真のインスタンスごとにループさせ、Missileインスタンスを生成します。MissileはわざとPlayerの後方から発射させ軌道が弧になるようにしています。今回はMissileのスケール、角度に調整が必要でしたが、事前にスプライトを調整しておけば不要です。
5行目:MissileがEnemyを追跡するアクションです。各種パラメータ値を変更することで軌道が変わります。
6行目:MissileがEnemyに衝突し、インスタンスが削除されます。

・プレビューして動作確認です。Spaceキーを押すとRaderが出現した後にMissileが発射されると思います。

以上です。

このレーザーホーミングミサイルを使ったゲームを公開してますので是非遊んでください。

]]>