投稿

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

GDevelop 5.0.122 がリリースされました。

イメージ
今回は既存の機能の刷新も含まれていたためか、ベータ版を経由してからのリリースでした。 なので、改善点だけでも結構な量があります😅 個人的に重要そうな順に解説します。 💝 改善点 ・プラットフォーマーエンジン(「プラットフォームキャラクター」と「プラットフォーム」のビヘイビア)を刷新しました。 斜面や移動するプラットフォームに乗っているキャラクターを、より適切に処理できるようになりました。 もうエレベーターに乗せても、ピクピクしたりすることはありません👍 ・変数エディターを改善しました。 変数エディター内の下部にあるツールボタンが、常時表示されるようになり使いやすくなりました。 また、オブジェクト変数エディターは、オブジェクトエディター内に統合されました。 「ビヘイビア」タブの隣に「変数」タブが追加されて、アクセスしやすくなりました👍 ・オブジェクトのバウンディングボックスの値にアクセスできるようになりました。 バウンディングボックス(Bounding Box)とは、オブジェクトの大きさを表す見えない四角い箱 (矩形)のようなもののことです。  英語の説明とは裏腹に、衝突マスクとは関係ないので注意してください。 オブジェクトのバウンディングボックスの値(上部と下部の Y 座標、右側と左側の X 座標)を比較するための条件と、取得するための式が追加されています。 翻訳の関係で、今は「POSITION」の「Bounding Box」内にありますが、翻訳が反映されれば、「位置」の中に表示されるようになります。(なるはずです😅) ・オブジェクトが非表示、または画面外にある場合でもアニメーションを再生できるようにしました。 スプライトエディターに「高度な設定」というオプションが追加され、そこから設定できるようになりました。 通常は ON の「再生 しない 」です。 チェックを外すことで、画面外や非表示でもアニメーションが再生され続けます。 ・シーンエディターを改善しました。 ズームレベルに応じて、適切なスクロールスピードになるよう調整しました。 また、「エディターで位置と角度を固定する」を ON にしているオブジェクトも、選択できるようになりました。 固定しながらでも選択できるので、プロパティの変更などがやりやすくなります。 反面、後ろに隠れたインスタンスを選択したい

【GDevelop】Compressor 拡張機能の使い方

イメージ
Compressor 拡張機能は、文字列をZIP 圧縮した文字列に変換してくれる拡張機能です。 この拡張機能の活用例については「 セーブデータは暗号化しよう! 」をご覧ください。 拡張機能をインストールする方法については「 新しい拡張機能のインストールの仕方 」をご覧ください。 執筆時点のバージョンは 1.0.1 です。 関数 インストールすると文字列式(テキスト式)に次のような関数が追加されます。 それぞれの使い方をざっくり説明します。 Compress String 「String to compress」パラメーターに入力した文字列を ZIP 圧縮した文字列を返します。 なお、必ずしも元のデーターより軽くなるとは限りません。(特に文字列が短いほど効果は少なくなります) Decompress String  ZIP 圧縮された文字列を「String to decompress」パラメーターに入力すると、解凍して元の文字列を返します。

【GDevelop】セーブデータは暗号化しよう!

イメージ
GDevelop でセーブ機能を実装したいときは、多くの場合「ストレージ」機能を使うことになると思います。 このストレージ機能は、PC でもスマホでも、アプリでもブラウザ(HTML5)でも、ちゃんと機能してくれるのでとても重宝するのですが、実は簡単にセーブデータをいじれてしまうという弱点があります。 特に HTML5 ゲームがやばい GDevelop のストレージ機能はゲームが HTML5 で配信される場合は、Web Storage という機能を利用してデータを保存します。 しかし、この Web Storage はブラウザの標準機能で簡単に閲覧・書き換えができてしまいます。 Chrome ならデベロッパー ツール(DevTools) Edge なら開発者ツール(DevTools) Firefox なら開発ツール Safari なら Web インスペクタ つまりそれを知っているプレイヤーは、勝手にセーブデータを書き換えてズルができてしまうのです😥 そのため HTML5 で配信される、いわゆるブラウザゲームのほとんどは、Web Storage に保存するデータを暗号化しています。 (そもそも大事なデータは Web Storage ではなく、サーバー側に保存していたりしますが……) 実はセーブデータを暗号化してくれるゲームエンジンは意外と少なく、多くの場合、各自で独自の防衛策を講じる必要があります。 (国産ゲームエンジンはしてくれるの多いけど😉) 残念ながら今の GDevelop(v5.0.121)のストレージ機能にも、暗号化をしてくれる機能はありません。 そこでこのページでは、簡単にセーブデータを改竄(かいざん)されないようにするための、基本的な暗号化方法についてご紹介します。 なお、アプリで配信する場合も、セーブデータがどのように保存されているか私が知らないだけで、もしかしたら Web Storage 同様、簡単に操作できてしまう状態かもしれないので、HTML5 ゲームと同様に暗号化しておくことをお勧めします。 暗号化に利用できる拡張機能の紹介 そのものズバリな拡張機能はありませんが、組み合わせることでセーブデータを暗号化することができる拡張機能をご紹介します。 拡張機能をインストールする方法については「 新しい拡張機能のインストールの仕方 」をご覧ください。 ・

【GDevelop】Hash 拡張機能の使い方

イメージ
Hash 拡張機能は、文字列からハッシュ値を生成してくれる拡張機能です。 この拡張機能の活用例については「 セーブデータは暗号化しよう! 」をご覧ください。 拡張機能をインストールする方法については「 新しい拡張機能のインストールの仕方 」をご覧ください。 執筆時点のバージョンは 1.0.0 です。 ハッシュ値とは? ググッてくださいw🤤 一応ざっくり説明すると、ハッシュ値とはハッシュ関数を通すことで得られる、一定の長さの値のことです。 このハッシュ値には、同じデータからは必ず同じハッシュ値が得られ、さらにハッシュ値から元のデータを復元することはできないという特徴があります。 そのため、データが改竄(かいざん)されていないかのチェックに利用することができます。 関数 インストールすると、文字列式(テキスト式)で次のような関数が選択できるようになります。 それぞれの使い方をざっくり説明します。 Hash a String with MD5 MD5 というハッシュ関数を利用して、ハッシュ値を生成することができる関数です。 MD5 は既に脆弱性(弱点)が発見されていて、重要なデータ(パスワードなど)のチェックには使えなのですが、生成負荷が SHA-256 より低いので、それほど重要ではない大きなデータの完全性をチェックしたい場合には、利用を検討しても良いと思います。 なお、この拡張機能の MD5 関数は、一部の漢字や絵文字などを正しく処理できません。 そのため、元のデータが同じでも、他のシステムの MD5 関数で生成したハッシュ値とは、値が異なる場合があります。 ご注意ください。 Hash a String with SHA256 SHA-2 の SHA-256 という種類のハッシュ関数を利用して、ハッシュ値を生成することができる関数です。 重要なデータからハッシュ値を生成したい場合は、MD5 ではなくこちらを使うようにしましょう。 ただし困ったことに、この拡張機能の SHA-256 関数は、半角英数字と半角記号にしか対応していません。 つまり、日本語は正しく処理できません。 日本語などの対応していない文字が一文字でも入っていると、undefined という値を返します。 日本語を使いたい場合は? 日本語を含む文字列を、一度何らかの方法で半角英数字のみのデータ表記に変換

【GDevelop】Unicode (UnicodeConversion) 拡張機能の使い方

イメージ
Unicode (UnicodeConversion) 拡張機能は、文字列を数字(Unicode のコードポイント)に変えてくれる拡張機能です。 もちろんその逆、数字を文字列に戻すこともできます。 この拡張機能の活用例については「 セーブデータは暗号化しよう! 」をご覧ください。 拡張機能をインストールする方法については「 新しい拡張機能のインストールの仕方 」をご覧ください。 執筆時点のバージョンは 1.0.4 です。 関数 インストールすると、文字列式(テキスト式)で以下のような関数が選択できるようになります。 それぞれざっくりと説明すると…… Reverse the unicode of a string 文字列を数字化した上で反転して、また文字列に戻します。 例えば「abc」を渡すと「6&」が返されます。 これは「abc」を数字化して「61 62 63」とし、それを反転して「36 26 16」とし、そこから文字列化すると「6&」になるためです。 そのため、逆に「6&」を渡すと「abc」が返ってきます。 なお、一部の漢字や絵文字などは正しく処理できません。 確実に機能させたい場合は、半角英数字(記号含む)のみで利用しましょう。 String to unicode conversion 文字列を数字化します。(文字をコードポイントに変換します) ただし、 返される値 のデータ型は文字列(テキスト)である点に注意してください。 例えば "61,62,63" というような数字が書いてある文字列です。 この関数は、漢字や絵文字なども正しく処理できます。 Unicode to string 数字を文字列化します。(コードポイントを文字に変換します) ただし、 渡す値 のデータ型は文字列(テキスト)である点に注意してください。 例えば "61,62,63" というような数字が書いてある文字列です。 この関数は、漢字や絵文字なども正しく処理できます。 関数のパラメーターについて 少し専門的な知識が必要なパラメーターがあるので、簡単に説明します。 「Reverse the unicode of a string」のパラメーター 文字列を数字化した上で反転して、また文字列に戻す「Reverse the uni

【GDevelop】新しい拡張機能のインストールの仕方

イメージ
GDevelop は有志の方が作成した拡張機能で、機能を追加することができます。 ゲーム制作に役立つ便利な拡張機能が色々あるので、どんどん利用しましょう😆 このページでは、拡張機能をインストールする方法を3つご紹介します。 方法その1.プロジェクトマネージャーから検索してインストールする これが最も一般的な方法です。 プロジェクトマネージャーの「関数/ビヘイビア」内の「新しい拡張機能を検索する」から、必要な拡張機能を探してインストールすることができます。 インストールしたい拡張機能を選択すると、詳しい説明が表示されるので、その画面にある「プロジェクトにインストール」ボタンを押しましょう。 なお、分かりにくいですが、次の画像のように「再インストール/更新」という表示に変わったらインストール完了です。 「戻る」ボタンを押してゲーム制作を続けましょう😉 方法その2.オブジェクトにビヘイビアを追加する画面から検索してインストールする これは意外と知られていない方法です。 いつも、オブジェクトの編集画面の「ビヘイビア」タブから「+オブジェクトにビヘイビアを追加」ボタンを押してビヘイビアを追加していると思いますが、実はその画面からも拡張機能をインストールすることができます。 赤枠のタブを選択すると、新しいビヘイビアを検索して、インストールできる画面になります。分かりにくいですねw なお、「新しい ビヘイビア を検索」と書いてあるとおり、ここで選択できる拡張機能は、 そのオブジェクトに追加することが出来るビヘイビアを有しているもののみ 、に限られている点に注意してください。 方法その3.拡張機能のファイルをインポートする ここまでは、公式の審査を通過した拡張機能をインストールする方法でしたが、この方法は独自に作成した拡張機能など、「新しい拡張機能を検索する」リストには掲載されていない拡張機能をインストールする方法です。 まず、インストールしたい拡張機能のファイル(json形式)を用意します。 次に、プロジェクトマネージャーから「新しい拡張機能を検索する」画面を開き、「拡張機能をインポート」を押します。 するとファイル選択ウィンドウが表示されるので、そこで対象となる拡張機能のファイル(.json)を選択します。 これでインポートは完了です。 問題がなければ、拡張機能が利用できる

【GDevelop】そこそこ役立つ Developer Tools で出来ること

イメージ
GDevelop 自体が Electron で作られているため Chrome DevTools が利用できます!って言われてもナンノコッチャな方もいるかと思います🤔❓ まぁ「プレビューでデバッグに使える便利ツールが付いてるんだな」って覚えておけば OK です👍 このページでは、その便利ツール(Developer Tools)の使い方を ざっくり 紹介します。 ※ とても多機能なので GDevelop でよく使う機能だけの紹介です。 なお、似た機能に GDevelop 自体が提供する「デバッガー」がありますが、それとは別物です。 Developer Tools の開き方 プレビューウィンドウで、Windows なら「Ctrl + Shift + i」、Mac なら「Option + Command + i」というショートカットキーで、Developer Tools が表示されます。 GDevelop の環境設定で、プレビューウィンドウのメニューバーを非表示に していない のなら、メニューの「表示」内にある「Developer Tools を表示」から表示することもできます。 すると、こんな感じ↓のウィンドウが表示されます。 これが Developer Tools です。 あ、もしかしたらプレビューウィンドウにドッキングした状態で開かれるかもしれません。 別ウィンドウに分けたい、またはドッキング位置を変更したい場合は、次の画像が示すメニューから変更することができます。 ストレージ機能で保存されたデータを確認・編集する プレビューウィンドウに保存されているストレージの値は、Developer Tools で確認・編集することができます。 ストレージの値を確認する画面は「Application」タブの「Storage → Local Storage → file://」と選択することで表示されます。 「Value」列の項目をダブルクリック、またはコンテキストメニュー(右クリックメニュー)の「Edit "Value"」を選択することで、値を編集できます。 データを消したいときは、対象の行を選択して「✖」(Delete Selected)ボタンを押すとか、「Delete」キーを押すとか、コンテキストメニューから「Delete」を選択するとかすれば消せます

【GDevelop】セーブデータを JSON 化するとメリットしか無い件

イメージ
ハイスコアやプレイヤー名、所持品やストーリーの進行状況など、ゲームのデータを保存するためのセーブ機能は、昨今のゲームには必要不可欠なものです。 GDevelop にもデータを保存するために「ストレージ」という機能が用意されています。 このストレージ機能は、PC でもスマホでも、アプリでもブラウザ(HTML5)でも、ちゃんと機能してくれるという、とてもありがたい機能なのですが、書き込みと読み込みが数値とテキストにしか対応していないという、残念な一面もあります😥 構造体や配列、さらには真偽値も保存できたほうが絶対便利なのですが、残念ながら執筆時点(v5.0.121)では、そのような機能は用意されていません。 さらに、たくさん保存したいデータが有る場合、ひとつずつアクションを組まなければいけないのも手間です。 しかし、JSON というデータ形式を利用すれば、これらの問題を一気に解決することができます! 😆 JSON ってなに? JSON の詳しい説明は割愛します。ググってくださいw🤤 ちなみに読み方はジェイソンです。 一応、超ざっくりに説明すると JavaScript と互換性のあるテキストデータフォーマットのことです。 ↓こんなふうに書くことができます。  {"名前":"パンダコ", "Lv":3,"アイテム":["やくそう","賢者の石"]} ちなみに GDevelop のプロジェクトデータ(game.json)も JSON で保存されてますね。 なんで JSON を使うの? JSON なら GDevelop の構造体も配列も真偽値も表現することができます。 さらに上記の通り、JSON はテキストデータです。 つまり GDevelop の どんな変数でも、「テキストを書き込む」アクションで保存することができます 👏 どうやって JSON で保存するの? それでは具体的に、どのようにイベントを組めば良いのかご説明します。 この例では次のようなシーン変数があり、これを保存したいと思います。 色々なデータを「セーブデータ」という構造体の変数に、まとめている点がポイントです。 ひとつの変数にまとめることで、1回のアクションで必要なデータ全てを保存でき

このブログの人気の投稿

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

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

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