LoginSignup
1

More than 5 years have passed since last update.

tmlib-rpg の紹介のみ

Last updated at Posted at 2014-12-14

クリスマスまであと10日です!

tmlib.js Advent Calendar 2014 と言う事で何かこうかな~?
と、考えていたら「まどマギ」フォントを見つけて、つい書いてしまったのが前の記事で、15日はもともと予約していた枠です。

予定では、現状の tmlib-rpg でデモを作ろうと思ったのですが、思いのほかバグ(気になるところ)が多く… 最初からゲームを作るように RPGComplier とか作ってたら時間なくなってしまった。

なので、本日は、tmlib-rpg の現状とこれからの事とかを書きます。

tmlib-rpg って何?

tmlib-rpg は、tmlib.js で、RPG を作成したい感じのプロジェクトです。まだまだ作成中。
(正確には、RPG を作るためのフレームワーク?)

将来的には、ゲームを作る人は、さまざまな素材(画像とか音)と、json のみを用意することで、JavaScript を触らずに RPG がブラウザで提供できるようになる予定。先は長い…

json で用意するのは、キャラクターやモンスターのデータや、アイテム、スキル、マップ、イベント等。で、これらを共有したり出来る仕組みがあると面白いかな~と。

なんで、tmlib.js で?

もともと RPGツクール系でRGSS(Ruby)を扱って作ってたんですが、Windowsバージョンとか上がるとツール自体のバージョンアップ対応とか、いろいろ問題があって、RPGの作成に時間がかかると、この辺がちょっとネックに…

そんなとき RPG.JS を見てブラウザ(JavaScript)でもここまでできるんだ~って思って、これで行こうと思っているときに、tmlib.js を見つけ、これをベースに自分でも作ってみることにしました。

tmlib.js はこれのみでほとんどそろってるのが、とても良いです。
いろいろそろってる感は、他の記事を見てもらうとして…tmlib-rpgな話

現状~

いまは、どこかで書いた気もしますが、イベントコマンドをコツコツと作りながら、アイテムの実装を見直しつつ、お店の処理をためしに実装しています。

お店の処理は、イベントコマンドの塊で、アイテムを選択/増減、お金の増減とか、選択しなかったときの処理や、買おうとしてやっぱりやめる~とか、ループや分岐もいっぱい使います。

これから~

さすがにモチベーションを保つために、戦闘シーンをそろそろ作ろうかと思っているところです。
そのために、スキルの実装ですね。

アイテムは、だいたい出来てるので…
同じ様にスキルも実装中。

アイテムやスキルの威力や効果は、ゲームを作る人が決めるので、tmlib-rpg では、出来るだけいろんなアイテムやスキルが作れるように設計中…(といっても予想は超えてくるだろうけれど)

戦闘シーンが出来たら、改めてデモゲームを作りたい。

ちょいちょい… HTML5 & JavaScript な RPG も出てきてるので、ゆっくりと^^

サンプル

まだまだゲームにはなってないです。準備が間に合わなかった…
demo

説明

デモが間に合わなかったので、途中だけど今の system.json 説明です。

system.json
{  
   "setting":{          // システムセッティング(ゲームオプション初期値?)
      "se":false,       // 効果音のON/OFF
      "bgm":false,      // BGMのON/OFF
      "messageSpeed":3  // メッセージの表示スピード
   },
   "start":{  // 開始時のデータ
      "actors":[  // 開始時のアクター(キャラクター)初期パーティ
         1
      ],
      "map":{
         "id":1, // 開始時のマップ
         "x":14, // 開始位置 x
         "y":5   // 開始位置 y
      }
   },
   "database":{  // データベース位置等の情報
      "path":{  
         "data":"001/"
      }
   },
   "main":{  // ゲームメイン
      "nextScene":"SceneTitle", // 最初のシーンクラス(ここではタイトルシーン)
      "param":[  // シーンクラスパラメータ
         "scene.title"
      ],
      "assets":{  // 初期アセット情報 (最初のシーンより前にロードされる)
         "scene.title":{  // タイトルシーンの初期化データ
            "type":"json",
            "src":{  
               "menus":[  
                  {  
                     "name":"NewGame (push enter key!)",
                     "action":"NewGame"
                  },
                  {  
                     "name":"Option"
                  }
               ]
            }
         },
         "system.se.menu_decision":"audio/se/fin.mp3",
         "system.se.menu_cursor_move":"audio/se/fon.mp3",
         "windowskin.image":"img/test_windowskin2.png",
         "character.hiyoko":{  
            "type":"tmss",
            "src":"001/spritesheet/hiyoko.json"
         },
         "character.object001":{  
            "type":"tmss",
            "src":"001/spritesheet/object001.json"
         },
         "character.object002":{  
            "type":"tmss",
            "src":"001/spritesheet/object002.json"
         }
      }
   }
}

実際には、json は大きくなると手で書くのは大変なので…
CoffeeScript でオブジェクト作って、json にする感じの RPGCompiler をとりあえず作成中

マップデータ等が特に大変で、この辺はツールが必要ですね。
tiled はあるんだけど、イベントとかはさすがに対応できれないので、エディタを作りたい…

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1