読者です 読者をやめる 読者になる 読者になる

お米 is ライス

C#やらUnityやらを勉強していて、これはメモっといたほうがええやろ、ということを書くつもりです

クォータービューのゲームのステージを作るエディタをリリースしました

用途

クォータービューという、世界を45度ほどの角度で見たような描画の仕方が、SRPGなどではよく用いられています。
このクォータービューを用いたゲームの多くでは、世界はマス目で区切られており、それぞれのマス目は高さを持っています。
今回作ったのは、そのようなステージを作るためのツールです。

導入

  • ダウンロードする
  • zipを任意の場所に解凍する
  • 「QuarterViewStageMaker.exe」を起動する

出力されるデータ

ステージはJsonで保存されています。
Jsonの中身はこんな感じです。

{
  "Name": "Sample",
  "Width": 4,
  "Depth": 4,
  "Squares": [
    [
      {
        "Position": {
          "X": 0.0,
          "Y": 0.0,
          "Z": 0.0
        },
        "Height": 1.0,
        "Blocks": [
          {
            "Position": {
              "X": 0.0,
              "Y": 0.0,
              "Z": 0.0
            },
            "Name": "Maptip_1"
          }
        ],
        "Discription": "",
        "Tag": ""
      },
    ],
  ]
  "Discription": "",
  "ID": 0
}

SerializeはNewtonsoftのJson.NETというライブラリを使っているのでそれを使えばちゃんとDeserializeできます。
その他のライブラリでもたぶん使えると思います。
詳細については以下のページでコードを見ればわかります。
QuarterViewStageMaker/Stage.cs at master · spi8823/QuarterViewStageMaker · GitHub
QuarterViewStageMaker/Square.cs at master · spi8823/QuarterViewStageMaker · GitHub
QuarterViewStageMaker/Block.cs at master · spi8823/QuarterViewStageMaker · GitHub


使い方

プロジェクトを作成

初回起動時、プロジェクト作成ウィンドウが表示されます。
プロジェクトはフォルダ単位で管理されているので、作成するプロジェクトフォルダの名前と、そのルートフォルダを指定して「プロジェクト作成」ボタンを押してプロジェクトを作成します。

マップチップをインポート

使用するマップチップはプロジェクト単位で管理されています。
プロジェクトにマップチップをインポートするために「Project - 素材を読み込む」を実行し、素材ファイル(pngファイル)をインポートしてください。
複数の素材ファイルを一枚の画像にまとめたファイルがある場合は、「Project - 素材を分割して読み込む」を実行すると、そのファイルを32×32の画像に分割してインポートします。
インポートした画像はプロジェクトフォルダの「Maptips」というフォルダに保存されています。
インポートしたマップチップは、画面左側のマップチップ一覧に表示されます。
ここに表示されているマップチップをクリックすることで、そのマップチップを選択することができます。

ステージを作成

画面上部中央、「新規作成」を実行するか、Ctrl-Nを入力するとステージ作成ウィンドウが表示されます。
作成するステージの名前と大きさを入力し、「作成する」を実行し、ステージを作成します。

ステージを編集

ステージを作成するとキャンバスに罫線とともにステージが表示されます。
ステージはマス目に分けられ、それぞれのマス目に乗っている複数のブロックで構成されています。

ブロックの追加

キャンバスを左クリックすることで、その位置に選択中のマップチップに基づくブロックを追加することができます。
ドラッグすることで複数のマス目にブロックを追加することもできます。

ブロックの削除

キャンバスを右クリックすることで、その位置のマス目の一番上のブロックを削除することができます。
ドラッグすることで複数のマス目のブロックを削除することもできます。

マス目の選択

Shiftキーを押しながらキャンバスをクリックすることで、その位置のマス目を選択することができます。
ドラッグすることで複数のマス目を選択することもできます。

また、Shiftキーの代わりにCtrlキーを押しながら同様の操作をすることで、部分選択をすることもできます。

Undo、Redo

Ctrl-ZやCtrl-Yを入力することでUndoやRedoをすることができます。
「戻る」・「進む」ボタンでも同様にすることができます。

その他

いい感じの機能を用意しました。
表示されてある説明通りの動作をします。

その他の情報

まだまだ開発中なのでうまく動かないところが多々あります。
そういうところを見つけたらコメントとかで報告してくださると非常に助かります。
ご意見・ご要望などもありましたら是非ともお願いします。