スクロールできるリスト型の UI を作れる GDevelop 拡張機能を作ったよ リンクを取得 Facebook × Pinterest メール 他のアプリ 1月 16, 2021 スクロールできるリスト型の UI を簡単(?)に作れる拡張機能(エクステンション)を作成してみました。詳しくはフォーラムの投稿をご覧ください。実際に使用している様子の動画はこちら↓色々なシーンで使えるので便利だよ👺ご自由にご利用ください。 リンクを取得 Facebook × Pinterest メール 他のアプリ コメント
【GDevelop】セーブデータは暗号化しよう! 11月 11, 2021 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 の「イベント」を正しく理解しよう 1月 09, 2021 特にプログラミング経験者がおちいりやすい罠なのですが、GDevelop の「イベント」は「if文」(条件分岐)ではありません。 このことは公式 Wiki でもサラッとしか説明されていないため、誤解したままイベントを if 文と同じように利用してしまうと、その独特な挙動に悩まされることになります。 ゲーム作りの基本コンセプト:GDevelop を使うために知っておきたいこと「イベントとそれがいかにしてオブジェクトを選択するか」 確かにイベントは if 文と同じ役割を果たす面もありますが、イベントの役割はそれだけではなく、 対象のオブジェクト(インスタンス)を絞り込み 、その上で絞り込まれたインスタンスに対し 一括でアクションを実行する事ができる 、という特徴があります。 例えば、次の画像のようなシーンで、ミサイルが当たっている戦車のみ削除したい場合は…… 次の画像のようなイベントを設定するだけで、ミサイルが当たっている戦車のみ削除することができます。 これは、イベントの条件で「ミサイルに衝突している戦車」のみにインスタンスが絞られたため、そのイベントのアクションで戦車を削除すると、ミサイルと衝突している戦車だけが削除されるという仕組みです。 このような特徴により、わざわざ次の画像のようにインスタンスをひとつずつ参照して、衝突しているか確認するようなイベントの組み方をする必要はありません。 (希望通りの動作はしますが、イベントの仕組みを正しく理解していない組み方です) さらに、この絞り込まれたインスタンスは、サブイベントにも引き継がれます。 例えば次の画像のように、それぞれの戦車にインスタンス変数を持たせて、異なる番号を割り当てたシーンならば…… 次の画像のようなイベントにすることで、ミサイルとの衝突時に戦車を ID ごとに異なるアニメーションに変化させることができます。 これは、最初のイベントでミサイルと衝突している戦車のみに絞り込み、更にサブイベントで ID が一致する戦車のみに絞り込むことで、それぞれ異なるアクションが実行される仕組みです。 なお、条件に該当するオブジェクトがない場合は、そのイベントのアクションは実行されません。 では、これまでの例とは異なり「戦車のどれか1輌にでもミサイルが当たったら、3輌全て消す」には、どうしたら良いかというと…… 上の画像のよ... 続きを読む
GDevelop 5.3 がリリース!なので、ここ最近(2023年1月~2023年11月)の GDevelop バージョンアップまとめ 11月 03, 2023 11月なのに1月を「ここ最近」と言い張る度胸w さて、10ヶ月ぶりという逆に中途半端なタイミングでのバージョンアップ記事ですが、ちょっと今年の GDevelop の変化は凄まじすぎるので、GDevelop 5.3 がリリースされたこのタイミングで一度振り返っておく必要があるなと思い書くことにしました。(やる気があるときにやらないとね🤤) 具体的には v5.1.156 から v5.3.180 までの 24 回分の詳細を……書けるわけないので、超ざっくり重要そうな点のみピックアップしたいと思います。(時系列無視、重要だと思うもの順) 3D に対応しました![v5.1.162][v5.2.165] なんといっても最大のビッグニュースはこれでしょう。 GDevelop は 2D ゲームエンジンの使いやすさをそのままに、3D も扱えるようになりました。 もちろん Unity や Unreal Engine などと比べると 3D の表現力や機能は劣りますが、それでも 3D が扱えるようになったことで、制作できるゲームの幅は格段に広がりました。 既にライティングやモデルアニメーションだけでなく、2D でお馴染みのパーティクルや Tween、そしてレイキャストも拡張機能で 3D 対応されています。 シンプルでカジュアルな 3D ゲームを制作する際に、難解な既存の 3D ゲームエンジンではなく GDevelop が採用されるということも今後は増えていくかもしれません。 すぐに使える便利なオブジェクトが追加されました。[v5.1.157] マルチタッチジョイスティック パネルスプライトボタン スライダー 切り替えスイッチ リソースゲージ(連続) リソースゲージ(単位区切り) それぞれ選択すると既存のデザイン一覧が表示されますが、もしそこに気に入ったデザインがない場合は「スキップしてゼロから作る」ボタンを押せば、自由に設定できますよ😉 なお、これらは正式には「カスタムオブジェクト」という拡張機能によって提供されるオブジェクトです。 そのため、これらを追加すると自動的に拡張機能がゲームに追加されます。 変数へのアクセスが劇的に簡単になりました![v5.2.175][v5.2.176] 式で変数を使用する構文がとてもシンプルになりました。 例えば…… 今まで ⇒ Variable(シーン... 続きを読む
コメント
コメントを投稿