25
1 RPG ツクールを使用したゲーム作成 ‐ハンナーン島の勇者‐ 1 26 経営情報学部経営情報学科 5111016 井上幹也 5111194 細井絢悟

RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

1

RPG ツクールを使用したゲーム作成

‐ハンナーン島の勇者‐

1 月 26 日

経営情報学部経営情報学科

5111016 井上幹也

5111194 細井絢悟

Page 2: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

2

目次

第 1 章 はじめに ......................................................................................................... 3

第 2 章 関連研究 ......................................................................................................... 4

第 1 節 RPG ツクールについて ............................................................................... 4

第 2 節 RPG について ............................................................................................. 4

第 3 節 RPG の歴史 ................................................................................................ 6

第 4 節 日本の RPG ................................................................................................ 6

第 5 節 RPG の種類 ................................................................................................ 8

第 3 章 作成物の紹介 .................................................................................................. 9

第 1 節 ゲームの概要 .............................................................................................. 9

第 2 節 作成手順 ..................................................................................................... 9

第 3 節 マップの作成 ............................................................................................ 10

第 4 節 データベース ............................................................................................ 11

第 5 節 イベントの導入 ......................................................................................... 14

第 4 章 スクリプト機能 ............................................................................................ 16

第 1 節 スクリプト ................................................................................................ 16

第 2 節 Ruby ......................................................................................................... 16

第 5 章 オリジナル機能の追加 .................................................................................. 20

第 1 節 視界制限機能の概要 .................................................................................. 20

第 2 節 視界制限スクリプトの概要 ....................................................................... 20

第 3 節 視界制限スクリプトの詳細 ....................................................................... 21

第 4 節 追加機能のまとめ .............................................................................. 23

第 6 章 まとめ ................................................................................................... 24

参考文献 .............................................................................................................. 25

謝辞 ..................................................................................................................... 25

Page 3: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

3

第 1 章 はじめに

近年、スマートフォンで GREEや Mobage等で配信されているソーシャルゲームを利用す

る人が多い。その理由はスマートフォンが普及したこと、無料でゲームができること、通

学や通勤の短い時間でも楽しめることである。中でも、2014年 11月 27日の時点で 3200万

ものダウンロード数を記録した、パズル&ドラゴンズが人気を博している。パズル&ドラ

ゴンズはパズルゲームとロールプレイングゲーム(以下 RPG)の要素が合わさったソーシャ

ルゲームである。一方、ゲームソフトで有名な RPGと言えば 1980年代からあるドラゴンク

エストやファイナルファンタジーがある。このように RPGは昔から今まで多くの作品が出

続けている。ゲームを作る技術は年々進化し続けている。ゲームシステムは複雑化し、グ

ラフィックは現実の人間に近い表現ができるまでに至っている。現状ゲームを作るには相

当な技術が必要となっているため、一般人ではゲームを一から作ることが難しい。その中

で、RPGツクールシリーズが誕生した。

RPGツクールはプログラムなどの専門知識がなくても簡単に RPGを作ることができるソフ

トである。キャラクターのデザインやステータスの詳細な部分まで設定が可能である為、

オリジナルの作品を作ることができる。RPG初心者はサンプルデータを使い詳細な設定を任

せゲームを作ることもできる。他にはスクリプトと呼ばれるイベントなどのサンプルデー

タにはない命令を出すことができるプログラムがある。スクリプトを使用するにはある程

度のプログラミング言語の知識が必要とされる。スクリプトを利用することによってアク

ションゲームやシューティングゲームといった RPGとは全く違うゲームも作り出すことも

出来る。RPGツクールの作品は同じサンプルデータを使っていたとしてもスクリプトの違い

によって他者の作品と差別化を図ることができる。

今回、私たちはゲーム制作の容易性を検証するために、RPGツクール VX Aceを使用し RPG

を作成した。RPGツクールは初心者でも簡単に扱うことができる。サンプルも充実しており、

ゲーム作り初心者のための教材といってもよい。今回作成した RPGの概要は、主人公の町

に敵が襲いかかって来て、その敵を倒していくというストーリーである。フィールドマッ

プと装備アイテムの構成は私たちが考えて作り、その他ダンジョンマップやキャラクター

デザインなどはサンプルデータを少し変更して使用している。一部スクリプトを使用しオ

リジナル要素を織り込んだ。

以降、第2章では RPGの関連研究について説明し、第3章では作成物の紹介を説明し、

第4章ではスクリプトによるオリジナル要素について説明する。第5章では課題やまとめ

について述べる。

Page 4: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

4

第 2 章 関連研究

本章では RPG ツクールでの RPG を作成するにあたり、RPG ツクールの詳細を説明、及

び RPG の定義とその歴史を説明する。

第1節 RPG ツクールについて

RPG ツクールとは、株式会社 KADOKAWA から発売されている RPG 作成ソフトである。

様々な命令・画像・音楽を組み合わせてオリジナルの RPG を作成することができる。また、

画像・音楽はあらかじめ用意されているものの他、自分で作ったものも使用できる。

RPG ツクールの歴史は古く、第 1 作は 1990 年発売の『RPG コンストラクションツール

Dante』である。現在まで PC 版、コンシューマー版、携帯ゲーム版を合わせると 20 作も

のソフトが発売されている。現在発売されている最新作は、2011 年発売の「RPG ツクール

VX Ace」であり、今回のゲーム作成で使用している(図 1 参照)。

第2節 RPG について

RPG とは、ロールプレイングゲーム(Role Playing Game)の略語である。一般的には

参加者が各自に割り当てられたキャラクターを操作し、お互いに協力しあい、架空の状況

下にて与えられる試練(冒険、難題、探索、戦闘など)を乗り越えて目的の達成を目指す

ゲームの一種である。また、RPG には成長要素、リソース管理要素、物語演出要素、冒険

探索要素の四つの要素が基本的にはゲームプレイに備わっている。成長要素は、努力の成

果としてキャラクターの能力値が成長することである(図 2 参照)。リソース管理要素は、

アイテム選びや消費、能力の成長の仕方といったリソースを効率よく管理し、ゲームを有

利に運ぶことである(図 3 参照)。物語演出要素は、コンピュータならではのダイナミック

な演出、RPG ならではの感情移入しやすい物語のことである(図 4 参照)。冒険探索要素は、

広い世界を探索し、旅をすることである(図 5 参照)。さらに、以上を踏まえた上で RPG

は以下の2種類に分けることができる。

図 1 RPG ツクール VX Ace

出所)http://ebten.jp/eb/mailmag/extra/111125ebten-ex/

Page 5: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

5

(1)テーブルトーク RPG

ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

間同士の会話とルールブックに記載されたルールに従って遊ぶ“対話型”のロールプレイ

ングゲームを指す言葉であり、TRPG と略記されることが多い。

テーブルトーク RPG ではゲームマスター(GM)と呼ばれる人が他の参加者(プレイヤ

ー)と対話しながらゲームの舞台となる世界とそこに登場するいろいろな事件や人物を説

明し、決められたルールに従って、プレイヤーが考えたキャラクターの行動が実現したか

否かを裁定することでゲームを進行させる。単純化して言えば、コンピュータで遊ぶ RPG

での、コンピュータ役をゲームマスターという人間が担当するのがテーブルトーク RPG だ

といえる。

(2)コンピュータ RPG

コンピュータゲームにおける一つのジャンルのことを指す。ゲームプレイの肝となる行

為結果(戦闘など)を、ターンごとに攻撃をして、能力値計算を主とした処理で判定する

ため、アクションゲームやシューティングゲームに比べてプレイヤーの反射神経や操作技

能に依存しないゲームバランスになっているのがコンピュータ RPG の特徴である。一般的

に RPG といえばコンピュータ RPG のことを指す。

図 2 成長要素 図 3 リソース管理要素

出所)http://blog.livedoor.jp/aatyu/archives/1914157.html

出所)http://freegame.on.arena.ne.jp/roleplaying2/game_2416.html

図 4 物語演出要素 図 5 冒険探索要素

出所)http://news.game-life.jp/archives/4053

出所)http://onlinegame-win7.com/taiou/page/3/

Page 6: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

6

第3節 RPG の歴史

世界初の RPG が登場したのは 1970 年代前半のアメリカで、1974 年に世界最初の TRPG

であるダンジョンズ&ドラゴンズ(図 6 参照)は誕生した。内容は、ドラゴンなどの魔物

が住み危険な罠の仕掛けられたダンジョンの中を、武器を使う戦士、魔法使いなど、異な

る能力を持ったキャラクターを組み合わせたパーティを組んで探検し、様々な謎を解き、

ダンジョンの奥に眠る財宝や魔法の物品を獲得するというものである。

このゲームは、1954 年出版のファンタジー小説である指輪物語の影響が強く、この小説

の世界観を体感できるようにしたい有志によって作り出された作品である。この作品は経

験値によってレベルが上がるシステムがあり、RPG の要素の一つである成長要素を初めて

取り入れた点で、世界初の RPG といわれる。

その後、TRPG におけるゲームマスターの役割をコンピュータで代用しようという考え

のもと、ダンジョンズ&ドラゴンズがコンピュータに移植されると大ヒットになり、コン

ピュータ RPG が誕生した。1980 年代には「ウィザードリィ」や「ウルティマ」などのコ

ンピュータ RPG がアメリカで誕生しコンピュータゲームを世界中に普及させるとともに、

RPG のゲームシステムの基礎が固まることになる。

第4節 日本の RPG

日本で初めて作られた本格的な RPG は 1986 年、ファミリーコンピュータで発売された

「ドラゴンクエスト」(図 7 参照)である。日本では、ゲーム人口が子供に多くいたことも

あり、これまでの RPG と比べて操作性を極力単純にし、誰でも簡単に遊べるようにしたこ

とにより RPG が受け入れられた。以後、日本ではこのドラゴンクエストのスタイルが RPG

の定番になる。その後、日本の RPG は独自進化を遂げていくことになる。海外では当時パ

ソコンで RPG をするのが主流であり、大人のプレイヤーが多くいたのに対し、日本はファ

ミリーコンピュータで RPG を発売したことにより、子供のプレイヤーが主流になったこと

が理由の一つである。

図 6 ゲームプレイ中の様子

出所)ダンジョンズ&ドラゴンズ - Wikipedia

Page 7: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

7

日本の RPG の特徴は、システムが単純、主人公の年齢層が若い、ゲームクリア重視、ス

トーリー重視といった特徴を挙げることができる。システムが単純、主人公の年齢層が若

い理由としては、前述で書いたように当時日本での RPG プレイヤーの年齢層が若いことが

理由に挙げられる。ゲームクリア重視に関していえば、クリア後の達成感を与えるためで

ある。そして、ストーリー重視に関しては、RPG は戦闘を重ねて強くなることが醍醐味の

一つなのだが、「何故強くならなければいけないのか?」という当然の疑問が、これまでは

あまり考えられておらず、答えとして最終ボスを倒すためとしか答えようがなかったので

ある。では「何故最終ボスを倒さなければならないのか?」この疑問に答えることは難し

い。明確な理由が無かったのである。ここに目を付けたのが日本人で、理由が無ければ付

ければいいと加えられたのがストーリーなのである。つまり、RPG の醍醐味である戦闘に

よる成長に理由を付けることにより、より RPG を楽しくするために作られたのがストーリ

ーである。あくまでも RPG システムの補助的な役割であったストーリーだが、現在、日本

ではストーリーの方が重視されるようになってきている。これは RPG をプレイする人々の

年齢層が上がってきていることにより、より綿密なストーリーを要求する声が高まったこ

とが理由に考えられる。代表的な作品としては、ファイナルファンタジーシリーズ(図 8

参照)やテイルズシリーズ(図 9 参照)が挙げられる。

図 7 ドラゴンクエスト 1

出所)http://muketsu.info/dq1.html

図 8 ファイナルファンタジー1 図 9 テイルズオブファンタジア

出所)http://ffsoku.blog.jp/archives/1938219.html

出所)http://ankosokuho.blog.fc2.com/blog-entry-437.html

Page 8: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

8

第 5 節 RPG の種類

RPG には様々な種類があり、複数の種類を兼ねるゲームも多い為、一概には区別できな

い。なので、二つの方法で種類分けを考える。まず、RPG にとって、最も必要な要素は戦

闘である。この戦闘の方式を基準とした区別として、コマンド RPG、アクション RPG、シ

ミュレーション RPG の三種類に分けることができる(図 10 参照)。そして、重視された要

素を基準にした区別として、育成 RPG、アドベンチャーRPG、バランス RPG、ダンジョ

ン探索 RPG、打倒 RPG の五種類に分けることができる(図 11 参照)。戦闘の方式を基準

とした区別は、かなり明確に分けることができるのに対し、重視された要素を基準にした

区別は、明確には分けづらい。しかし、この区別は自分の好きな RPG に直結していること

が多く、自分のプレイするRPGの傾向を読み取れやすくなる[1]。

図 10 戦闘の方法を基準とした区別

図 11 重視された要素を基準とした区別

Page 9: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

9

第 3 章 作成物の紹介

この章では、RPG ツクール VX Ace を使って作成したゲームを紹介する[2]。

第1節 ゲームの概要

今回作成したRPGは、主人公が住んでいる島に現れた敵を倒していくという物語である。

基本的にはストーリー通りに物語を進めていき、敵との戦闘(図 12 参照)で主人公のレベ

ルを上げていく。3 つのダンジョンのボス(図 13 参照)を倒して物語を進め、最後のボス

を倒すことでゲーム終了となる。

第2節 作成の手順

基本的な作成手順はマップの作成から始まる。マップを作成した後、データベースでキ

ャラクターや敵の設定、アイテムの作成などを行う。次はイベントの導入である。最後に

テストプレイを行い、不具合などを修正していく。この作業を繰り返し、ゲームを完成さ

せていく(図 14 参照)。

図 12 戦闘画面 図 13 ダンジョン画面

図 14 作成手順

Page 10: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

10

第3節 マップの作成

RPG ツクール VX Ace でゲームを作る際、最初にマップを作成する。マップはプレイヤ

ーが移動する舞台となるので、必要不可欠な要素である。一般的には一つの町だけでも、

外観、そして個々の建物の内部といったように、複数のマップで構成されている。

町やダンジョンなどのシンボルが置かれたマップを「フィールドマップ」または、「ワー

ルドマップ」と呼ぶ。マップはタイルを組み合わせて作っていく。タイルとは①にある集

合体の1つ1つのことを指し、これらを組み合わせて②のようなマップを作り上げる。③

は作成したすべてのマップが表示されている場所で、マップツリーと呼ぶ(図 15 参照)。

次に、マップの設定についての説明をする。①の画面でマップの基本設定を設定するこ

とができる。マップの名前を付ける、マップ作成に使用するマップタイルのセットを選択、

マップの横幅と縦幅の設定、マップ内に出現する敵の設定及び敵との遭遇確率の設定など

をすることができる。設定が完了したのち、タイルを組み合わせてマップのデザインを作

ると、②のようにマップが完成する(図 16 参照)。このマップをまずは必要分作ることが

求められる。なお、今回のゲーム作成で使ったマップは全部で 26 個である。

オープニングでは二つのマップを、物語のあらすじを紹介するために使っている。町で

は、物語の進行及び、武器や防具、アイテムなどを販売する店、体力を回復する施設であ

る宿などを作り、ゲーム内での拠点になるマップを作った。ダンジョン 1、ダンジョン 2、

ダンジョン 3 ではマップ内にランダムで敵が出現するようにしている。また、各ダンジョ

ンの最深部にはボスを置き、ボスを倒すことによって、ダンジョンのクリアとなる。ダン

ジョン 1、ダンジョン 2、ダンジョン 3 の順番でクリアすると、ゲームクリアになる。ダン

ジョン 4 は、直接物語には関係無いが、ボスを倒すと財宝が手に入る仕様になっている(図

17 参照)。

図 15 フィールドマップ

③ ②

Page 11: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

11

第4節 データベース

データベースとは、主人公のデータ、敵のデータ、アイテムのデータなどを管理してい

る場所のことである。データベースには全部で 14 の項目があり、「アクター」「職業」「ス

キル」「アイテム」「武器」「防具」「敵キャラ」「敵グループ」「ステート」「アニメーション」

「タイルセット」「コモンイベント」「システム」「用語」がある。それらの項目を設定して

いくことにより、ゲームの基礎を作っていくことになる。今回のゲーム作成では、特に「ア

クター」「敵グループ」の項目を重点的に編集した。

図 16 マップの設定

① ②

オープニング 町

ダンジョン 1 ダンジョン 2 ダンジョン 3

ゲームクリア

ダンジョン 4

図 17 ゲームの流れ

Page 12: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

12

データベースの「システム」を扱っている場所では、ゲーム開始時のパーティ設定を①

で、RPG ツクールに用意されている音楽を②で、同じく効果音を③で設定することができ

る。④ではゲームタイトルの設定及び、ゲーム内通貨の設定、乗り物のグラフィックを設

定できる。⑤はゲーム全体に影響するオプションを設定することができる。有効にしたい

オプションにはチェックを入れ、無効にしたいオプションはチェックをはずす。⑥はプレ

イヤー及び、乗り物の初期位置を設定できる。⑦はゲームのタイトル画面のグラフィック

を設定できる(図 18 参照)。

RPG ツクール VX Ace では、あらかじめ用意されているサンプルデータを使って、ゲー

ムを作ることが可能である。基本的にデータベースでは、①にデータの ID(管理番号)と

名前のリストが表示され、②にそのデータ項目の内容が表示されている。データを編集す

る際には、①のリストから編集したいものをクリックし、②に表示される設定項目を編集

するという流れで行う(図 19 参照)。「アクター」を扱っている場所では、キャラクターの

名前、職業、レベルの上限を①で、キャラクターのグラフィックを②で、初期装備を③で、

習得している技を④で設定し、主人公と仲間のキャラクターを作成することができる(図

20 参照)。今回は主人公の作成及び、仲間のキャラクターを二人、合計三体のキャラクター

を作成した(図 22 参照)。「敵グループ」を扱っている場所では、敵の出現するパターン、

戦闘時に現れる敵グループを①で、戦闘中に起こるイベントを②で設定することができ、

戦闘シーンを単調なものにしないように工夫することができる(図 21 参照)。今回はダン

ジョン事に出現する敵を変え、物語が進むにつれて敵を強くした(図 23 参照)。

図 18 システムの設定

② ③

Page 13: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

13

図 19 データベース

① ②

図 20 キャラクターの設定 図 21 敵の設定

・主人公、名前はアーク

・攻撃力型、前衛

・仲間 1、名前はジム

・遠距離型、後衛

・仲間 2、名前はマリア

・回復型、後衛

図 22 キャラクター 図 23 敵の出現箇所

Page 14: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

14

第5節 イベントの導入

町の人との会話、マップ間の移動、アイテムを入手出来る宝箱など、ゲーム中に起こ

るすべての出来事を「イベント」と呼ぶ。ゲームは、様々なイベントにより構成され、そ

れらのイベントが実行されることでゲームは進行していく。つまり、ゲームを作るという

ことは、ゲームに必要なイベントを作ることである。イベントは大きく 3 種類に分けるこ

とができ、マップ上に作成するマップイベント、敵グループごとに設定するバトルイベン

ト、ゲーム全体を通じて使うことのできるコモンイベントがある。ただ、作成する大半の

イベントはマップイベントになるので、一般的に「イベント」は、マップイベントのこと

を指す。

物語の始まりであるオープニングを作るために用意したイベントを使って、イベントの

設定画面を説明する。このイベントは、ゲームを始めると、強制的に始まるイベントで、

文章が自動的に流れるようになっている。①の出現条件では、マップイベントを出現させ

るための条件を設定することができる。②はマップ上に表示されるイベントのグラフィッ

クを設定することができる、③の自律移動は、イベントの内容が実行される前からイベン

トを動かしたい場合に設定する。④のプライオリティは、プレイヤーキャラクターを基準

として、イベントグラフィックをどの位置に表示するかを設定できる。⑤のトリガーは、

プレイヤーと接触した時点、プレイヤーに話しかけた時点など、イベントの内容を実行す

る「きっかけ」を設定することができる。後は、出現条件を満たし、トリガーで設定した

操作を行った時に、⑥の設定された内容を実行する実行内容の設定をすればよい。なので、

実行内容に書かれた内容が、⑦のように、ゲームを動かすと目に見える形で実行される(図

24 参照)。

実行内容を設定するには、イベントの内容を設定するためのイベントコマンドが必要に

なってくる(図 25 参照)。ここから使用したいイベントコマンドを選択すると、[実行内容]

リストにイベントコマンドが設定される。イベントが実行されると、[実行内容]リストの

図 24 イベントの設定

⑥ ⑦

Page 15: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

15

上から下に向かって、イベントコマンドで設定した内容が一つずつ処理されていく。まず、

イベントコマンド「文章の表示」を使いキャラクターに言葉をしゃべらせている。その後、

イベントコマンド「バトルの処理」を行い、敵との戦闘をするように指示を出している。

敵との戦闘に勝利すれば、また「文章の表示」を指示し、スイッチ 001 を ON にしている。

スイッチはイベントの出現条件に必要で、スイッチ 001 が ON でないと実行しないイベン

トを作ることができる。後はイベントコマンド「移動ルートの設定」を使いキャラクター

をマップ内で移動させ、イベントコマンド「場所移動」を使い、別マップにキャラクター

を移動し、「文章の表示」でキャラクターをしゃべらせて、このイベントは終了となる。イ

ベントを実行すると、「実行内容」リストの一番上の記述から実行され、②のように表示さ

れる(図 26 参照)。

このようにして一つ一つイベントを作っていき、イベントを組み合わせていくことによ

り、物語を進行していく。大まかなイベントの流れとしては、オープニングイベントから

始まり、町での仲間加入イベント、各ダンジョンでのイベント、ゲームクリア時のイベン

トとなっている。

図 25 イベントコマンド

図 26 イベントの実行

Page 16: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

16

第 4 章 スクリプト機能

第1節 スクリプト

スクリプトとはプログラムの一種である。RPG ツクールのスクリプトは RGSS3(Ruby

Game Scripting System)と呼ばれ、オブジェクト指向言語 Ruby を拡張して開発された

スクリプト言語である。「メインメニュー」の「ツール」から「スクリプトエディタ」を選

択すると、スクリプトの画面が表示される。①はセクションと呼び、スクリプトの編集単

位のことを指す。②はセクションの中身を表示する場所となっている(図 27 参照)。RGSS3

はツクールの心臓部とも言うべき、ゲームの実行を司るプログラムである。これを編集す

ることによって、RPG ツクールに新機能を追加することができる。

第 2 節 Ruby

(1)Ruby とは

Ruby(ルビー)は、「まつもとゆきひろ」により開発されたオブジェクト指向スクリプト

言語である。Ruby は 1993 年 2 月 24 日に生まれ、1995 年 12 月にインターネット上で発

表された。また、Ruby は日本人が開発した日本発のプログラミング言語である。名称であ

る Ruby は、プログラミング言語 Perl (パール)が 6 月の誕生石である Pearl(真珠)と

同じ発音をすることから、まつもとの同僚の誕生石(7 月)のルビーを取って名付けられた。

設計者のまつもと氏が「ストレス無くプログラミングを楽しめること」を目標にしている

ことから、ソースコードの可読性を重視している。

オブジェクト指向型のプログラミング言語のため、数値や文字列などプログラミングに

必要なデータを全てオブジェクトとして扱っている。オブジェクト指向とは、データと処

理をオブジェクトとして表現することで、プログラムを構成していく考え方のことである。

オブジェクトとは、ソフトウェアが扱おうとしている現実世界に存在する物理的、あるい

は抽象的な実体を、コンピュータ上に再現したものである。また、オブジェクト指向言語

のため、クラス、メソッド、ガベージコレクション、スレッド処理、正規表現、例外処理

などの機能を持っている。Ruby の特徴としては、簡潔にコードが書ける、柔軟、抽象化に

優れているなどが挙げられる。これらは、プログラムを早く書き上げられる、書いたコー

図 27 スクリプトエディタ画面

Page 17: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

17

ドをメンテナンスしやすい、プログラムが分かりやすく、変化に強い構造を持つことがで

きるといった利点に繋がる[3]。

(2)Ruby の文法

Ruby プログラムはテキストファイルとして記述する。その為、プログラムを記述、作成

したプログラムを見るにはテキストエディタを使用する。基本的に、1 つの処理を行うプロ

グラムを 1 行に記述する。ただ、実際のプログラムでは複数の処理を行うので、プログラ

ムも複数行になる。

① 文字列オブジェクト

複数の文字が組み合わさったものが文字列である。Ruby はオブジェクト指向言語なので、

文字列もオブジェクトの 1 つになる。ダブルクオーテーション、または、シングルクオー

テーションで文字列にしたい文字の集まりを囲うことで、文字列オブジェクトが作成され

る。実行結果を出力するには、「print」メソッドを使う。「¥n」は改行を意味する(図 28

参照)。

②if 文

If 文は条件に従って処理を分岐させるために使われる。条件式にはその後に記述された処

理を行う条件を記述する。条件式として変数 amari に代入された数値の値「10%3」を「0」

と比較する。条件に当てはまっている場合は、「then」から「end」までの間に書かれた処

理を上から順に実行する。条件に当てはまらなかった場合は「end」の次の行へ処理が移る。

「amari !=0 then」は変数 amari に代入された数値が「0」でない場合を意味するので、今

回は「then」から「end」までの処理が実行される。実行結果は「割り切れませんでした」

「余りは 1 です」が、改行されて表示される。(図 29 参照)。

require "kconv"

print(Kconv.tosjis("こんにちは¥n"))

print(Kconv.tosjis('Hello¥n'))

こんにちは

Hello

実行

図 28 文字列のプログラム

if 条件式 then

条件式が真の時に実行する処理 1

条件式が真の時に実行する処理 2

end

amari = 10 % 3

if amari != 0 then

print("割り切れませんでした¥n")

print("余りは", amari, "です¥n")

end

図 29 if 文のプログラム

割り切れませんでした

余りは 1 です

実行

Page 18: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

18

③for 文

for 文では、あらかじめ指定したオブジェクトから順に、値を取り出しながら繰り返し処

理を行う。繰り返しが 1 回行われるたびに、オブジェクトに対して「each」メソッドが実

行し、取得した要素などを変数に代入する。「1..3」は範囲オブジェクトと呼ばれるのもで、

for 文の中で指定されると、最初の値から最後の値までを順に要素として取り出す(図 30

参照)。

(3)クラスとモジュール

①クラス

クラスは物体(オブジェクト)を作成する元になる設計図である。つまり作成する物体はど

のようなものなのかを定義する。クラスは「class」から始まり「end」で終わりとなる。今

回のサンプルプログラムでは、「車」の設計図であるクラスを定義し、クラスからオブジェ

クトを作成した後で、オブジェクトに対して名前を出力させている。クラスからオブジェ

クトを作成するには、クラス名に対して「new」メソッドを実行する。今回のプログラムで

は「car = Car.new(“crowo”)」の部分にあたる。「new」によってクラスから生成されたオブ

ジェクトは、「initialize」メソッドに呼ばれる。「car.dispName」で「dispName」を参照

しているので、実行すると「crown」が表示される(図 31 参照)。

for 変数 in オブジェクト do

実行する処理 1

実行する処理 2

end

for num in 1..3 do

print("num = ", num, "¥n")

end

print("End")

実行 num=1

num=2

num=3

End

図 30 for文のプログラム

class クラス名

end

class Car

def initialize(carname)

@name = carname

end

def dispName

print(@name)

end

end

car = Car.new("crown")

car.dispName

crown

図 31 クラスの定義とサンプルプログラム

実行

Page 19: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

19

②モジュール

モジュールは「module」から始まり「end」で終わりとなる。モジュールはクラスに非

常に似た構成を持っている。大きな違いとして、クラスはクラスからオブジェクトを作成

することができるが、モジュールでは作成することができない。モジュールの利用方法と

しては、「モジュール名.メソッド名」の形式で関数のように実行する。また、他のクラスの

中に「include」して利用することができる。「include」は、モジュールに含まれるメソッ

ドや定数をクラスの中に取り込むことができる。今回のサンプルプログラムでは、「Test」

クラスの中に「HeikinModule」を読み込んで利用している。実行すると、「10 と 8 の平均

は 9 です」が表示される(図 32 参照)[4]。

module HeikinModule

def heikin(x, y)

kekka = (x + y) / 2

return kekka

end

end

class Test

include HeikinModule

def dispHeikin(x, y)

kekka = heikin(x, y)

print(x, "と", y, "の平均は", kekka, "です¥n")

end

end

test = Test.new

test.dispHeikin(10, 8)

module モジュール名

end

10 と 8 の平均は 9 です

実行

図 32 モジュールの定義とサンプルプログラム

Page 20: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

20

第 5 章 オリジナル機能の追加

第 1 節 視界制限機能の概要

今回ゲームに追加した機能では、マップ上の視界を制限することができる。①がスクリ

プトを追加する前で、②がスクリプト追加後である(図 33 参照)。このスクリプトはゲー

ム内の視界を変更している訳ではない。外部より画像を取り込み、その画像をゲーム画面

上に表示することで、視界が狭まっているように見せている(図 34 参照)。また、特定の

アイテムやアクターを持っていると、視界が広がるように設定することができる。また、

ゲームとしては、視界を制限することによって、ダンジョンを攻略する際の難易度の上昇、

ダンジョンの探索をより楽しくすることができる。

第 2 節 視界制限スクリプトの概要

RPG ツクール VX Ace では、ゲーム内部にクラスが用意されている。これらのクラスを

使って、ゲームに機能を追加、編集することができる。今回、視界制限のスクリプトを作

る際に追加したクラスは、赤丸で囲んだ 3 つである。「Game_Actor」クラスはゲームキャ

ラクターを扱うクラスである。「Game Base_Item」はゲーム内のアイテムや装備品を扱う

クラスである。「Sprite_SightShadow」は新しく作った図 34 を表示させるクラスである。

そして、編集したクラスは、青丸で囲んだ「Spriteset_map」はマップ画面のグラフィック

をまとめるクラスである(図 35 参照)。

① ②

図 33 視界制限

図 34 sight_shadow.png

Page 21: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

21

第 3 節 視界制限スクリプトの詳細

ここでは、図 36 を使い、作成したスクリプトの詳細を紹介する。図 36 の中の①から⑨

のマークが、以下の項番①から⑨に相当する(図 36 参照)。

図 35 クラス図

図 36 ソースコード

Page 22: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

22

①項目設定

SIGHT の[ ]には視界制限したいマップの ID を入れ、=後の数字分ドット四方に視界を制

限する TMBLSIGHT モジュールを作り、後に使用する変数を作っている。

②メモ欄に書いた視界補正値の管理

アクター、職業、スキル、アイテム、武器、防具、敵キャラ及びステートのスーパーク

ラスである RPG::BaseItem クラスに、sight_power メソッドを作っている。このメソッド

はメモ欄に何も書いていない場合は何も返さない。逆にメモ欄に視界補正値が書いてある

場合は③で使うアクターの特徴に追加される。

③パーティの持つ視界補正の合計

アクターのグラフィック、装備、スキル等を管理している Game_Actor クラスに

sight_power メソッドを作っている。このメソッドは、特徴を保持する全オブジェクトの配

列を取得する feature_objects を使い、パーティが持っている視界補正値を足している。

④オブジェクトの初期化

ゲ ーム 画面上 にキ ャラ クタ ー等を 表示 する Sprite クラ スを継 承して、

Sprite_SightShadow クラスを作成している。画像の表示範囲を設定する viewport メソッ

ドに initialize を使い初期化している。ファイルの中にある sight_shadow(画像)を読み込む

@bitmap_shadow 変数を作っている。グラフィック全体にかかわる処理を行う Graphics

モジュールの Graphics.width メソッドと Graphics.height メソッドでゲーム画面の縦幅と

横幅を取得している。

⑤フレーム更新

①で設定されたマップIDにキャラクターが移動するとゲーム画面上に sight_shadow

を表示し、設定していないマップでは表示しない。次に、①で設定した補正値、ゲーム変

数による補正値、パーティが持つ視界補正値をすべて足す。足した補正値を変数 w に置き

換えている。操作キャラの x 座標と y 座標を変数 x と変数 y に置き換えている。x 軸と y

軸は前述した変数 x と y の位置に横幅と縦幅は変数 w で作った四角形を変数 rect に置き換

えている。そして rect の中に@bitmap_shadow を入れる。以降の bitmap.fill_rect で視界

補正値分のドット四方が画像の白い部分が収まるようにして、sight_shadow を表示させて

いる。白い部分は透明の色を変数 color に置き換えている。

⑥オブジェクトの初期化

マップ画面のグラフィックをまとめる Spriteset_map クラスにある、初期化をする

initialize メソッドに、TMBLSIGHT に設定した項目と create_sight_shadow も初期化す

るように、alias を使い再定義している。

⑦視界制限スプライトの作成

マップ上にsight_shadowが表示されるようになる create_sight_shadowメソッドを作成

している。

Page 23: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

23

⑧フレーム更新

⑥と同じようにフレーム更新する update メソッドに update_sight_shadow と⑤で設定

した sight_shadow の位置も更新するように alias を使い再定義している。

⑨視界制限スプライトの更新

マップ上の sight_shadow を更新する update_sight_shadow メソッドを作成している。

第 4 節 追加機能のまとめ

RPG ツクールは、Ruby を拡張して開発された、RPG ツクール専用のスクリプト言語で

ある RGSS3 を使っている。Ruby との違いは、ゲームを作るうえで必要となるクラスや、

モジュールなどが新たに定義されていることである。実行ファイルは Game.exe で、これ

には Ruby の実装と組み込みクラス、モジュールの定義などが含まれる。作成したスクリ

プトは、プロジェクトフォルダ内の「Data¥Scripts.rxdata」から読み込まれて実行される。

利点としては、文法はほとんどが Ruby に準拠しているため、Ruby を扱ったことがあれ

ば、スクリプトの制作が容易にできる点である。このスクリプトを使えば、RPG に留まら

ず、格闘ゲーム、アクションゲーム、シューティングゲームなど、幅広いジャンルのゲー

ムが、RPG ツクールで作成できるようになる。

Page 24: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

24

第 5 章 まとめ

今回私たちは、RPG ツクール VX Ace を利用し、RPG を作成した。内容としてはサンプ

ルデータを使ってのマップ作成、キャラクターの生成、敵の作成、データベースの管理、

イベントの作成である。そこにスクリプトを使って、マップ内の視界を制限するオリジナ

ルの機能を追加した。

今後の課題としては、サンプデータの使用を少なく、もっと多くのオリジナル要素を取

り入れることだと考えている。RPG ツクールで RPG を作るにあたっては、十分すぎるほ

どのサンプルデータが、RPG ツクールには用意されている。今回作成した RPG は、サン

プルデータの組み合わせや改変で作ったものばかりである。ゆえに、RPG としてはありが

ちな作品になってしまった。スクリプトに関しても、新機能を 1 つ追加するに留まった。

今後は、サンプルデータの使用を極力減らし、スクリプトの導入を増やしていきたい。例

えば、キャラクターグラフィックをサンプルデータの組み合わせで作るのではなく、オリ

ジナルのグラフィックを作成する。スクリプトも、使い方次第では RPG ツクールにシュー

ティング要素や格闘要素を加えることができる。今回は単純な RPG を作ったが、オリジナ

ルのグラフィック、スクリプトを使うことで、多彩な RPG を作成することができる。グラ

フィックには描画の技術、スクリプトにはプログラミングの技術が必要で、難易度は上が

るが、それだけにやりがいも多く、今後の目標にしていきたい。

Page 25: RPG ツクールを使用したゲーム作成 ‐ハンナーン島 …hanakawa/soturon/2014/HosoiInoue.pdf5 (1)テーブルトークRPG ゲーム機などのコンピュータを使わずに、紙や鉛筆、サイコロなどの道具を用いて、人

25

参考文献

[1]http://homepage3.nifty.com/mmgames/column/rpg.html

[2]http://tkool.jp/products/rpgvxace/index

[3]五十嵐邦明, 大場光一郎, 櫻井達生 :楽しい開発スタートアップ Ruby:株式会社技術評

論社:2012.

[4]http://www.rubylife.jp/ini/

[5] 後藤裕蔵,高橋征義:たのしい Ruby 第 3 版:ソフトバンク クリエイティブ株式会社:

2010.

謝辞

RPG ツクールでのゲーム作成にあたり、ゼミ生の皆様に多大なご協力を頂いたこと、感

謝します。また、本論文の作成にあたっては、私達の至らぬ点が多い中、添削やアドバイ

スと、見捨てることなく最後までご指導して頂いた花川典子教授に感謝します。