この情報は2025年10月02日現在です。アップデート等により改善されている可能性があります。
こんにちは。
日々G Developでできることを研究し、こどもたちに提供している、登別のプログラミング教室「のぼプロ」です。
今回は、実際に生徒から不具合報告があったので、その内容と対処法についてまとめました。
結構雑記みたいな形になりましたが、参考になりますと幸いです。
環境
- OS:Windows 11
- GDevelopバージョン:5.5.242(2025年10月2日現在最新)
- 不具合再現用のプロジェクトはGoogleドライブで公開中です
※ 再現したプロジェクトを使用しています。実際のプロジェクトとは異なります。
想定される表示画面
本来は以下のような画面が表示されており、しっかりとUIが出ている感じですね。

不具合の内容
- シーンのプレビューを押すと、ずっと回転して動かない
- 共有ボタンを押してもエラーでエクスポートできない
- ボタンの設定を開いて編集後に閉じることができない
- 編集画面では以下のようなエラー文が表示される
原因
当初は入っている画像や音楽などのリソース周りの問題かと思いましたが、全部開いても問題なかったので、プロジェクトデータを管理しているJSONの設定に目を向けてみました。
といっても、このような原因は複数あると考えられます。
原因を特定する際は、デバッグツールを使うと良いでしょう。
レンダリングのエラーの解析
デバッグツールは、エディター上で「Ctrl + Shift + I」を同時押しすると開くことができます。
赤いログがレンダリングのエラーを示しています。
少し大きめに確認してみると、
- 1行目は「文字列ではないオブジェクトがsplitという関数を呼ぼうとしているよというエラー」
- 2行目は「ColorTransformerでデータに対してsplitを行おうとした場所」
- 3行目は「RenderingTextInputObjectInstanceからColorTransformerを呼び出した場所」
という風に書かれています。
大まかに言えば、テキスト入力オブジェクトを正しく読み取ることができなかったというエラーです。
3行目のエラーの白文字リンクを押して開いてみると、以下のコードが出てきます。

これはtextColorに設定された値を入れて、finalTextColorで変換された値にするといったコードになっています。
通常GDevelopはJSONファイルで保存されており、色情報はRGBの"255;255;255"という形式で保存されています。
もし上記のようなエラーが発生するとしたら、取得しようとした情報が正しくない、もしくは「そもそも」なくてundefinedになっている可能性があります。
プレビューのエラー解析
プレビューしたときに開かないエラーについても解析します。
少し大きめに確認してみると、
- 1行目は「数値?ではないオブジェクトがtoStringという関数を呼ぼうとしているよというエラー」
- 2行目は「bitmapTextObjectでデータに対してtoStringを行おうとした場所」
という風に書かれており、レンダリングのエラーと少し似た感じになっています。
このようにしてみると、プロジェクトのデータの欠損の可能性が考えられるようになります。
ちなみにビットマップテキストは、ボタンの属性の一部として使用されています。
JSONファイルのオブジェクトの設定確認
一旦GDevelopを終了して、プロジェクトのjsonファイル(オフラインで保存している人はプロジェクトフォルダー内にあります)をVSCodeなどで開きます。

開いたら、オブジェクトの状態を確認するため、"objects"と書かれた行まで移動します。

ここで問題点が1つあります。それはテキスト入力オブジェクトの設定が一切入っていません。

content属性は、オブジェクトの設定を入れておく場所で、テキスト色や枠線、塗りつぶし色などの設定が入っています。オブジェクトを追加する際も、基本的にデフォルト値の設定が入っています。
しかし、プロジェクトが古いせいか、content属性に何も入っていないままになっています。
その後のビットマップテキストのcontent属性も入っていませんでした。

このようにして、GDevelopではオブジェクトのcontent属性に何も入っていないと壊れてしまうことを覚えておきましょう。
対処法
基本的にはcontent属性にデフォルト値を入れて、とりあえずロードできる状態にするのがベターだと考えています。デフォルト値の内容をコピーして貼り付けましょう。
まずは、テキスト入力オブジェクトのデフォルト値を見てみましょう。
"content": {
"initialValue": "",
"placeholder": "Touch to start typing",
"fontResourceName": "",
"fontSize": 20,
"inputType": "text",
"textColor": "0;0;0",
"fillColor": "255;255;255",
"fillOpacity": 255,
"borderColor": "0;0;0",
"borderOpacity": 255,
"borderWidth": 1,
"readOnly": false,
"disabled": false,
"spellCheck": false,
"paddingX": 2,
"paddingY": 1,
"textAlign": "left",
"maxLength": 0
}
これを先ほどのJSONのcontent属性内に貼り付けます。
また、ビットマップテキストのデフォルト値は以下の通りです。
"content": {
"text": "Text",
"opacity": 255,
"scale": 1,
"fontSize": 20,
"tint": "255;255;255",
"bitmapFontResourceName": "",
"textureAtlasResourceName": "",
"align": "center",
"verticalTextAlignment": "center"
}
これを先ほどのJSONのcontent属性内に貼り付けて、もう一度読み込んでみましょう。
しっかり読み込まれましたね!
そしてプレビューも問題なく行うことができます。
対処法のまとめ
- エディターの様子がおかしいときは「Ctrl + Shift + I」を同時に押して、デバッグツールを開く
- コンソールのログを確認して、原因を探る
- プロジェクトファイル(JSON)を覗いて、オブジェクトの特に「content属性が空であるか」を確認する
- 致命的に情報が足りない場合は、デフォルト値(オブジェクトを追加したときの最初の値)を入れておく
最後に
基本的に、データの有無が存在するのであれば、本来はシステムとしてエラーにならないように対処するのが大事だと思います。今後のアップデートでcontent属性の設定が足りないときはデフォルト値を採用して取り込むといった仕組みがあると、ユーザー的にも安心するのではないかと思います。
最近は結構アップデートが多く、アップデートによるプロジェクトへの障害も度々起こっています。
GDevelopさんにはプロジェクトとの互換性を意識しながらアップデートを行っていただくように願っております…。







