• 検索結果がありません。

目次 第 1 章はじめに.p.3 第 2 章関連研究.p.5 第 1 節 HSP プログラムについて.. p.5 第 2 節 ロールプレイングゲームについて.p.5 第 3 節 ロールプレイングゲームの種類.p.7 第 3 章作成物の紹介 p.11 第 1 節 ゲームのルール..p.11 第 2 節

N/A
N/A
Protected

Academic year: 2021

シェア "目次 第 1 章はじめに.p.3 第 2 章関連研究.p.5 第 1 節 HSP プログラムについて.. p.5 第 2 節 ロールプレイングゲームについて.p.5 第 3 節 ロールプレイングゲームの種類.p.7 第 3 章作成物の紹介 p.11 第 1 節 ゲームのルール..p.11 第 2 節"

Copied!
20
0
0

読み込み中.... (全文を見る)

全文

(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]。最近では新しい技術を活かしてライトユーザーの数を 増やしている。

(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 ロード機能

(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 の作成にあたりゲームテストをしていただいた河野竜太郎氏、平健太氏、南雅隆氏 に感謝します。論文作成にあたり添削や様々なアドバイスをいただいた花川典子教授に感 謝します。

図 13 ゲームのルーチンのフローチャート  第 3 節    マップについて    マップは参考文献[3]の付属のマップエディタプログラムにて実現する。このプログラム では 45×45 要素の二次元配列である配列変数 map を作っている。配列変数 map には 0 か ら 400 の数字が入れられて、その数字によって配置物を何にするかを決めている。床は 0 の数字、自分のキャラクターは 4 の数字等、配置する物それぞれ数字を決めている。閉じ た扉、スイッチ、敵、宝箱は 100 桁以上の数字と定義する。閉
図 14 移動先の処理  図 15 配置物について  自分のキャラクターは repeat 命令を使って位置を探している。この命令は自分のキャラ クターの位置である 4 を探すまでループを繰り返すよう処理が行われる。見つかるとその 時のループ回数が自分のキャラクターの座標となるので、変数 MX と変数 MY に代入し、0 の要素を持つ床を配置している。その処理は図 18 の 90 行目に行われている。    次に自分のキャラクターが中心になるようにマップを表示する。今回のマップは全体で 45×45 要素の大き
図 16 キャラクターを中心にした時の画面      図 17 キャラクターを中心にしない時の画面  図 18 キャラクターを表示する                図 19 キャラクターを中心に表示する  第 4 節    キャラクターの移動について    キャラクターを移動させるには方向キーを使う。これらのボタンを押すことで変数 MDX と変数 MDY に値が入り、現在の座標に足すことでキャラクターが移動する。移動先の座標 は変数 MMX と変数 MMY としている。これらの処理は図 22 で行われてい
図 22 移動処理                            図 23 移動制限  第 5 節    敵との戦闘について    戦闘はキャラクターが行動して敵が行動するターン制である。キャラクターが取ること のできる行動は「攻撃」、 「防御」、「逃げる」の 3 つである。キーを押すことで行動を決め ることができる。図 24、図 25 では実際に「攻撃」、「防御」を行っている。getkey 命令で A、D、E のどれかが押されると指定した変数に 1 が代入され、それぞれのサブルーチンを 呼び出して
+3

参照

関連したドキュメント

 第I節 腹腔内接種實験  第2節 度下接種實験  第3節 経口的接種實験  第4節 結膜感染實験 第4章 総括及ピ考案

 第1節 灸  第1項 膣  重  第2項 赤血球歎  第3項 血色素量  第4項色素指激  第5項 白血球数  第6項 血液比重  第7項血液粘稠度

はじめに 第一節 研究の背景 第二節 研究の目的・意義 第二章 介護業界の特徴及び先行研究 第一節 介護業界の特徴

   第2項 5分間放射   第3項10分閻放射    第4項 15分聞放射    第5項 小・ 括   第2節 「ベナ」注射群

緒 言  第圏節 第二節 第四章 第一節 第二節 第五章 第口節 第二節第六章第七章

第1董 緒  言 第2章 調査方法 第3章 調査成績

第2章 検査材料及方法 第3童 橡査成績及考按  第1節 出現年齢  第2節 出現頻度  第3節 年齢及性別頻度

一定の抗原を注入するに当り,その注射部位を