Godot4 辞書型等のデータを整形・色分けして見やすく出力するアセットの導入

無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、Array[Dictionary] 型などのデータ出力ボトムパネルなどで見やすく表示(Pretty Print) してくれる無料のアセットLog.gd」をインポートして、利用例の実行までの手順を紹介します。
インポート時にファイルが Conflict (衝突) してエラーが起きた場合の対処例(非公式)も紹介します。

※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※スクリプトは自己責任でご使用ください。
※ Log.gd, a gdscript pretty-printer v0.0.6 を使用します。

プロジェクトの作成

Log.gd アセットを導入するプロジェクトを作成します。
既存のプロジェクトに追加する場合はこの章は読み飛ばしてください。

Godot Engine プロジェクトマネージャーを起動して、ウィンドウの左上の「作成」ボタンをおします。
表示された「新規プロジェクトを作成」ダイアログでプロジェクト名プロジェクトフォルダのパスを指定して「作成して編集」ボタンを押します。

Godot4.1 Log.gd アセットのインポート1

Log.gd アセットのインポート

起動したエディターの上部の AssetLib を選択して、 AssetLib ワークスペースを表示します。
AssetLib ワークスペースの左上の検索ボックスLog.gd と入力して検索された結果から「Log.gd, a gdscript pretty-printer」を選択します。

Godot4.1 Log.gd アセットのインポート2

表示されたダイアログの「ダウンロード」ボタンを押します。

Godot4.1 Log.gd アセットのインポート3

通常は、この後インストールが行われますが、 Log.gd v0.0.6 では、コンフリクトの問題が発生したので、次の章でその対処例を紹介します。

Log.gd の複数のファイル Conflict (衝突) 問題の対処例

プロジェクトは新規作成したばかりなのに、Log.gd の「インストール前にアセットを設定」ダイアログで「5ファイルがあなたのプロジェクトとコンフリクトしたため、インストールされません」と警告されました。

この章では、これを無視して、Log.gd をインストールした後、フォルダの一部を移動・削除することで対処します。
※以下の対処例は、公式の対処法ではなく、偶然発見した対処例です。自己責任でご利用ください。Log.gd のバージョンはv0.0.6 です。

Godot4.1 Log.gd アセットのインポート4

「アセットルートを無視」チェックすると、「プロジェクトと競合するファイルはありません」と警告が消えたので「インストール」ボタンを押します。

Godot4.1 Log.gd アセットのインポート5

「正常にインストールされました!」とダイアログが表示されるので OK で閉じます。
しかし、5つのエラーが出力されます。
一度、エディタを閉じて、プロジェクトを再び開きます。

Godot4.1 Log.gd アセットのインポート6

エディタの再起動で、エラーの表示は消えました。

ファイルシステムドックで、長い名前の Log.gd のルートフォルダ「 log.gd-91bf~」の直下addons フォルダres:// にドラッグ&ドロップで移動します。

すでに addons フォルダがある場合は、「 log.gd-91bf~」の addons フォルダの中身をすべて res://addons フォルダに移動してください。
※通常、GUT などの他のプラグインを導入すると res:// の下に addons フォルダが作成され、その下の各プラグインのフォルダにプラグインはインストールされます。

Godot4.1 Log.gd アセットのインポート6.1

「 log.gd-91bf~」フォルダを削除する前に、 readme.md ファイルだけ、先ほど移動した addons フォルダの下位の log フォルダにドラッグ&ドロップで移動しておきます。
※これを行わなくても動作はすると思いますが、アセットの説明として残しました。

Godot4.1 Log.gd アセットのインポート6.2

「 log.gd-91bf~」フォルダを削除します。これで先ほど移動した addons フォルダのみが残りました。

Godot4.1 Log.gd アセットのインポート7

以上で、フォルダの移動・削除による、コンフリクトの問題の独自の対処は完了です。
※前述のとおり自己責任で行ってください。

Log.gd でシグナル情報の Array[Directory] 型データを整形

Log.gd のインストールとコンフリクトの問題の対処が済んだので、Pretty Print を試してみます。

お試し用のシーンを作成

Log.gd の Pretty Print の出力関数を試すためのシーンを作成します。

新規シーンのシーンドックで「ユーザーインターフェース」を選択します。

Godot4.1 Log.gd アセットのインポート8

Control ルートノードを StudyAssetLogGd にリネームして、そのノード選択した状態で、シーンドックの右上の+のアイコンの「スクリプトをアタッチする」ボタンを押します。

Godot4.1 Log.gd アセットのインポート9

study_asset_log_gd.gd スクリプトを「作成」ボタンを押して作成してノードに割り当てます。

Godot4.1 Log.gd アセットのインポート10

作成した study_asset_log_gd.gd スクリプトを、以下のスクリプトで上書き保存します。
※詳細は、スクリプト内のコメントを参照してください。

extends Control
class_name StudyAssetLogGd
## データを整形して出力する無料アセット Log.gd の使い方を学ぶためのクラスです。
## このスクリプトを割り当てたシーンを実行した直後に、辞書のデータを pretty print します。

# Called when the node enters the scene tree for the first time.
func _ready():
	# 改行付きで Pritty Print を行う Log.gd の関数で、辞書のデータを出力します。
	var array_dictionary: Array[Dictionary] = [{"name": "piyo", "level": 99}, {"name": "fuga", "level": 39}]
	print("以下は、print による辞書データの出力です")
	print(array_dictionary)
	print("以下は Log.gd による辞書データの Pretty Print です。")
	Log.prn(array_dictionary)
	return


# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
	pass

Ctrl + S キーで study_asset_log_gd.tscn ファイルにシーンを保存します。

結果

F6 キーで選択されているお試し用のシーンを実行します。

サンプルの Dictionary (辞書) のデータが、改行やタブによって整形され、色分けされて見やすく出力されました。

Godot4.1 Log.gd アセットのインポート11
以下は、print による辞書データの出力です
[{ "name": "piyo", "level": 99 }, { "name": "fuga", "level": 39 }]
以下は Log.gd による辞書データの Pretty Print です。
[study_asset_log_gd:13]: [ { 
	"name": piyo, 
	"level": 99 }, { 
	"name": fuga, 
	"level": 39 } ]
--- Debugging process stopped ---

まとめ

今回は、無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、Array[Dictionary] 型などのデータ出力ボトムパネルなどで見やすく表示(Pretty Print) してくれる無料のアセットLog.gd」をインポートして、利用例の実行までの手順を紹介しました。
インポート時にファイルが Conflict (衝突) してエラーが起きた場合の対処例(非公式)も紹介しました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました