投稿

1月, 2021の投稿を表示しています

2段ジャンプできるようにする【プラットフォームキャラクタービヘイビア】

イメージ
GDevelop の「プラットフォームキャラクター」ビヘイビアを利用しているゲームで、2 段ジャンプをできるようにする方法を紹介します。 そもそもの「プラットフォームキャラクター」ビヘイビアを利用したゲームの作成方法は、チュートリアルなどを見てください🧐 動画で見るプラットフォーマーチュートリアル GDevelop Wiki プラットフォーマー チュートリアル このページでは、プラットフォーマーチュートリアルで作ったゲームをベースに、解説していきます。 なお、作成手順が見れる動画もあるので参考にしてください。 1. キャラクターに変数を追加する まずは「プラットフォームキャラクター」ビヘイビアを追加したオブジェクトに、空中でジャンプした回数を記憶するオブジェクト変数「ジャンプ回数」を作成します。 初期値は 0 にしておきましょう。 2. イベントを追加する 次に、2 段ジャンプを実現するために、以下のように 2 つ(2行)のイベントを追加します。 それだけで、2 段ジャンプができるようになります🎉 この画像のようにイベントのグループ機能を使うと、見やすくなるのでおすすめです。 なお、ここではイベントを先頭に追加していますが、ゲームによっては適切な位置に追加しなければ、正しく機能しないかもしれないので気を付けてください。 2 つのイベントと、その条件とアクションについては、以下で詳しく解説します。 解説:1 つめのイベントについて まずは 1 つめのイベントの条件について説明します。 このイベントは、2 段ジャンプを実行するためのイベントです。 条件「Player は落下中である」について これは、ジャンプの頂点を過ぎ、落下し始めてから 2 段目のジャンプができるようにするための条件です。 また、ジャンプではなく、足場から落ちたときにも有効(True)です。 なお、これを「Player はジャンプ中である」にしてしまうと、最初(地上から)のジャンプをした直後に条件をクリアーしてしまい、即 2 段目のジャンプが実行されてしまいます。 結果、まるで 2 段ジャンプが機能していないかのように見えてしまいます😱 条件「Space キーを押している」について Space(スペース)キーは、このゲームのジャンプキーです。 もちろん、違うキーをジャンプキーにしている場合は、こ

動画で見るプラットフォーマーチュートリアル

イメージ
基礎中の基礎、という感じのプラットフォーマーチュートリアルをやってみました。 GDevelop Wiki プラットフォーマー チュートリアル 10分くらいで終わるかと思ったらガッツリ1時間かかりました😅 その様子を動画にしたので、何かうまくいかないことや、分からないこととかあったら参考にしてみてください。 ダウンロードできる敵の画像が、チュートリアルで使用されている画像とは左右逆なため、チュートリアルどおりでは、後ろ向きに進んでしまう問題にも対応しています。 なお、動画は2倍速にしていますが、それでも当然30分ほどありますw

サクッと条件やアクションを追加する方法

イメージ
地味な機能であまり知られていませんが、イベントの「条件を追加」や「アクションを追加」を 右クリック すると、コンパクトなウィンドウで条件やアクションを追加することができます。 この機能では、プロパティを設定する画面はスキップされるので、プロパティ設定が必要のない条件やアクション(例えば「シーンが始まった」や「オブジェクトを削除する」など)を追加したい時は特に便利です。 お試しあれ😉

ブラウザ上で動くオンライン版を試してみた感想

イメージ
あくまでも「オンライン版はお試し用」という位置付けだとは思いますが、どこまでできるのか調べてみました。 ちなみにブラウザ上で動くなら、スマホでも使えるのではないかと思い、無謀にもスマホのみでゲーム制作にチャレンジしてみた動画はこちらですw かなり根気は必要ですが、作れなくはないなと感じました。 でもせめて、タブレットくらい画面が大きくないと、やっぱツラいですね😅 GDevelop オンライン版ではできないこと 数は意外と少ないのですが、致命的な事も少なくありません😥 その1. 画像やサウンドなどのファイルが利用できない これはキツイw 利用できるのは Asset Store にあるものだけです。 (スターターを利用すれば既存のリソースは利用できます) リソース画面で無理やりパスを書き換えることはできますが、プレビューすると CORS で表示されないっぽいです。 その2. 外部アプリが利用できない 画像ファイルが使えないなら Piskel で作成を!っと思っても Piskel はデスクトップ版にしか付属していないので、使えません。 同様に Jfxr と Yarn も利用できません。 その3. デバッガーが利用できない まあまあ不便。 当然、プロファイラーやネットワークプレビューもできません。 代わりに Chrome DevTools を使えばなんとかなりますが…… その4. 拡張機能のインポート 公式に配布されている拡張機能は利用できますが、オリジナルの拡張機能をインポート・エクスポートすることはできないようです。 でも作ることはできます。 GDevelop オンライン版の使いみち GDevelop をインストールせずに試してみたい未経験者の方はもちろん、デスクトップ版を利用しながらでも、プロジェクトを閉じることなく、色々と試してみることができるので、テスト環境として利用できると思います😉

新しいアクション/条件エディターを使用する

イメージ
GDevelop を最近インストールした方は、最初から新しいアクション/条件エディターになっていると思いますが、かなり昔から使用している人は、アップデートしても古いモードが引き継がれるので「あれ?みんなのエディターなんか違くない?」とか思いがちです😅 ↓これが新しいアクション/条件エディターです。 ↓そんでこっちが古いアクション/条件エディターです。 正直、どちらが使いやすいかは人によると思います。 ただ、古い方はいつか廃止されてしまうかもしれないので、今のうちに新しい方に慣れたほうが良さそうです。 変更は「ファイル」メニューの「環境設定」からおこなえます。 ↑このスイッチを ON / OFF して切り替えられます。 全くその必要はないと思いますが、一連の操作を動画にしたので、ご覧になりたい方はこちらをどーぞ🤗 前半は英語で、後半は日本語という謎動画ですw

意外とややこしいスプライトの反転

イメージ
GDevelop はゲームエンジンとしては珍しく、今のところ(v5.0.0-beta103)エディター上でスプライトを反転させることができません😢 反転させるにはイベントで、スプライトに反転エフェクトをかける必要があります。 このアクションです↓ 水平方向、または垂直方向に反転させることができます。 もちろん水平反転させてから垂直反転する、といったことも可能です。 なお、他のゲームエンジンでは、サイズやスケールの値をマイナスにすることで反転させることができたりしますが、GDevelop ではそれらの値をマイナスに設定することはできません。(0 になります。つまり見えなくなります💦) ⚠ エディター上で無理やりマイナス値にすると、一見それっぽくなりますが、実行時には 0 になり見えなくなります。 反転時の当たり判定とポイントについて スプライトには当たり判定やポイントを設定できます。 それらはスプライトが反転されると以下のように変わります。 まず当たり判定は、デフォルトの衝突マスクでも、カスタム衝突マスクでも、スプライトに合わせて反転してくれます。 これは多くの場合、期待通りに機能してくれるでしょう。 次にポイントについてですが、こちらは少々ややこしいです。 そもそもポイントには最初から「Origin」と「Center」が設定されています。 Origin は原点を指していて、スプライトの位置(X と Y の値)で使用されるポイントです。 Center は中心を指していて、スプライトの回転や反転するときの基準となるポイントです。 この2つのポイントは、反転しても反転しません(分かりにくいw) しかし、独自に追加したポイントは反転します😵 具体的に例を見てみましょう。 スプライトには、このようにポイントが設定されていた場合↓ 分かりにくいけど赤丸のところに追加した「Point」というポイントがあります。 そのスプライトを反転させると、それぞれのポイント位置は、このようになります↓ 赤い+ は Origin、 黄色い+ は Center、 水色+ は Point スプライトが反転しても、Origin は反転していません。 そのためスプライトの位置(X と Y)も反転前と変わりません。 Center はそもそも反転の基準となっているため、同じ位置のままです。 そして独自

構造体 (Structure) の変数を複製(ディープコピー)するには?

イメージ
 GDevelop の変数は入れ子にすることができ、そのような変数を「構造体」と言います。 その構造体を複製(コピー)したい時に使えるテクニックを紹介します。 少々力技ですが、JSON を経由させることで、簡単に複製することができます。 こんな感じです↓ まず、コピー先の変数に応じて以下のアクションから選択します。 JSONをグローバル変数に変換する JSONをオブジェクト変数に変換する JSONをシーン変数に変換する そして「JSON文字列」には、コピー元の変数に応じて、以下の式を利用します。 「グローバル変数をJSONに変換」⇒ GlobalVarToJSON() 「オブジェクト変数をJSONに変換する」⇒ ObjectVarToJSON() 「シーン変数をJSONに変換」⇒ ToJSON() このように一度 JSON へ変換することで、どんな構造の構造体でも複製することができます👍

スクロールできるリスト型の UI を作れる拡張機能を作ったよ

イメージ
スクロールできるリスト型の UI を簡単(?)に作れる拡張機能(エクステンション)を作成してみました。 詳しくは フォーラムの投稿 をご覧ください。 実際に使用している様子の動画はこちら↓ 色々なシーンで使えるので便利だよ👺 ご自由にご利用ください。

テキストを改行する方法

イメージ
テキストオブジェクトのテキストをイベントで改行する方法が、GDevelop ではちょっと特殊なので、解説したいと思います。 ベースが JavaScript なので、改行は "\n" を入れる必要があるのかと思いきや、実は値の中で直接改行すれば良いだけです。 ちなみに、改行するための専用の関数(式)も用意されています。 それが NewLine() です。 こんな感じで、テキストに連結して使用します↓ ただし、この方法だと煩雑になりやすいので、通常は前者の方がオススメです😉

コメントやイベント無効化の使い方

イメージ
GDevelop では「コメント」を利用して、イベントでどんなことをしているか、などのメモを残すことができます。 コメントは「イベントを選択して追加」ボタンや「新しいイベントを追加」を右クリックしたメニューから追加できます。 他の人や、後で読む自分のために、コメントを残しておくと便利です📝 ちなみにコメントを右クリックしたメニューの「編集」から、背景色や文字色を変更することもできます。(なおコメント編集中はなぜか右クリックメニューが開きません🤔) ところで、プログラミングではよく、コードの一部をコメントアウト(無効化)して、動作を確認したりしますが、GDevelop のコメントではそのようなことはできません。 そこで、GDevelop ではイベントを右クリックしたメニューから「有効/無効を切り替え」で、同等のことができるようになっています。 ただし、これはイベント単位で切り替わるので、式だけとかアクションだけ、というようなことはできません。 式やアクションだけを無効にしたい場合は、別途、無効にしたイベントを用意して、そこへ一時的に避難させておくと良いでしょう😊

v5.0.0-beta103 がリリースされました。

GDevelop 5.0.0-beta103 がリリースされたので、個人的に気になった主な更新内容をピックアップしてみました! 💝 改善点 ライトレイヤーの環境光を変更するアクションを追加 レイヤー上のカメラのズーム値を取得する式を追加 構造体変数の子を反復処理する ForEach イベントを追加 Google Firebase のサポート 🐛 バグの修正 iOS と Safari 関連の問題を修正 などなど、他にも改善やバグ修正がおこなわれています! 詳細は GitHub の v5.0.0-beta103 ページをチェック! 🧐 個人的注目ポイント まずなんと言っても、このバージョンから大幅に日本語化が進みました🙌 今回追加された機能以外は、すべて翻訳されている上に、変な翻訳も修正されています。 これは有志の方( YU-TANG  さん)が翻訳作業を爆速で進めてくださったおかげです! ありがとうございます! 次に、構造体変数の子を反復処理できるイベントの機能が追加された件です。 子の名前が連番でなくても取得できて便利です。 ただ、シーン変数だけにしか対応していないようなので、その点が残念です😥 Google Firebase への対応も、とても嬉しい機能追加です。 まだ試していませんが、Firebase Functions や Realtime Database を利用すればオンラインゲームなんかも作れるようになるので、夢が広がります😆 今回はかなり充実したバージョンアップだったと思いますが、なんと待望のタイルマップオブジェクトもリリース間近とのことです! 次回のバージョンアップも楽しみですね😊

GDevelop インストールと日本語化の手順

イメージ
 特に難しいことはないですが、いちおう書いておきますっていうか以下の動画をご覧ください。 GDevelop 日本語サイトはこちら 動画でも言っていますが、インストーラーを実行すると即インストールされます。 Windows の場合は C:\Users\[ユーザー名]\AppData\Local\Programs\gdevelop にインストールされるようです。 C:\Program Files の中ではないのでご注意ください。 さらに C:\Users\[ユーザー名]\AppData\Roaming\GDevelop 5 にも、なにやらファイル群が生成されますが、こちらは設定ファイルらしいです。(よく分かってない😅) なお、アンインストールは Windows の「設定」の「アプリと機能」からアンインストールできます。

プレビューを特定のシーンから開始するように設定する方法

イメージ
プレビューボタンを押すと、編集中のシーンからスタートしますが、それではうまく動作しない構造になっている場合は、特定のシーンからスタートするように設定すると便利です。 設定の仕方は、プレビュー起動ボタンを右クリックして「プレビューはすべて、このシーンから開始する」を選択すれば OK です。 ただし、これはプロジェクトを開くたびに設定する必要があります。

GDevelop の「イベント」を正しく理解しよう

イメージ
特にプログラミング経験者がおちいりやすい罠なのですが、GDevelop の「イベント」は「if文」ではありません。 確かに if 文と同じ面もありますが、イベントの主な役割は対象のオブジェクト(インスタンス)を絞り込む事にあります。 例えば、以下の画像のようなシーンの場合、 以下のようなイベントを設定することで、ミサイルが当たっている戦車のみ削除することができます。 これは、イベントの条件で「ミサイルに衝突している戦車」のみにインスタンスが絞られたため、そのイベントのアクションで戦車を削除すると、ミサイルに衝突している戦車だけが削除されるという仕組みです。 では、「戦車のどれか1台にでもミサイルが当たったら、3台全て消す」には、どうしたら良いかというと、 上の画像のように「すべてのインスタンスを選択する」アクションを、削除するアクションより先に追加することで、戦車すべてがアクションの対象となり、3台全てを削除することができます。 このあたりが理解できると、「なんで else がないの?🙁」という不満にも、多少は納得できるのではないでしょうか😅