グラシアス~キンファミ・エディタ~
チャオ・アミーゴ! ここではサンチョ石際がグラシアスについて解説するよ!
グラシアスはキンファミのアセットデータ・マップデータ・イベント設定などを管理するWebサービスです。
グラシアスの機能
グラシアスの機能は大きく分けて、2つです。
1)画像・音楽・効果音などを整理してホスティング(Web公開)する機能
2)マップを作成し、そのイベントを作成する機能
今回作ろうとしたゲームはRPGなので、世界を表現するマップ、またその世界の中に存在するオブジェクトー人とか物とかですねーそういったオブジェクトがアクションを受けたとき、どのような処理(イベント)が行われるかを設定する必要があります。
イベント1つ1つをプログラムで直接書いていきますと大変時間がかかりますし、多くの場合で変更が入るとたくさんの場所を直さなければいけないということになります。グラシアスの機能はそういったゲームの変更が行われるであろう場所を簡単に直せるようにする機能になります。
皆さんはkintoneをお使いだと思いますので、こういった変更に強いシステムを作るには、ローコードのエディターが必要になると言う事はお分かりになると思います。
では、グラシアスの画面を簡単にご紹介しましょう。
アセットエディタ
アセットエディタの目的はデータをWeb上でホスティングすることです。
こういったメディアはkintoneでは適切に保持することができず、また頻繁に変更が入るため、ゲーム上から呼び出せる共通の場所が必要でした。
今回は3人で協力して作るため、ゲーム側で管理してしまうとバージョン管理がめんどくさいし、ゲームのコア部分ではないので、何とか分離したい気持ちがありました。
開発期間は20時間くらいで、一番最初に作成されたグラシアスの機能です。
マップエディタ(タイルエディタ)
タイルエディタはマップタイルを敷設するために必要なエディタです。画像は床、あるいはオブジェクトを表すので、それを任意の範囲のマップ上に設置して世界を表現します。
また移動できてはいけない場所があるので、目に見えない壁を敷設することができます。
話しかけた際のイベントを発生させるために、オブジェクトに任意のIDを付与でき、後述のイベントエディタで発火させるキーとすることができます。
もともとはプログラム上にJSON形式でハードコードしていたのですが、めんどくさすぎるので、ビジュアルエディタを2週間ほどかけて作成しました。平日に2時間ほどと土曜日の8時間を投入して36時間ほどかかりました。
マップエディタ(イベントエディタ)
イベントエディタは人物に話しかけたり、特定の場所を通過したりした際に必要なイベントを発生させます。
タイルエディタで設定したオブジェクトIDに対して、イベントをリンクして、話しかけたときの動作を定義します。
これももともとTypeScriptでハードコードしていたのですが、イベントの種類が多すぎたのと、あまりにも変更が多いので、イベントの種類ごとにモジュール化して、キーワードで呼び出せるようにして対応していました。
それでも対応しきれないので、結局ビジュアルエディタを頑張って作りました。
これも40時間ほど投入したのですが、視認性が悪いので作り直したいと思っています・・・。
グラシアス!
予選通過時まではマップとイベントをサンチョが作っていたのですが、ホセ森田さんがエディタを覚えてくれたので、いくつかのイベントアイテムを追加できました。例えば動画を流す、画像を表示するなどは、後から追加された機能です。
突貫工事の積み重ねになってしまったので、できれば時間をかけて直したいと思っていたのですが、なかなか機会がなく悔やんでいます。でもかなり開発を助けてくれたこのシステムに、僕はとても感謝しています。
グラシアス!
まとめ
キンファミを支えるがんばり屋システム「グラシアス」を紹介しました。読んでくれてありがとう!
今日はここまで。アディオス・アミーゴ!