20
1 ロールプレイングゲームの作成 -HSP プログラム版- 日付:11 30 所属:経営情報学部経営情報学科 学籍番号 名前 :5108140 鈴木寿和 5108260 真野友希

ロールプレイングゲームの作成hanakawa/soturon/2011/SuzukiMano.pdf6 方がある。(図2 参照) 3, 物語演出要素・・・コンピュータならではのダイナミックな演出、RPG

Embed Size (px)

Citation preview

1

ロールプレイングゲームの作成

-HSPプログラム版-

日付:11月 30日

所属:経営情報学部経営情報学科

学籍番号 名前 :5108140 鈴木寿和

:5108260 真野友希

2

目次

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

第2章 関連研究………………………………………………………………………………….p.5

第 1節 HSPプログラムについて…………………………………………………….. p.5

第2節 ロールプレイングゲームについて…………………………………………….p.5

第3節 ロールプレイングゲームの種類……………………………………………….p.7

第 3章 作成物の紹介…………………………………………………………………………p.11

第 1節 ゲームのルール………………………………………………………………..p.11

第 2節 作成物のメインルーチンとサブルーチンについて………………………..p.11

第 3節 マップについて………………………………………………………………..p.12

第 4節 キャラクターの移動について……………………………………………..…p.14

第 5節 敵との戦闘について…………………………………………………………..p.15

第 6節 セーブとロードについて………………………………………………….….p.16

第 4章 作成物のオリジナル機能の追加……………………………………………………p.18

第 1節 アイテムについて……………………………………………………………..p.18

第 2節 装備について…………………………………………………………………..p.19

第 3節 BGMについて…………………………………………………………………p.19

第 5章 終わりに………………………………………………………………………………..p.20

参考文献

謝辞

3

第 1章 はじめに

近年、ゲーム機器は技術の発展によりそれぞれの特長を持ったゲームソフトが開発され

ている。画面が飛び出るように見える 3DS、映像が実写と見間違えてしまうほど綺麗な映

像を映す PS3 等、ゲーム機器一つ一つに売りとなる長所を持っている。技術はあるが上記

のゲーム機器の売上は悪く、2011 年 8 月 11 日の朝日新聞に売上不振の打開策として大幅

な値下げをしたとの発表がある[1]。ゲーム機器の売上が不調な理由はゲームソフトが日々

増え、手軽にプレイすることができるスマートフォンやリーマンショックによる消費不振

等である。また,ゲーム機で遊ぶゲームソフトが売れていないことも大きな理由の一つで

ある。このゲーム機器に対応したソフトで現在ミリオンセラー(100万本以上の売上)のソ

フトはほぼ無い。PS3のソフトであるファイナルファンタジーXIIIのみである。3DSは発

売されてからまだ間もないとはいえ、ミリオンセラーのソフトは存在しない。一昔前のフ

ァミコンやゲームボーイ等のソフトには沢山のミリオンセラーのソフトがある。例えばス

ーパーマリオブラザーズは約 681 万本、ポケットモンスター赤・緑は両方合わせて約 822

万本を売上、ゲーム機器の普及に大きく貢献してきた。ゲーム機器普及にはゲームソフト

の売上が大きく関わっている。そしてゲーム機器普及に大きく貢献したソフトとして外せ

ないのがロールプレイングゲーム(以下 RPG)である。上記に挙げたポケットモンスター赤・

緑は衰退しつつあったゲームボーイ市場を再び活性化することに成功し、シリーズ化され

現在も新しいソフトが発売されている作品である。携帯型ゲーム機器の窮地を救ったとい

える。1997年に発売されたファイナルファンタジーⅦは約 328万本の売上を上げ、プレイ

ステーションを大きく普及させた。またこの時、セガサターンとプレイステーションの売

上が均衡していたが、大きく差を開くことに成功した。

これ以降、SCEI(Sony Computer Entertainment Inc)が次世代ハードの実権を握ること

になった。そして RPGといえばドラゴンクエストシリーズは社会現象になるほど影響力の

大きい作品である。この作品のナンバリングタイトルは全てミリオンを突破しており、日

本の RPGの代表作である。また発売する時に対応したハードの売上が良いハードに合わせ

て発売しているという特徴もある。2009年に発売されたドラゴンクエストⅨ 星空の守り人

は一番普及されていたニンテンドーDSで発売された。そして、すれちがい通信で多くのラ

イトユーザーからの支持を得ることに成功した。すれ違い通信とはすれちがい通信の設定

が行われた携帯型ゲーム機同士がすれ違った時に通信が行われる。すれ違い通信を行うこ

とにより、ゲームで出来ることの幅が広がり深く遊ぶことができるようになる。2010 年 5

月 20日の毎日新聞デジタルに、ドラゴンクエストⅨ星空の守り人がすれちがい通信で発売

から 2010年 3月 4日までに延べ 117,577,073人という記録を出し、ギネス・ワールド・レ

コーズに認定された記事がある[2]。最近では新しい技術を活かしてライトユーザーの数を

増やしている。

本論文では、参考書[3]に掲載されているHSP(Hot Soup Processor)プログラムを使った

4

ゲームプログラムを作成する。多くあるプログラミング言語の中から、HSPを 選んだ理由

として、HSP 言語は初心者にも扱いやすい言語であるということ、RPG を作成するにあ

たってHSP は他の言語よりも容易に作成することができ、また HSP はサンプルが多く存

在するからである。今回作成する RPG は、迷宮(ダンジョン)タイプで構成されており、敵

を倒すと、レベルアップして強くなる構成になっている。また謎解き要素を加えることで

探索する必要があるようにする。クリアは謎解きを終えて、現れる階段に到達することで

達成できることにする。

2 章では RPG や HSP の関連研究について説明し、第 3 章では作成物の紹介と利用する

プログラムについて説明し、第 4 章では実際に作成したプログラムのオリジナル要素につ

いて説明する。第 5章ではこれからの課題やまとめを述べる。

5

第 2章 関連研究

本章では RPG のプログラムを作成するのにあたり HSP プログラミングについての詳細

を説明し、他にどのようなゲームを作ることができるのか、そして RPGの特徴やジャンル

等について説明する。

第 1節 HSPプログラムについて

HSP とは 1994 年におにたまにより開発されたプログラミング言語環境である。米ダー

トマス大学で開発された BASIC 言語の書式をベースにし、開発され、1996 年からフリー

ウェアとして公開されている。特徴としては文法が簡潔であるので低年齢の人でも簡単に

文法を覚えることができるので、気軽にプログラミングを始めてみたいと考えている人や、

簡単にゲームを作りたいと考えている人に勧められている言語である。また純国産のツー

ルとして書籍資料等も豊富であり、10年以上に渡り多くのユーザー資産と使用実績がある。

そしてビジュアルノベルから 3D アクションまで様々なジャンルのゲーム作成をすること

ができる。ゲームを作るのに適した言語である。

第 2節 ロールプレイングゲームについて

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

の状況下にて、与えられた試練を乗り越えて目的を達成するゲームの一種である。元々は

戦争シミュレーションゲームから派生したもので、アメリカで考案されたテーブルゲーム

である。このゲームがさらに派生した物がコンピュータを用いて行う RPG、つまり私達が

ゲーム機でプレイしている RPG は正しく言うと RPG ではない。コンピュータ RPG なの

である。日本では RPGと言えばゲーム機でする物というイメージがあるのは、テーブルゲ

ームよりも電子ゲームの方が広く普及した為である。一般的に日本では RPG=ゲーム機で

する物と考えられているので、この論文ではコンピュータ RPG=RPGとする。RPGの特徴

はプレイヤーの反射神経や操作技能に依存しないゲームバランスになっているのでゲーム

初心者の人でもプレイすることができるのが大きな特徴である。ゲームを進めていくのに

必要な戦闘などが能力値計算を主とした処理で判定するのでプレイヤーに依存しないプレ

イをすることができるのである。また RPGはプレイヤーに楽しんでもらう工夫がいくつか

ある。大きく分けて以下 4つの要素がある。

1, 成長要素・・・主に敵を倒すことで経験値を得て、キャラクターの能力値が成長する

楽しみがある。基本的に敵を倒せば倒すほど経験値を得ることができ、キャラクター

も成長するが、成長を続けると経験値が足りなくなり成長の速度が落ちる。(図 1参照)

2, リソース管理要素・・・アイテム選びや消費、能力の成長の仕方といったリソースを

管理し、ゲームをスムーズに進める楽しみがある。逆にアイテムを使わないようにし

たりキャラクターを成長させないようにしたりして難易度を高めて進める等の楽しみ

6

方がある。(図 2参照)

3, 物語演出要素・・・コンピュータならではのダイナミックな演出、RPG への感情移

入がしやすくなり、より物語を楽しめることができる。しかし近年ではあまりにも映

像等の演出にこだわりすぎて、肝心のゲーム自体の内容が薄くなってしまっている(ま

たはプレイヤーが感情移入できない)作品があるのも事実である。(図 3参照)

4, 冒険探索要素・・・広い世界を探索し、旅をする楽しみがある。ただ敵を倒して進む

だけではなく、街に入ってキャラクターと対話を楽しんだり、イベントを楽しんだり

することも RPGには大切な要素である。また遠回りをすることで、よりプレイヤーの

能力を大きく高めるイベント等が起こることもある。(図 4参照)

このような要素を設けることで RPGは成り立っている。他にも特徴を盛り込むことでオ

リジナリティーのある RPG を作り、ユーザーを飽きさせないよう工夫が凝らされている。

図1から図4で上記の4つの要素が理解できる。図 1と図 2は 1991年に発売されたファイ

ナルファンタジーⅣ、図 3と図 4は 1997年に発売されたファイナルファンタジーⅦである。

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

出所)http://www.youtube.com/watch?v=DjMB-18pDMY

出所)http://www.nicovideo.jp/watch/sm14686570

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

出所)http://www.nicovideo.jp/watch/sm4330290 出所)http://www.nicovideo.jp/watch/sm4535171

7

上記でも説明したように様々な要素でプレイヤーを楽しませているが、RPG の基本的な

ことは変わっていない。キャラクターを操作し敵を倒して成長して進んでいくことが基本

である。一番大きく変わっていることは図 1、図 3で示すように、映像の進歩である。RPG

の初期はキャラクターに攻撃等の選択をしてもキャラクターは動かず、相手にダメージを

与えることしかできなかった。しかし現在の RPGではキャラクターが動き実際に攻撃をす

る動きが加えられ、リアルに見ることができ楽しむことができる。さらにキャラクターに

音声が加えられ、キャラクターの印象を強くプレイヤーに与え、キャラクターが動くムー

ビーを加えること等により、キャラクターに感情移入ができるよう作られている。上記の

ことは RPGに限ったことではないが、現在のゲームでは当たり前のことで音声が無い、ム

ービーが無いゲームは非常に珍しい存在である。しかし図 1、図 2のような昔のゲームのお

もしろさを再認識しようとする動きが最近見られている。

第 3節 ロールプレイングゲームの種類

RPGはいろいろな種類があり次の 6種類に分けることができる。

① RPG

② MORPG・MMORPG

③ アクション RPG

④ シミュレーション RPG

⑤ ハックアンドスラッシュ

⑥ ローグライク

以下、この 6ジャンルを順に説明する。

① RPG

RPG の大半がこのジャンルであり、総称として使われる場合もある。選択肢を選び戦闘

や会話を行って物語を進めていく。また近年ではファミコン世代やそれ以前の RPGを再評

価しようとする傾向がみられている。有名な作品であればダウンロード配信や携帯ゲーム

機器への移植等により昔のゲームを遊ぶことができるようになっている。他にもストーリ

ーは同じで映像を高画質にし、追加要素を加えてリメイクされる作品も沢山見られる。図 5

は図 1の作品をリメイクした作品である。日本の RPGは欧米から見ると独自の進化を遂げ

ていると見られている。欧米では PC市場がメインであり、リアルタイム制や、オープンワ

ールドを組み込んだ RPG が一般的とされている。欧米と日本の RPG は大きく違っている

ので、日本の RPGは欧米ではクラシックスタイル RPGや JRPG(Japanese RPG)等と表現

するようになっている。日本の RPGの世界での売上はポケットモンスターシリーズが1億

9300 万本、ファイナルファンタジーシリーズは 9700 万本の売上を残している。アメリカ

の大手ゲームサイトの Games pot の 2005 年度最優秀 RPG を受賞、2010 年 E3 アワード

全機種 RPG部門で賞を受賞する等、海外でも日本の RPGは一定の評価を得ている。

8

② MORPG・MMORPG

MORPG(Multi-player Online Role-Playing Game)は複数プレイヤー参加型オンライン

RPG 等と訳され、オンラインゲームの一種である。複数のプレイヤーがネットワークを用

いて、一つの世界で同時に RPGをプレイする。図 6では複数のプレイヤーが参加している

ことが分かる。MMORPG(Massively Multiplayer Online Role-Playing Game)は多人数同

時参加型オンライン RPG等と訳され、オンラインゲームの一種である。二つの違いは一般

的には参加人数の違いである。この場合の参加人数とは、実際にゲーム世界でプレイする

プレイヤーの数のことである。MORPG にはロビーとルームというシステムが存在し、こ

れによって一つの世界の参加人数を意図的に制限している。MMORPG は、一サーバー内

に数百人、あるいは数千人が参加する。

図 5 RPG 図 6 MORPG・MMORPG

出所) http://www.youtube.com/watch?v=anqdZOvL6v0 出所) http://www.youtube.com/watch?v=e0qvfVpVneQ

③ アクション RPG

アクションRPGはその名の通りアクションゲーム(以下AG)とRPGの二つの要素を併せ

持ったゲームである。主にキャラクターを成長させて冒険をするという RPGの要素と、戦

闘シーンにおけるアクションゲーム的な処理と、謎や仕掛けを見つけ解いて進めるアドベ

ンチャーゲームの要素を掛け合わせている。AGの要素が加わることにより戦闘シーンで選

択する戦術だけでなく、操作のタイミング等が必要となり戦術性が増えることになる。図 7

のように主人公だけではなく、他のキャラクターが同時に動いているのも特徴である。こ

のジャンルはアクションの要素が多い場合や少ない場合、RPG の成長という要素が無い作

品等もあり、定義は曖昧である。またアクティブ RPGと呼ばれることもある。

④ シミュレーション RPG

シミュレーション RPGとは、ウォー・シミュレーションゲームの戦術性とコンピュータ

RPG のストーリー性と成長システムを併せ持っているゲームのことである。シミュレーシ

ョン RPG、SRPG と略される。ウォー・シミュレーションゲームは戦争を題材にしたゲー

9

ムで、盤上で登場する部隊やキャラクターを駒として扱ってクリアするゲームである。ク

リアは敵を倒すだけではなく、目的の場所に到達する等もあるので逃げることも重要な戦

術になっている。その為自分を含めて敵のキャラクターの特性を知り、個々の特性を活か

した戦術を練ることが重要なゲームである。ウォー・シミュレーションゲームとの違いは

ウォー・シミュレーションゲームでプレイヤーが動かす駒は単なる駒であるということ、

つまり三人称で表わされている。シミュレーション RPGでは一人称として表現され、世界

観やストーリーが RPGの要素が加えられている。そうすることで各駒にキャラクターとし

ての性格付けがされている。また駒の個性が加えられ、敵を説得、自軍を裏切ったりする

こともあるのも特徴である。図 8 では盤上の駒が一つ一つ違う駒になっていて、駒を動か

すだけのゲームでは無いことが分かる。戦闘は RPGのように戦闘とイベントが分かれてい

ることも多い。駒の成長も RPGのように長期的に成長するようになっている。

図 7アクション RPG 図 8シミュレーション RPG

出所)http://www.youtube.com/watch?v=V5zd2Qlul-U 出所)http://www.youtube.com/watch?v=KE_UyGuS_Wg

⑤ ハックアンドスラッシュ

ハックアンドスラッシュ(Hack and Slash)は元々、RPGの用語として使われてきた。元々

はアメリカから輸入された言葉である。テーブルトーク RPGで、敵を倒して経験値や質の

良いアイテムを入手し、キャラを強化してさらに強力なモンスターを倒すというプレイス

タイルのことである。Hack(切り刻む)と Slash(叩き斬る)という言葉のように、スト

ーリーや世界観の表現よりも戦闘に勝つ、次々に襲い掛かってくる敵を倒すということを

意識しているスタイルに対して使われる言葉である。図 9では敵を切る動きがわかる。近

年ではアクションゲーム等と組み合わせたコンピュータゲームのジャンルにも取り入れら

れている。

⑥ ローグライク

ローグライクはダンジョン探索型ゲームのことである。図 10ではダンジョンを探索して

10

いる。基本は村や町等を拠点とし、ダンジョンに潜りアイテムを探しながら敵を倒してゲ

ームを進めていく。またダンジョンの形(進む場所)は一般的に毎回ランダムに変化する。こ

れにより同じダンジョンに潜ることになっても、前回と違う形のダンジョンになるので何

度も挑戦する楽しみが出る。しかし固定の階もあり、こうした階はイベントが起こる等特

別な場所を表す為に使われている。ダンジョン内に落ちているアイテムを拾って回復やプ

レイヤーの強化を行っていくのだが、落ちているアイテムは名前が分からないものが多い。

一度使用してみるとどのようなアイテムなのか解ることが多い。プラス要素のアイテムを

使う場合もあればマイナス要素のアイテムを使ってしまう場合もある。こうすることで毎

回ダンジョンに入るたびに考えて進むことになるよう工夫されて作られている。戦闘は基

本的にはターン制の戦闘システムでプレイヤーが行動しない限り時間は経過しない。他に

は主人公が死んだら大きなリスクがあることである。今まで集めたアイテムが全て無くな

る、所持金が全て無くなる等、一般的な RPGでのゲームオーバーよりマイナス要素が多い

ことがほとんどである。さらに主人公は餓死するということもある。餓死というのは一定

の距離を歩くとゲージが少なくなり、ゼロになるとゲームオーバーになってしまう。ゲー

ムによっては HP が徐々に無くなる等様々であるが、ローグライクでは気を付けなくては

いけない要素である。これを防ぐ為に食料を食べる必要がある。店で購入したりダンジョ

ンに落ちているのを拾ったり、様々であるが上記にあるようにアイテムが分からないこと

がある場合がある。だから食べると逆に危険な状況に陥ることもある。一歩一歩考えて行

動する必要があるのがローグライクの大きな特徴である。ただしローグライクの全てが上

記の要素を兼ね備えているわけでは無い。

図9ハックアンドスラッシュ 図 10ローグライクゲーム

出所) http://www.nicovideo.jp/watch/sm13917948

出所) http://www.youtube.com/watch?v= 7yxARGoSBVo&feature=related

11

第 3章 作成物の紹介

第 1節 ゲームのルール

今回作成した RPGはダンジョン探索型の変形系である。ダンジョン探索型と異なるとこ

ろは、敵に触れると戦闘画面に切り替わり戦闘を行うことである。戦闘方法は「戦う」や

「守る」コマンドを選択することで行われる。操作はすべてキーで行う。特定の場所に行

くことで新たな道が開かれ、最後のボスを倒すことでゲームは終了する。図 11と図 12は

作成した RPGのメイン画面である。

図 11ステージ画面 図 12戦闘画面

第 2節 作成物のメインルーチンとサブルーチンについて

今回作成したRPGは300行のプログラムとなっている。またマップ移動部分、戦闘部分、

アイテム選択部分の 3 つのプログラムで構成されている。設計時にはメインルーチンとサ

ブルーチンに分割して,開発や保守が容易になるように工夫した。ルーチンのフローチャ

ートを図 13に示す。左側の処理がメインルーチンで、分岐点先の処理がサブルーチンとな

っている。ルーチンとは関連性のあるまとまった処理を 1 つのプログラムにまとめた物で

ある。メインルーチンはその名の通りメインのプログラムであり、プログラム全体を管理

しているルーチンである。それに対してサブルーチンは、名前の通りサブのプログラムで、

メインルーチン等の他のルーチンから呼び出されて使われるルーチンである。サブルーチ

ン等の分割を考えずに大きなプログラムを作成すると読みにくいだけでなく、同じプログ

ラムの処理を何度も書くことになる。これら同じ処理を1つのまとまりとし、その処理が

必要な箇所で共通な処理を呼び出すことで、同一処理は1つのプログラムで実現し、プロ

グラムサイズの減少に役立つ。またプログラムサイズが減るだけでなく全体のプログラム

も見やすくなり、修正する時にはサブルーチンの 1 箇所だけの修正で済むので、プログラ

ミングの負担も軽減される。

12

図 13ゲームのルーチンのフローチャート

第 3節 マップについて

マップは参考文献[3]の付属のマップエディタプログラムにて実現する。このプログラム

では 45×45要素の二次元配列である配列変数map を作っている。配列変数mapには 0か

ら 400の数字が入れられて、その数字によって配置物を何にするかを決めている。床は 0

の数字、自分のキャラクターは 4の数字等、配置する物それぞれ数字を決めている。閉じ

た扉、スイッチ、敵、宝箱は 100桁以上の数字と定義する。閉じた扉とスイッチは下二桁

の数字が対応していて、211の数字を持つスイッチは 111の扉を開くことができるようにし

ている。配置されている物については下記の図 15に詳しく示す。これを bsave命令でmap

ファイルとして保存している。そしてゲームを動かすプログラムで 45×45の要素の二次元

配列を用意し、bload命令で作成したmapファイルを読み込こみ、二次元配列mapを変数

Sに入れる。図 14の 35行目から Sの数字を調べ、gosub命令でそれぞれの処理が行われ

ていることが分かる。

13

図 14移動先の処理

図 15配置物について

自分のキャラクターは repeat命令を使って位置を探している。この命令は自分のキャラ

クターの位置である 4を探すまでループを繰り返すよう処理が行われる。見つかるとその

時のループ回数が自分のキャラクターの座標となるので、変数MXと変数MYに代入し、0

の要素を持つ床を配置している。その処理は図 18の 90行目に行われている。

次に自分のキャラクターが中心になるようにマップを表示する。今回のマップは全体で

45×45要素の大きさになっているが、画面には自分のキャラクターを中心とした 11×9要

素の範囲しか表示しないようにしている。マップの一部だけを表示するには、自分のキャ

ラクターの座標であるMXとMYを元に表示範囲の左上を求める。その座標を求めるには、

自分のキャラクターの座標から画面半分のキャラクター数を引く。この座標を SXと SYと

する。またこの二つの座標が(0,0)と(34,36)の範囲から飛び出すと、配列の要素数を超

えてエラーが出るので if 命令で制限しておく。図 19 の 63 行目からそれらの処理を行って

いる。図 16 がキャラクターを中心にした時の画面で、図 17 がキャラクターを中心にしな

い時の画像である。中心にしない時は全体のマップの左上の部分だけ表示される。

14

図 16キャラクターを中心にした時の画面 図 17キャラクターを中心にしない時の画面

図 18キャラクターを表示する 図 19キャラクターを中心に表示する

第 4節 キャラクターの移動について

キャラクターを移動させるには方向キーを使う。これらのボタンを押すことで変数MDX

と変数MDYに値が入り、現在の座標に足すことでキャラクターが移動する。移動先の座標

は変数MMXと変数MMYとしている。これらの処理は図 22で行われている。キャラクタ

ーの動かせることができる範囲を図 20に示す。また if命令でMXとMYが 44を超えない

ようにしている。その処理は図 23の 46行目から行われている。45×45の要素の外へ無理

やり出ようとするとエラーになってしまう(図 21参照)。これを応用することでアクショ

ンゲームやシューティングゲームを作ることができる。

図 20キャラクターの動き 図 21外へは出られない

キャラクターの位置

15

図 22移動処理 図 23移動制限

第 5節 敵との戦闘について

戦闘はキャラクターが行動して敵が行動するターン制である。キャラクターが取ること

のできる行動は「攻撃」、「防御」、「逃げる」の 3 つである。キーを押すことで行動を決め

ることができる。図 24、図 25 では実際に「攻撃」、「防御」を行っている。getkey 命令で

A、D、Eのどれかが押されると指定した変数に 1が代入され、それぞれのサブルーチンを

呼び出して処理を行う。キーが押されるまで無限ループになるので wait変数を入れ、キー

が押されるのを待たせる必要がある。RPG ではこのようにループと組み合わせた使い方が

一般的である。相手へのダメージはキャラクターの攻撃力から相手の防御力を引いた値が

ダメージになる。しかしそれだけでは毎回同じダメージになってしまうのでレベルの数×2

回ダイスを振ることにする。変数 DICENUM×レベル 2の処理がダイスを振る前に行われ

る。そうすることでループの回数が増え、攻撃力も大きくなる。rnd(6)でダイスを振ったこ

とになり変数 DICEVAL に値が入れられる(図 26 参照)。変数 DICEVAL を足すことで毎

回違うダメージにしている。防御の行動をする時もダイスを振って値を足している。

敵は力を貯めることができ、その回の攻撃力が次の攻撃に足される。そこでキャラクタ

ーは攻撃するか防御するかという戦略を持たせている。敵が力を貯める確率は 0 から 9 の

乱数と変数 ETMRの値を比べて決めている。EATが元々の攻撃力、ETM が貯めた力であ

り、DICEVALの 3つの変数の値が足され敵の攻撃力が決まる。また攻撃すると ETMは 0

になる。敵が攻撃を行う処理は図 27の 286行目に行われている。自分のキャラクターの処

理は力を貯める値の代わりに装備の値が足されていて、敵とほぼ同じ処理が行われている。

16

図 24敵への攻撃 図 25敵からの攻撃を防御

図 26ダイスの詳細 図 27キャラクターの被ダメージ計算

第 6節 セーブとロードについて

RPG は基本的にクリアするのに時間がかかるゲームである。したがって、途中から始め

られるようにセーブ機能が必要になる。またゲームオーバーもあるので、強い敵と戦う前

に、セーブをするのがゲームを潤滑に進める一つの手段となっている。セーブをする為に

は bsave 命令を使う。この命令はファイルにデータを保存する命令である。ただし、今回

の RPGは変数の数が多いので、まずデータを配列変数 SDATA に代入し、それから bsave

命令を実行している。拾ったアイテムを記録している変数 INVENTと、マップデータを記

録している二次元配列MAPは別のファイルに保存している。つまり 3つのファイルに保存

している。SDATAに 7つの要素を確保し、自分の体力、レベル、攻撃力、防御力、累積経

験値、自分の座標である X 座標と Y 座標を保存している。図 30 の 199 行目に 7 つの要素

を確保し、次の行からそれぞれのデータを入れていることが分かる。アイテムは、notesave

命令でテキストファイルに保存している。

次にデータをロードできるようにする。ロードをする為には bload 命令を使う。これは

セーブをすることでできたファイルを読み込む命令である。だから上記でしたことの逆を

行えばよい。図 31 を見ると図 30 とほぼ同じことが書かれている。図 28、図 29 では実際

にセーブとロードを行っている。

17

図 28セーブ機能 図 29ロード機能

図 30データのセーブ 図 31データのロード

18

第 4章 作成物のオリジナル機能の追加

第 1節 アイテムについて

アイテムとは、キャラクターの体力回復に作られたもので、本プログラムでは薬草のみ

である。薬草には種類があり、薬草 100、薬草 150 があり、その数値分だけキャラクター

の体力を回復することができる。アイテムは宝箱に入っているので、ダンジョンを進みな

がらアイテムを獲得しキャラクターを強化する。アイテム一覧から、薬草を使うことがで

きる(図 34参照)。アイテムの表示では、アイテムの番号が記録されている変数 INVENT

の行数を notemax命令で調べ、それをループの回数とする。ループの中で「INVENTから

アイテム番号を取り出す」「変数 INVENT から対応するアイテムの名前を取り出す」とい

う処理を繰り返し、アイテム名を表示する。また、アイテム名の前には、アイテムを選ぶ

為に「A」~「F」を表示する。このような連続するアルファベットは‘A’の文字コード

にループ関数 cnt を加えて作れる(図 32 参照)。A~F のキーが押されたら、アイテムの名

前や効果を調べ、体力を回復させてメッセージを表示させている(図 35 参照)。今回作成

したプログラムでは、図 33のテキストボックスの薬草の回復の数値を変更することで、よ

りオリジナルな RPGを作成した。

図 32アイテムの処理図 図 33テキストボックス

図 34アイテム使用前画面 図 35アイテム使用後画面

19

第 2節 装備について

装備とは、キャラクターの攻撃力、防御力を強化するもので、攻撃力を上げるアイテム

は「剣 Lv2」「剣 Lv3」「剣 Lv4」「黄金の剣」の 4種類である。防御力を上げるアイテムは

「鎧 Lv2」「鎧 Lv3」「鎧 Lv4」「銀の鎧」の 4 種類である。notesel命令で ITMDATA を選

び、次にテキストファイルから名前、種類、効き目を読み込む。宝箱の中身が武器なら、

通常の攻撃力の値に武器の威力が追加される。もし防具なら通常の防御力の値に防具の威

力が追加され、テキストボックスに装備の名前が表示される(図 36 参照)。今回作成した

プログラムでは、図 33のテキストボックスの装備名と数値を変更することで、よりオリジ

ナルな RPGを作成した。

図 36装備のプログラム

第 3節 BGMについて

BGM は mmload 命令と mmplay 命令で流すようにしている。mmload 命令でバッファ

番号を決めて音楽ファイルを読み込む。この時に再生のモードを決めている。今回は BGM

の再生が終わった後にも再生が行われるよう、無限ループのモードを採用した。そして

mmplay 命令でバッファ番号を書くことで BGM が流れる(図 37 参照)。今回のプログラ

ムではマップで移動している時と、戦闘の時に BGMが流れるようにしている。戦闘が終わ

って経験値を得ることでマップを移動している時の BGMに変わるようにしている。

図 37 BGMの処理

20

第 5章 終わりに

HSPを利用し RPGを作成した。アイテムや装備の名前や数値を変えるなどの改良や、

BGMを付け加えることにより臨場感が増しオリジナルな作品に仕上がった。今回はマップ

の配置は別のプログラムを使用して作成したが、今後はドット絵を使いキャラクターの追

加や行動パターンの追加をすることで、よりリアルな RPG を作成することが課題である。

RPGの作成にあたり、初めは二人の進むスピードの違いや、コミュニケーション不足も

あり、なかなか思うように進まなかった。最終的には、お互いに制作の時間を作ることで

コミュニケーション不足や、二人の進むスピードが改善され完成することができた。

参考文献

[1]朝日新聞社

http://www.asahi.com/business/update/0811/OSK201108110070.html

[2]毎日新聞デジタル

http://mantan-web.jp/2010/05/20/20100520dog00m200003000c.html

[3]12歳からはじめるHSP3.0わくわくゲームプログラミング教室 著者:大槻有一郎 発

行者;「HSP3.0ゲームプログラミング教室」を発行する会 発行所;株式会社ラトルズ

謝辞

RPG の作成にあたりゲームテストをしていただいた河野竜太郎氏、平健太氏、南雅隆氏

に感謝します。論文作成にあたり添削や様々なアドバイスをいただいた花川典子教授に感

謝します。