【Godot】スプレッドシート風アドオン「GODOT SHEETS」の紹介

今回はスプレッドシート風アドオンの「GODOT SHEETS」を紹介します。

ただ注意点として、2022.4.2現在このアドオンは「開発中(アルファ版)」とのことなので、今のところはテスト用のプロジェクトでの使用にとどめておいた方が良いかもしれません

This addon is still work in progress. Add it and test it out, but don't use it in real projects yet.

このアドオンはまだ進行中です。追加してテストしますが、実際のプロジェクトではまだ使用しないでください。

「GODOT SHEETS」の紹介

まず、GODOT SHEETS アドオンの画面レイアウトを紹介します。GODOT SHEETS アドオンを有効にすると以下のような画面でデータを編集できます。

これはアイテムデータをイメージしたデータです。

左側にシート名のリストが表示され、右側にスプレッドシート(2次元の表形式のデータ)が表示されます。データの編集は右側のスプレッドシートに入力していきます。

GODOT SHEETSのインストール方法

では、このアドオンをインストールする方法を紹介します。

先ほど説明したとおり、まだ現時点では開発中なので、itch.io からダウンロードします。

ダウンロードは「Download」のところにある赤いボタンをクリックします。

すると「gd-sheets.zip」がダウンロードされるので任意の場所に保存しておきます。

次にGodotプロジェクトを作成します。

インポート方法はいくつかあるのですが、今回は「AssetLib」からインポートする方法を紹介します。

エディタ上部にある「AssetLib」を選択し、「インポート...」をクリックします。

そして先ほどダウンロードした「gd-sheets.zip」を選んで「開く」をクリックします。

インポートするファイル一覧が表示されるのを確認して「インストール」でインポートを実行します。

インストール完了ダイアログが表示されるのでOKボタンを押します。

ファイルシステム」に「addons」ファルダが追加されています。

ここではインポート機能で追加しましたが、 "gd-sheet.zip" を直接解凍して取り出した "addons" フォルダを直接プロジェクトにコピーしても良いです。

これでインストールは完了……なのですが、プラグインとしては有効になっていない状態です。

プラグインとして有効にするためには、メニュー > プロジェクト > プロジェクト設定を選びます。

そして「プラグイン」タブを選び「Godot Sheets」のステータス「有効」にチェックを入れます。

これで GODOT SHEETS が有効になります。

GODOT SHEETS のデータ入力方法

GODOT SHEETS を使用するにはエディタ上部に表示される「Sheets」をクリックすると表示されます。

今回はゲーム内で使用するアイテムを想定したデータを入力してみます。

初期状態だとシート名が「New Sheet」なので名前を変更してみます。

名前の変更はダブルクリックで行います。

名前は「Items」にして「Rename」をクリックします。

するとシート名が「Items」に変更されました。

そうしたらスプレッドシートにデータを入力します

ID Name Ho Mp Price
FOOD1 りんご 10 0 50
FOOD2 大きなりんご 50 0 200
FOOD3 奇妙なりんご 0 20 500

最初の行にはアクセスするためのIDを指定します。そして2行目からが実際のデータとなります。

なお、1列目はそれぞれのデータにアクセスするためのキーとなります。("FOOD" で始まる文字)

スクリプトからデータにアクセスする

スクリプトからは以下のような記述でアクセスします。

extends Node2D

func _ready():
    # Itemsシートのデータを取得する
    var items = GDSheets.sheet("Items")
    
    # ID:FOOD2 の Nameを取得する
    print(items["FOOD2"]["Name"])
    print("---")
    
    # すべてのデータを取得する
    print("ID Name Hp Mp Price")
    # キーのイテレーターを回す
    for k in items.keys():
        # 値を取得する
        var v = items[k]
        var s = ""
        s += k # キー(ID)
        s += " " + v["Name"] # 名前
        s += " %d"%v["Hp"] # HP回復量
        s += " %d"%v["Mp"] # MP回復量
        s += " %d"%v["Price"] # 購入価格
        
        print(s)

実行すると以下のように出力されます。

大きなりんご

ID Name Hp Mp Price
FOOD1 りんご 10 0 50
FOOD2 大きなりんご 50 0 200
FOOD3 奇妙なりんご 0 20 500

プロジェクトファイル

今回作成したプロジェクトファイルを添付しておきます。

http://syun777.sakura.ne.jp/tmp/godot-data/TestGodotSheets.zip