投稿

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

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

イメージ
え?なに?今後はこれくらいのペースでアップしていくよってことですかい?🤤 いや嬉しいけどねw 💝 改善点 ・ Android App Bundle でエクスポートする際に、アップロードキーの新旧を選択できるようになりました。 これは、既に APK にて Google Play で公開しているアプリを「Play App Signing」を用いてアップデートしたい場合に利用するオプションです。 ↓ここから設定画面を開けます。 ちなみに、設定画面はまだ翻訳されていませんが、以下のようなことが書かれています。 Android アプリバンドルの識別に使用するアップロードキーを選択します。 ほとんどの場合、これを変更する必要はありません。 ゲームをAPKとして公開していて、Android App Bundle に切り替える前に Play アプリ署名を有効にした場合は、「古いアップロードキー」を使用してください。 ◎ 新しいアップロードキー(推奨) ◎ 古いアップロードキー(ゲームを APK として公開し、Play アプリ署名を既にアクティブ化した場合のみ) ◎ カスタムアップロードキー(まだ利用できません) 詳しい利用方法は Wiki の「 Upgrading your app from APK to Android App Bundles (英語)」を確認しましょう。  ・ 必要以上に GDevelop ロゴが大きくならないようになりました。 高解像度のゲームで、ローディング画面の GDevelop ロゴが大きくなりすぎる問題を修正したようです。 🤓 まとめ 2021年8月から Google Play への公開は Android App Bundle を使用しないといけなくなるので、ちょっと急ぎのアプデだったのかもしれません。 でも、これからもこの頻度でアップされたら嬉しいですね。 まあ、記事にするのは大変ですがw あと、残念ながら今回も日本語翻訳の反映はおこなわれませんでした😢 次回更新に期待です(三度目)

唐突に GDevelop v5.0.0-beta113 がリリースされました。

イメージ
前回のバージョンアップから 4日しか経ってないのに、いきなり beta113 がリリースされました😲 てっきり緊急バグフィックスかと思ってたら、なんと新機能追加ですよ❗ ✨ 新機能 ・ ローディング画面のカスタマイズ ゲーム開始時に表示されるローディング画面のカスタマイズが可能になりました🙌 GDevelop ロゴのスタイル(明るい、暗い、色付き、または無地)を選択できます。 背景色や背景画像を設定できます。 プログレスバーのサイズを選択できます。(最小サイズと最大サイズ) フェードインの秒数とロード画面が表示される最小時間を設定できます。 ゲームのプロパティ画面にあるプレビューボタンから、ロード画面が表示された状態でプレビューを実行できるようになりました。 で、私は肝心のその設定画面を見つけるのに、だいぶ苦労したので、念の為場所をお知らせします😅 ここです↓ 言われなきゃ気が付かんと思うのは私だけですかそうですか🤤 🤓 まとめ 上記に加え、バグ修正もおこなわれたようですが(詳しくは GitHub の  GDevelop Releases  ページをチェック!)残念ながら今回も日本語翻訳の反映はおこなわれませんでした😢 他の言語の翻訳待ちなのかなー…… 次回更新に期待です。

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

イメージ
GDevelop v5.0.0-beta112 がリリースされたので、今回も個人的に気になった更新内容をピックアップしてご紹介します!🧐 なんか今回は全体的に地味めなバージョンアップですw 💝 改善点 ・ Android App Bundle に対応 Android アプリのパッケージング形式で AAB 形式が利用できるようになりました。 これは、2021年8月から、新しく Google Play に登録するアプリは Android App Bundle を使用する必要があるためです。(それ以前に登録されているアプリは従来どおり APK 形式でアップデート可能) 実機でのテストや Google Play 以外のストアへ公開するために、引き続き APK でのエクスポートも可能です。 なお、相変わらず鍵の所在は謎ですw ・複数のインスタンスへの適切な回転およびサイズ変更 今まではシーンエディター上で、複数のインスタンスを選択した状態で、サイズ変更や回転をおこなうとエライことになりましたが、それが改善されました。 (個人的にはそれでも🤔❔って感じですがw) ・イベントシートのポップアップの改善 イベントシートのポップアップとは、おそらくこれ↓のことと思われる。 これが Ctrl + Enter(Mac では Cmd + Enter)で確定できるようになりました。 また、Esc キーで確定かキャンセルかを、環境設定で設定できるようになりました。 (なんか値のポップアップ以外はすべてキャンセル扱いになる気がするけど……😅) ・UIの改善 色々と改善されたようですが、特にスプライトのプロパティ画面で、衝突マスクとポイントのボタンが常に表示されるようになったのは、個人的にグッジョブです👍 ・式や自動補完(オートコンプリート)の改善 いままでは式エディターが無かった「シーン」や「レイヤー」などのパラメーター入力欄にも式エディターが追加されました。 これでそこに式も使えることが、より明確になりました👍 また、変数名も自動補完されるようになりました👍👍 ・サンプルが新しくなりました 寄稿者により追加更新されるようになりました。 ・プレビューウィンドウが常に最前面に表示されるようになりました これは困る人もいるのでは😅 でも安心してください。環境設定で OFF にできま

4ian 氏が Google 辞めて GDevelop に全振りする件

イメージ
2021年6月25日に GDevelop の作成者である 4ian (Florian Rival) さんが Discord 上で「Ask Me Anything(なんでも聞いて)」というイベントを開きました。 そのイベントでは、「Google 辞めて GDevelop のために会社作るよ!」という驚愕の発表がおこなわれたのですが、その件について 4ian さんご本人が Discord 上でまとめていたので、(勝手に)翻訳してここに掲載しておきます。 ※ この翻訳が原文の内容を正しく表現している保証はありません。 Discord での 4ian さんの 発言 (2021年7月3日) 私がGDevelopに取り組むために設立した新しい会社に関連して、いくつかの質問が多く寄せられていることを知っているので、簡単なQ&Aをします🙂 GDevelopは有料のソフトウェアになるのですか? いいえ、GDevelopは今のように無料で使えます🙂 GDevelopはオープンソースのままですか? はい、アプリもゲームエンジンもオープンソースであることが基本方針です。 会社の収益はどうなるのですか? GDevelop 上に、ゲームをより早く、より成功させるためのサービスをもっと提供したいと思っています。 いくつかのアイデアがありますが、中でもゲームクリエイター(つまりあなた)が自分のやっていることを収益化したり、共有したりする方法があります。(そうすれば、GDevelopを使うことがより充実したものになります) 投資家からGDevelopを有料ソフトにするように言われますか? いいえ、彼らはそれを要求することはできませんし、GDevelopはいずれにせよオープンソースのままです。 もちろん、ゲーム向けのサービスでお金を稼ぐ方法を見つけようとしています。(クリエイター向けにもお金を稼ぐ方法がありますが、今のところ選択肢はあまりにも限られています!) 銀行にお金が残らなければ、会社をたたむことになるでしょう。 将来的に会社がなくなってしまったら? そうならないことを願っています🙂そうなってしまったら、GDevelopにとっては悲しいことです。 しかし、アプリ、ゲームエンジン、拡張機能はすべてオープンソースなので、生き残ることができますし、貢献者の助けだけで以前のように続けること

テキストを右揃え(右寄せ)や中央揃えにする方法

イメージ
ゲームを作成していると、スコアや所持金などのテキストを、右揃えで表示したいことがよくあると思います。 GDevelop での文字揃え(行揃え)には、少し工夫が必要なので、今回はその方法を解説します。 なお、v5.0.0-beta110 の時点でテキストを表示するためのオブジェクトは、 テキストオブジェクト 、 BBテキストオブジェクト 、 ビットマップテキストオブジェクト 、の3種類がありますが、今回紹介する方法はどのオブジェクトにも利用できます😉 内容が変わらないテキストの場合 そもそもテキストの内容が変化しないという場合は、エディター上でイイ感じに配置すればよいだけです😅 ただし複数行の場合は、文字揃えの設定をする必要があります。 BBテキストオブジェクトとビットマップテキストには、オブジェクトの編集画面に「行揃えの位置」というプロパティがあるので、それを選択するだけで OK です👌 しかしテキストオブジェクトは、わざわざイベントで設定しなければなりません。 例えばエディター上でこんな感じに配置して…… (ちなみに赤い縦棒は目安として置いているだけです) イベントで文字揃えを指定すれば…… このように揃ってくれます。(0123 の行に注目↓) ちょっとめんどいですねw 内容が変更されるテキストの場合 さて、ここからがやっと本題です。 スコアや所持金、はたまた台詞などを表示するテキストは、刻々と内容が変化するものです。 当然、文字数や行数も変わる場合があるのですが、上記のようにただ文字揃えを設定しただけでは、テキストが変更されたときにレイアウトが崩れてしまいます。 例えば、次の画像のように最初は良くても…… テキストが変更され、文字数などが変わってしまうと…… こんな事になってしまいます😥 これは文字揃えの設定に関係なく、これらのオブジェクトの原点は常に左上だからです。 (赤矢印の位置↓) テキスト変更前と後の画像を見比べると、原点は移動していない事がわかります。 そのため、テキストの長さが変化すると、位置がずれてしまうのです。 そこで、テキストの変更時に以下のような手順で、オブジェクトを正しい位置に移動させてやる必要があります。 原点を文字揃えしたい位置に移動する テキストを変更する 新しいテキストに合わせて原点を移動させる 文字で書くとさっぱり意味がわ

GDevelop で年月日や時間などを取得する方法

イメージ
GDevelop は Javascript で動いてるんだから、Javascript の Date オブジェクトと同等の機能がアクションで利用できるもんだと勝手に思っていたのですが、意外とそうでもなかったのでちょっと調べてみました。 GDevelop 5.0.0-beta110 の時点では、年月日や時間を取得するには Time() 式を利用します。 ※ アクションや条件は用意されていません。 Time() 式はパラメーターによって得られる値が変わります。 利用できるパラメーターは以下のとおりです。 year:1900年からの経過年数 mon:月(0オリジン) mday:日 yday:年間通算日(1月1日=1) wday:曜日(日曜=0) hour:時 min:分 sec:秒 timestamp:タイムスタンプ(ミリ秒) 参考: Wiki の「式リファレンス」ページ ちなみに「timestamp」以外は 全て地方時(日本時間)の値 が返されます。 さて、初っ端の「year」から面倒くさいことになっています。 Time("year") で返される値は 1900年からの経過年数なので、例えば 2021年なら 121 が返ってきます。うわめんどっw しかもこの挙動は、既に非推奨となっている Javascript の  Date.prototype.getYear() と同じです……😰大丈夫なん? 大丈夫でした。既に getFullYear() を使用していて、そこからわざわざ -1900 して返しています。(それもどーかとw) 続く「mon」も 0オリジン、つまり 1月が 0 で 2月 が 1 ……というアホっぷりです。 まあ、これは古いプログラミング言語ではよくあることなのですが、そんなことを GDevelop で再現する必要はないわけで……😢改善希望です。 それ以外は期待通りの値が返ってくるので、特に困ることもないかと思います。 (曜日は配列とか利用して希望する表記に変更しましょう) しかし日付計算など、もう少し高度なことをしたい場合は、Javascript を利用したほうが良いですね。 使い方例1:テキストオブジェクトで日付を表示する 「2021年5月28日」という具合に表示したい場合は、次の画像のように設定します。 値には以下のように記述し

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

イメージ
問題の発見された beta109 を飛ばして GDevelop v5.0.0-beta110 がリリースされました。 今回も色々追加されたので、個人的に気になった更新内容をピックアップしてご紹介します! ✨ 新機能 ・ビットマップテキストオブジェクトの追加 新しく「ビットマップテキスト(Bitmap Text)」オブジェクトが、実験的なオブジェクトとして追加されました。 このオブジェクトを使用することで  BMFont や bmGlyph などのソフトウェアで生成された、ビットマップフォントを表示できるようになります。 ビットマップフォントは、デザインされた文字を予め画像として保存したものを利用するので、これまでは表現できなかった文字の装飾などが可能になります。 また、従来のテキストオブジェクトより描画にかかる負荷が軽く、頻繁に更新されるテキスト(例えばスコアなど)での利用に向いています。 対して画像なので、拡大すると画質は下がってしまう点と、用意していない文字は表示できない点に注意が必要です。 ・オブジェクトの中心が利用しやすくなりました オブジェクトの中心を取得したり、中心を利用して位置を指定するための、アクション、条件、および式が追加されました。 今までもスプライトオブジェクトは Point("Center") で Center 位置は取得できましたが、それ以外のオブジェクトの中心位置も簡単に取得できるようなりました。 また、中心位置を基準にした位置指定も可能になりました。 💝 改善点 ・衝突マスクエディタとポイントエディタを刷新 編集画面が大きく表示されるようになり、かなり使いやすくなりました! プレビューと設定欄の分割はドラッグすることができます。 ポイントにカーソルを合わせると、ツールチップにポイント名が表示されます。 ポイントや衝突マスクの頂点を画像より外側にドラッグしても、カーソルに追従し続けるようになりました。(衝突マスクは画像より外側には設定できません) 衝突マスクの設定欄を折りたためるようになりました。 スプライトの衝突マスクがたくさんある場合に便利です。 エディターの市松模様の背景も、選択したテーマに合わせて異なる色を使用するようになりました。 ・ビヘイビアの設定が折りたためるようになりました もぉビヘイビアをたくさ

【GDevelop】式の中に登場するオブジェクトは絞り込みの対象じゃないゾ!

イメージ
「 GDevelop の「イベント」を正しく理解しよう 」のページでも解説したように、GDevelop のイベントは、条件でオブジェクトの絞り込みをしてくれるのですが、実は絞り込まない場合もあるのです😅 それは、 オブジェクトが式の中に登場している場合 です。 ちなみに「式」とは、条件やアクションの入力画面で  や  が横にくっついてる欄に入力する文字とか数のあれですw(正確には文字列の場合は「文字列式」です) では早速、具体的な例を挙げてみましょう。 例えばこんなシーンが有ったとして↓ こんなイベントを組んだとします↓ 条件で GreyTank1 の X 座標が 480 より小さいかを判定しています。 一見すると、X 座標が 480 より小さい GreyTank1 に絞り込まれ、その条件を満たす左の二輌だけが削除されるように見えますが、実際には全ての GreyTank1 が削除されます。 (またはどの GreyTank1 も削除されません。理由は後記) なぜなら、ここで参照されている GreyTank1 が絞り込みの対象ではないためです。 実は使用している条件が「二つの数値を比べる」であり、GreyTank1 はその 式の中 で参照されています↓ そのため、GreyTank1 は絞り込みの対象では無いのです。 また、この条件の GreyTank1 とは、三輌あるうちの(GDevelop の内部的に)最初の一輌のみを指しています。 もし、その最初の一輌の X 座標が 480 より小さいなら、全ての GreyTank1 (絞り込まれていないため)が削除されるし、480 以上なら条件を満たしていないので、アクションが実行されることはありません。(つまりどの GreyTank1 も消えない) 上記の例では、条件「二つの数値を比べる」ではなく、オブジェクトがもつ条件「オブジェクトの X 位置を比べる」を利用すれば、絞り込まれるようになります↓ しかし、必ずしも希望する条件をオブジェクトが有しているとは限りません。 例えばオブジェクトのポイント位置(PointX() や PointY())を比較する条件は、今のところ用意されていません。 その場合は、条件「二つの数値を比べる」を利用することになりますが、その式に登場するオブジェクトは絞り込みの対象ではありません。 では、ど

GDevelop の条件とかアクションって何?どれのこと?

イメージ
GDevelop って「イベント」とか「条件」とか「アクション」とか、なんか用語が色々あってよく分からん! っという方のために、一発で分かる画像を用意しました。 ではどうぞご覧ください↓ つまり条件とアクションがセットになったものがイベントです。 条件の部分で設定した条件が満たされた場合に、アクションの部分で設定した処理が実行される、という仕組みです。 そう聞くと、プログラム経験者は「なるほど if 文だな完全に理解した」となりがちですが、残念ながらそれは間違いです😅 その点について詳しくは「 GDevelop の「イベント」を正しく理解しよう 」をご覧ください。

GDevelop プロジェクトのバックアップ方法

イメージ
最近は GDevelop エディターもかなり安定してきたので、プロジェクトファイルが壊れてしまうなんてことは、そうそう起こらなくなりましたが、念の為バックアップを取っておくにこしたことはありません。 そこで今回は、GDevelop のプロジェクト(ゲーム)のバックアップ方法を紹介します。 GDevelop プロジェクトのバックアップ方法 その1:まるごとバックアップ そもそもプロジェクトは 1 つのフォルダに収まっているはずです。 なので最も単純なバックアップは、そのフォルダごと複製する方法です😅 この方法であれば、複製した段階を忠実に再現できるため、なにかのファイルを壊してしまったり消してしまったときにも、復旧することができます。  反面、この方法ではリソース(画像とかサウンドとかの)ファイルもすべて複製されるので、大きなプロジェクトの場合は容量を食ってしまう上に、複製にも時間がかかったりします。 その2:プロジェクトファイルだけバックアップ プロジェクトファイルとは GDevelop でゲームを作成する際に生成される JSON ファイル(通常は game.json)です。 このプロジェクトファイルに、ゲームの内容が保存されています。 なので、このファイルを複製しておくだけでも、いちおうバックアップが取れていることになります。 もし、プロジェクトファイルが壊れてしまっても、複製しておいた game.json に差し替えれば、バックアップしたときの状態に戻ることができます。 ただし上記その1の方法とは異なり、リソースファイル、特に他のソフト(例えばダイアログツリーの Yarn やタイルマップの Tiled など)で生成したファイルが壊れてしまった場合には無力なので注意です。 その3:オンラインストレージを利用する 上記1と2とは根本的に異なる方法ですが、Dropbox や OneDrive、Google ドライブなどのオンラインストレージにある「バージョン履歴」機能を利用する方法です。 PC にオンラインストレージサービスのアプリをインストールし、プロジェクトのフォルダを同期させれば、あとは勝手にバックアップしてくれます。 この方法であれば、壊れたファイルだけ数日前のバージョンに戻すことも可能ですし、たとえ PC そのものが爆発炎上大破しても、データはクラウド上に

【GDevelop】テキストオブジェクトに追記するのはヤバいというお話

イメージ
スコアやステータスなどを表示したいときに便利なテキストオブジェクトですが、正しく利用しないと処理落ちの原因になったりするので注意が必要です。 そこで GDevelop のテキストオブジェクトに対し、どういう処理をすると負荷が高いかを実験してみました。 まず、テキストオブジェクトを 8 個用意し、次のようなイベントを実行してみます。 テキスト1 には普通に「あいうえおかきくけこ」を代入します。 テキスト2 には「あ~こ」までを 1 文字ずつ加算で追加します。 テキスト3 には大量のテキストを代入します。 テキスト4 には他とは違うフォントを設定しています。 テキスト5 にはテキスト1 と同じアクションを実行します。 テキスト6 にはテキスト1 と同じ文字数分、異なるテキストを代入します。 テキスト7 には大量のテキストを一度だけ代入します。 テキスト8 には一度だけ「あ~こ」までを 1 文字ずつ加算で追加します。 それを実行したプロファイラーの結果は、次のとおりです。 (プロファイラーの使い方や見方は、また別の記事を書きます😅) events セクション内の値を見ることで、それぞれのイベントにどれだけ時間(負荷)がかかったか分かります。 セクション名 時間(ms) % of parent % of total テキスト1 0.01ms 0.67% 0.67% テキスト2(加算で追記) 1.34ms 94.62% 73.09% テキスト3(多テキスト) 0.01ms 0.64% 0.50% テキスト4(違フォント) 0.00ms 0.11% 0.09% テキスト5(同テキスト1) 0.00ms 0.08% 0.06% テキスト6(違テキスト) 0.00ms 0.07% 0.06% テキスト7(一度・多) 0.00ms 0.03% 0.03% テキスト8(一度・加算) 0.01ms 0.59% 0.46% 注目すべき点は、加算で 1 文字ずつ追記した場合の負荷の高さです。 一度に大量のテキストを代入した場合と比べても、100 倍以上の負荷がかかっています😥 追記時に内部的にどのような処理がおこなわれているのかは知りませんが、おそらく文字数が変わるたびに、文字の形状か

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

イメージ
beta 106 がリリースされる前に 107 が発表されて、んじゃ 107 の記事を書くか~っと思っていたら 108 がリリースされたでござる😅 しかも、リリースに間に合うほど爆速で翻訳してくださった YU-TANG さんのおかげで、初めから新機能も日本語で利用できますぞー🙌 ということで今回は、beta 106 から 108 までの気になった変更点を、まとめてピックアップしました❗ ✨ 新機能 ・配列変数と真偽値変数が追加 全ての変数(グローバル、シーン、オブジェクト)で、従来の数値、文字列、構造体に加えて、配列と真偽値のタイプ(型)が利用できるようになりました。 真偽値は ON、OFF などに、配列は子変数の数が決まっていないデータや、増減するデータを持たせる事ができるので、とても便利です。 もちろん、配列と構造体は他のタイプを入れ子で持つことができるので、配列の子が構造体、なんてことも可能です。 特に配列は、個人的に待ち望んでいた機能なので、嬉しいです😊 ただし、現状は繰り返しイベントがシーン変数にしか対応していない点が残念です。 グローバル変数やオブジェクト変数を繰り返し処理したい場合は、シーン変数へコピーするか Javascript コードを使用する必要があります😥 ・トップダウン移動ビヘイビアを改善 「スティックコントロールをシミュレートする」アクションや「移動角度オフセット」プロパティが追加されて、より便利になったようです😆(よく分かってないw) ・オーディオに立体音響とプリロードの機能が追加 立体音響は距離による音量の減衰だけでなく、音がどの方向から鳴っているかを再現することができるようになります。(3D なので上下前後左右なのだとは思いますが、特に左右が分かりやすいです) ただし、なぜか位置を逆距離モデルという謎の割合で設定する必要があり、かなり使いにくい仕様となっています😥 Wiki の Spatial-sound ページ(英語) あと、プリロードされていないサウンドには効果がなかったり、再生前に位置を設定しようとすると落ちるバグが有るようです……😞 今後の改善に期待です。 プリロードの方は、読み込みが完了しているかを確認するすべは無いものの、使い方はアクションを追加するだけなので、簡単に利用できます。 あとアンロードもできます

【GDevelop】オブジェクト間の距離で音量を変化させる方法

イメージ
プレイヤーのキャラクターと音源との距離に合わせて、音量を変化させる方法を紹介します。 音のコントロールはページでは伝わりにくいので、まずは完成したサンプルの動画をご覧ください。 この動画では、ウサギとハチの距離に応じて、羽音の音量が変化します。 動画で使用したサンプルのシーンは、こんな感じ。 音を聞くウサギと、羽音の音源となるハチなどを配置しています。 使用素材: https://pixelfrog-assets.itch.io/ ウサギには「ドラッグ可能」ビヘイビアを追加して、ドラッグできるようにしています。 また、ウサギとハチは使用した素材が小さかったので 2 倍に拡大しています。 (プロパティのカスタムサイズで大きくしています) シーンにはその他に、デバッグ用のテキストオブジェクトも配置しています。 イベントは次の画像のようになっています。 では、一行ずつ順に説明していきます。 まず最初の行で、シーン開始時にチャンネル 1 でサウンド(羽音)をループ再生しています。 その再生アクションのパラメーターは、次の画像のとおりです。 今回のように再生するサウンドを細かく制御したい時は、チャンネルを指定できる「チャンネルでサウンドを再生する」または「チャンネルで音楽ファイルを再生する」を使用する必要があります。 チャンネル識別子を指定することで、後々そのサウンドをアクションで制御できるようになります。 (ここでいうチャンネルとは単なる識別用の番号であり、好きな数字を入れることができます) そして 2 行目のイベントで、ウサギとハチの距離に応じて、チャンネル 1 の音量を変化させています。 そのアクションのパラメーターは、次の画像のとおりです。 チャンネル識別子には、シーン開始時のアクションで指定した値の 1 を指定します。 その上で、ウサギとハチの距離に応じて 0~100 の数値を代入しています。 このアクションのポイントは、値パラメーターに入力されている何やら小難しい式です。 clamp( 100 - (Bunny.Distance(Bee) * 0.3) , 0 , 100 ) ↑と、書かれています。 (説明のため色分けしました) では、まず clamp() 関数についてです。 この関数は、ある数値を指定した範囲内に制限することができます。 次のように使います。 c