第13話 南の古代の洞窟と北の港町での船での行動

@

南の古代の洞窟への道のりが判明するがその場所は船での移動に制限されることが判明する。

ドラゴンの背に乗るは今回は使えないということである。

@

街に移動するとイベント発生。

街の酒場まで移動する。

そこで酒場の店主から『南の古代の洞窟』と『船』に関する情報を入手するイベント発生。

@

北の港町に行けば

『船』に乗れるという情報を入手できる。

北の港町まではドラゴンの背に乗って行動可能である。


以下のプログラム展開を提案します。


1. 南の古代の洞窟が船での移動に制限されるイベント


# 南の古代の洞窟への道のり判明イベント

def reveal_southern_ancient_cave_route():

trigger_event("southern_cave_revealed") # 南の古代の洞窟の場所が判明

show_dialogue("Protagonist", "船が必要なのか…ドラゴンの背に乗って行けないのか。")

show_dialogue("Dragon", "残念だが、今回は我の力ではそこに辿り着けぬようだ。")


2. 街で酒場の店主から情報を得るイベント


# 街の酒場まで移動してイベント発生

def tavern_event():

trigger_event("move_to_tavern") # 街の酒場に移動するイベント

show_dialogue("Tavern Master", "おや、南の古代の洞窟に行きたいのか?そのためには船が必要だ。")

show_dialogue("Tavern Master", "北の港町に行けば、船に乗れるぞ。")

trigger_event("ship_information_obtained") # 船に関する情報を入手


3. 北の港町への移動が可能になるイベント


# 北の港町までドラゴンの背に乗って移動可能になるイベント

def move_to_northern_port_town():

show_dialogue("Dragon", "北の港町までは我の背に乗っていくとしよう。")

allow_dragon_travel("northern_port_town") # 北の港町へドラゴンで移動可能に

trigger_event("move_to_northern_port_town") # 移動イベント



---


プログラムの流れ


1. 南の古代の洞窟への道のりが判明しますが、船での移動が必要であることがわかります。ドラゴンに乗っての移動はこの場所では使えないことが伝えられます。



2. 街に戻り、酒場の店主から『南の古代の洞窟』と『船』に関する情報を得るイベントが発生します。店主からは北の港町に行けば船に乗れると教えてもらいます。



3. 北の港町まではドラゴンの背に乗って移動可能になるため、プレイヤーはドラゴンを使って港町へ向かうことができます。




この流れで次のステージへの準備が整います。


@

北の港町付近にドラゴンは到着。

主人公はドラゴンから降りるとドラゴンに抱きつく。

ドラゴンは

『この街では、我らは少し格好を変えよう』

と光だし

人形になる。

ドラゴンは全員男性の姿になる。

背に乗せてくれたドラゴンは騎士の格好に

他の属性ドラゴンは

魔術師、聖職者、侍になる。

主人公はドラゴンの姿に驚き

そして少し顔を赤くする。

@

街に入ると

イベント発生。

『騎士様!』

(騎士の姿ではあるが我はドラゴン…)

主人公からは

(まあまあいいじゃない)

(お主喋れるのか!?)

(失礼な!)

『どうしたのだ?』

「はい!北東にある砦を魔物が占拠しましてどうにかならないものかと」

『そこで俺に』

(我じゃないんだ?)

(この場合はこの方がいいだろう?)

@

街の人との会話で

北東にある砦に魔物が占拠した。

クリア目的は魔物の親玉の討伐。

クリア報酬は

『船』を出してくれるということである。



このシーンの展開に基づいて、プログラムの流れを以下のように構成します。


1. 北の港町付近に到着し、ドラゴンが人形に変身するイベント


# ドラゴンが人形になるイベント

def dragon_transformation_event():

trigger_event("arrival_at_port_town") # 北の港町付近に到着

protagonist_descends() # 主人公がドラゴンから降りる

show_dialogue("Protagonist", "ありがとう…") # ドラゴンに抱きつく

show_dialogue("Dragon", "ふふ、可愛いな。我らはこの街では少し姿を変えるぞ。")


# ドラゴンたちが光に包まれて人間の姿になる

trigger_event("dragon_transformation")

show_dialogue("Protagonist", "え…!?人間の姿に!?")

trigger_event("dragon_knight_appearance", "knight") # 騎士の姿

trigger_event("dragon_mage_appearance", "mage") # 魔術師の姿

trigger_event("dragon_priest_appearance", "priest") # 聖職者の姿

trigger_event("dragon_samurai_appearance", "samurai") # 侍の姿

show_dialogue("Protagonist", "(少し格好いい…)") # 主人公が顔を赤くする


2. 街に入ってイベントが発生するシーン


# 街に入ると会話イベント発生

def port_town_event():

trigger_event("enter_port_town")

show_dialogue("Villager", "騎士様!") # 騎士に呼びかけられる

show_dialogue("Dragon (Knight)", "(騎士の姿ではあるが我はドラゴン…)")

show_dialogue("Protagonist", "(まあまあいいじゃない)")

show_dialogue("Protagonist", "(お主喋れるのか!?)")

show_dialogue("Dragon (Knight)", "(失礼な!)")

show_dialogue("Dragon (Knight)", "どうしたのだ?")


# 街の人が砦に魔物がいることを説明

show_dialogue("Villager", "北東にある砦を魔物が占拠しまして、どうにかならないかと…")

show_dialogue("Dragon (Knight)", "そこで俺に頼むということか")

show_dialogue("Protagonist", "(我じゃないんだ?)")

show_dialogue("Dragon (Knight)", "(この場合はこの方がいいだろう?)")


3. 北東の砦に関する情報を得るイベント


# 北東の砦と討伐の目的を得るイベント

def fort_mission_event():

show_dialogue("Villager", "北東の砦に魔物が親玉を持っているのです。討伐してくれれば『船』を出します。")

trigger_event("mission_accepted") # 討伐のミッション受注イベント



---


プログラムの流れ


1. 北の港町付近に到着すると、ドラゴンが光に包まれ、全員人形(男性)に変身します。各ドラゴンが騎士や魔術師、聖職者、侍の姿になる場面で、主人公は驚きつつもその姿に少し赤面します。



2. 街に入るとイベントが発生し、街の人が「騎士様」と呼びかけます。会話中、砦にいる魔物の親玉討伐の依頼が発生し、そのクリア報酬として「船」が提供されることが明かされます。



3. 北東の砦のミッションが受け取られ、次の目的地とクリア目標が明確になります。




この流れを使ってゲーム内でドラゴンの姿が変わる演出や次のステージへ向けた準備が進行します。



@

北東の砦のパネルに乗るとイベント発生。

※なかに入るには

レベル40であることが条件となる。

到達してない場合

トレーニングバトル開始。

今回も5ターンで勝敗関係なく

レベルは40になります。

@

砦は直進で進む簡単な作り。

エンカウントは無しで設定。

三階まで行くとイベント発生で

戦闘になる。

負けると街の宿屋に移動する。

※負けた場合

街の外にでると

騎士の姿のドラゴンが

再度トレーニングバトルをしてくれる。

5レベル追加される。

負けても救済はある。



このシーンの展開に基づいて、プログラムの流れを以下のように構成します。


1. 北東の砦に到着し、レベルチェックとトレーニングバトルのイベント


# 砦に到着時のイベントとレベルチェック

def fort_level_check():

trigger_event("arrival_at_fort")

if protagonist_level < 40:

# レベル40未満ならトレーニングバトル開始

show_dialogue("Dragon (Knight)", "力を試してみようか。トレーニングバトルだ。")

start_training_battle(level_to_reach=40) # 5ターンでレベル40に上昇

else:

# レベル40到達している場合そのまま進行

show_dialogue("Protagonist", "準備は整った、砦の中に入ろう。")

enter_fort()


2. 砦の進行と戦闘イベント


# 砦内部の進行と戦闘イベント

def fort_battle_event():

trigger_event("enter_fort")

set_no_encounters() # エンカウント無し設定

show_message("砦は簡単な直進構造。")


# 三階到達時にイベント発生

trigger_event("reach_third_floor")

show_dialogue("Protagonist", "ここが…三階だな。")


# 強制戦闘の開始

start_boss_battle() # ボス戦闘開始

if boss_battle_lost():

# 負けた場合、街の宿屋へ強制移動

trigger_event("transport_to_inn")

show_dialogue("Protagonist", "くっ…まだ修行が足りないか。")


# 街の外に出ると再度トレーニングバトルイベント発生

trigger_event("exit_town_after_loss")

show_dialogue("Dragon (Knight)", "もう一度力を試してみようか?トレーニングバトルだ。")

start_training_battle(level_to_add=5) # 5レベル追加で上昇


3. トレーニングバトル後の救済処理


# トレーニングバトル後の救済処理

def training_battle_rescue():

if protagonist_lost_battle():

show_dialogue("Dragon (Knight)", "負けても諦めるな。更なる力を得る時だ。")

start_training_battle(level_to_add=5) # 救済のため、5レベル追加



---


プログラムの流れ


1. 北東の砦に到着すると、レベル40であるかどうかがチェックされます。レベルが達していない場合、トレーニングバトルが始まり、5ターン後にレベル40に上昇します。レベルが40に達していれば、そのまま砦に進入します。



2. 砦内部は直進で簡単な構造であり、エンカウント無しの設定です。三階に到達すると強制イベントが発生し、ボス戦に突入します。もしボス戦に負けた場合は街の宿屋に強制的に戻されます。



3. 負けた場合の救済措置として、街の外に出ると再度騎士姿のドラゴンがトレーニングバトルを提案し、勝敗に関係なく5レベル追加される救済イベントが発生します。




この構成により、プレイヤーはレベル上げの心配なく物語を進めることができ、敗北しても再挑戦が可能です。


※再度砦のボスに負ける場合でも

宿屋に戻され

外に出ると再度のトレーニングバトルでレベルが5レベル追加される。

安心設計にする(初心者向けプログラム)。

※最大はレベルの制限ありという風に固定する。(砦のボスバトルでのレベル制限)


この新しい設定を考慮したプログラムの追加処理は以下のように展開します。


1. 再度トレーニングバトルの設定(最大レベル55まで)


# トレーニングバトルイベント処理(最大55レベルまで)

def training_battle_after_loss():

if protagonist_level < 55:

# まだレベル55未満の場合、トレーニングバトルが発生

show_dialogue("Dragon (Knight)", "もう一度鍛えてやろう。限界はまだ先だ。")


# 5レベル追加のトレーニングバトル開始

start_training_battle(level_to_add=5)


# 最大レベルが55に達すると、トレーニングバトルは終了

if protagonist_level >= 55:

show_dialogue("Dragon (Knight)", "お主、これ以上は鍛えられぬ。力を十分に備えているな。")

end_training_event()

else:

# レベル55に到達している場合、トレーニングバトルを終了する

show_dialogue("Dragon (Knight)", "もうこれ以上のトレーニングは必要ない。今のお主なら、勝てるはずだ。")


2. ボス戦後の処理


# ボス戦後の処理、トレーニングバトルが発生するかどうかの分岐

def boss_battle_lost_procedure():

if protagonist_lost_battle():

# 負けた場合、宿屋に戻される

trigger_event("transport_to_inn_after_boss_loss")

show_dialogue("Protagonist", "まだまだ修行が足りない…")


# 再度トレーニングバトルの提案(レベル55未満の場合のみ)

if protagonist_level < 55:

training_battle_after_loss() # トレーニングバトルイベントの呼び出し

else:

show_dialogue("Dragon (Knight)", "今の力で挑むしかない。次は勝てるはずだ。")


3. トレーニングバトルの終了条件


# トレーニングバトル終了の条件

def end_training_event():

show_message("トレーニングバトルは終了しました。これ以上のレベルアップはできません。")

set_flag("training_event_completed") # トレーニングイベント終了フラグ設定



---


プログラムの流れ


1. 砦のボス戦に負けた場合、宿屋に強制的に戻されます。その後、レベルが55未満であれば、ドラゴンからトレーニングバトルの提案を受け、5レベルずつ追加されます。トレーニングバトルは最大で15レベル(55レベル)まで行うことができ、それを超えるとトレーニングバトルは終了します。



2. レベル55に到達すると、ドラゴンが「これ以上鍛える必要はない」と告げ、トレーニングイベントは終了します。




これにより、プレイヤーは再度挑戦の機会を得ながらも、必要以上にトレーニングが発生することなくゲーム進行がスムーズに進むバランスが確保されます。



@

砦内部はエンカウント無し設定にする。

@

三階に着くとイベント発生で奥まで進むようにシステムを組む。

@

砦を占拠している魔物の親玉の近くまで移動する。

@

魔物の親玉は

『この砦は俺様が占拠した!

ふん!貴様たちが何人来ようとも叩きのめす』

@

ボスバトル突入。

ボスバトル専用曲が挿入されバトル画面になる。

@

勝った場合

『な、なんだと!?』

親玉はエフェクトと共に消える演出。

@

負けた場合

『さっさと出ていけ!』

と言って宿屋に強制的に移動する。

騎士の姿のドラゴンに看病され

起きると

『大丈夫か?起きれるか?』

街の外に出ると

トレーニングバトル開始の展開(負ける毎にトレーニングバトル展開だがレベル55到達で終了)

@

勝った場合

街に戻るとイベント発生。


この設定を基に、砦内部のボスバトルの流れとトレーニングバトル処理を以下のように展開します。


1. 砦内部エンカウント無し設定


# 砦内部ではエンカウント無し設定

def no_encounter_in_fort():

set_encounter_rate(0) # エンカウント率を0に設定

show_message("砦内部は静かで、敵の姿は見当たらない...")


2. 三階イベント発生とボスエリア移動


# 三階に到着するとイベント発生、奥に進む

def trigger_event_on_third_floor():

if current_floor == 3:

show_message("奥へ進む道が開かれた…")

allow_movement_to_boss_area()


3. 魔物の親玉との対話とボスバトル突入


# 魔物の親玉との対話とバトル突入

def boss_encounter():

move_to_boss_area()

show_dialogue("Boss", "この砦は俺様が占拠した!ふん!貴様たちが何人来ようとも叩きのめす!")


# ボスバトル開始

start_boss_battle(boss_music="boss_theme")


4. ボスバトルの勝敗による処理


勝利時


# ボスバトル勝利時の処理

def boss_battle_win():

show_dialogue("Boss", "な、なんだと!?")

play_effect("boss_vanish")

show_message("魔物の親玉は消滅した!")

move_to_event("return_to_town_after_victory") # 街に戻るイベントへ


敗北時


# ボスバトル敗北時の処理

def boss_battle_loss():

show_dialogue("Boss", "さっさと出ていけ!")

move_to_event("transport_to_inn_after_loss") # 宿屋に強制移動

show_message("騎士の姿のドラゴンが看病している...")


# ドラゴンとの看病イベント

show_dialogue("Dragon (Knight)", "大丈夫か?起きれるか?")


# トレーニングバトルの準備

if protagonist_level < 55:

trigger_training_battle_after_loss() # トレーニングバトルの呼び出し

else:

show_message("これ以上のトレーニングは不要だ。次こそ勝てるだろう。")


5. トレーニングバトルとレベル上昇の流れ


# トレーニングバトル後の処理(レベル55まで)

def trigger_training_battle_after_loss():

if protagonist_level < 55:

start_training_battle(level_to_add=5)

show_dialogue("Dragon (Knight)", "さあ、次はもっと強くなれるぞ!")


# レベル55到達時、トレーニングバトル終了

if protagonist_level >= 55:

show_dialogue("Dragon (Knight)", "これ以上のトレーニングは必要ない。今ならボスに勝てるはずだ。")

end_training_event()


6. 勝利後の街イベント発生


# 街に戻った際のイベント

def return_to_town_after_victory():

show_message("街に戻ると、人々が歓喜に包まれている...")

trigger_event("town_event_after_victory")



---


プログラムの流れ


1. 砦内部はエンカウント無しの設定で、三階に到着するとイベントが発生し、プレイヤーは奥へと進むことが可能になります。



2. 魔物の親玉との対話後、専用のボスバトルが始まります。勝利した場合は親玉が消え、砦を開放するイベントが発生。敗北した場合は宿屋へ強制移動し、ドラゴンに看病されるイベントが発生します。



3. トレーニングバトルは敗北ごとに行われ、レベルが最大55になるまで5レベルずつ上昇します。最大レベルに到達するとトレーニングバトルは終了し、ドラゴンから次の挑戦を促されます。



4. 勝利後、街に戻るとイベントが発生し、次の目的地や報酬の案内が行われます。




これで、ボス戦におけるプレイヤーの成長機会を持たせつつ、進行のバランスが取れたイベントシステムが完成します。


@

街のイベント。

船が出せれるようになる。

港に行く。

船の側にいる船員に話しかけるとイベント発生。

「あんたたちが占拠された砦を解放してくれたのか?ありがとうよ」

@

船に乗る。

南の古代の洞窟のイベントが終わって再びこの港に戻り

街の外に出るまでは

ドラゴンたちは人の姿のままである。

イベント終了後はドラゴンはドラゴンに戻る。

ただしこの港町以外の街ではドラゴンの姿でいることが可能である。

このイベントエリアのみでのシステムである。

@

港町から船に乗る前に

主人公から

この街を見学したいと言う旨を伝えられ

この街の温泉に浸かるイベント発生。

@

主人公がドラゴンたちに一緒に入ろうと誘うが

騎士ドラゴンは

『お主女の自覚はあるのか?』

と言われ

「俺?男だけど」

と返され

『男だったのか?その見た目で』

立ち絵変更

通常の立ち絵から苦笑いなどに一時的に変更。

@

港町から船に乗るのは翌日ということになる。


このイベントでは、主人公とドラゴンたちの会話や交流を通して、物語にユーモアと深みが加わる流れが作られています。以下は具体的な流れとシステムについての展開案です。


1. 船が出せるようになるイベント


# 砦解放後、港町に戻り船が使用可能になる

def unlock_ship_event():

show_message("船員に話しかけるとイベントが発生する。")

show_dialogue("Sailor", "あんたたちが占拠された砦を解放してくれたのか?ありがとうよ。")

show_message("船が利用可能になった!")

unlock_ship_mechanic() # 船の使用が解放される


2. 港町の限定ドラゴンシステム


# 港町限定でドラゴンが人の姿を保つイベントシステム

def maintain_human_form_in_port_town():

if current_location == "port_town":

for dragon in party_dragons:

dragon.transform_to_human() # ドラゴンを人の姿に変える

else:

for dragon in party_dragons:

dragon.transform_back_to_dragon() # 港町以外ではドラゴンの姿に戻る


3. 街の温泉イベント


# 主人公が港町の見学を提案し、温泉イベントへ移行

def trigger_onsen_event():

show_message("主人公が街の見学を提案し、温泉イベントが始まる。")

move_to_event("onsen")

show_dialogue("Protagonist", "この街をもう少し見て回りたい。温泉にも行こうか?")


4. 温泉イベントでの会話と立ち絵変更


# 温泉での主人公とドラゴンのやり取り

def onsen_conversation():

show_message("温泉に浸かるイベントが発生。")

show_dialogue("Protagonist", "一緒に温泉に入ろうよ!")


show_dialogue("Knight Dragon", "お主、女の自覚はあるのか?")


show_dialogue("Protagonist", "俺?男だけど。")


show_dialogue("Knight Dragon", "男だったのか?その見た目で…")

change_protagonist_sprite("smile_nervously") # 苦笑いの立ち絵に一時的に変更


5. 翌日船に乗るイベント


# 翌日船に乗るイベント発生

def next_day_ship_event():

show_message("翌日、船に乗るイベントが発生する。")

show_message("船に乗り込む準備が整い、いよいよ冒険が次の舞台へ進む。")

move_to_event("board_ship")



---


イベントの流れ


1. 船を解放するイベントでは、港町での会話が進み、砦の解放のお礼として船が利用可能になります。



2. 港町限定のシステムで、ドラゴンたちは人の姿を保つように設定され、この港町のみで発生する特別なイベントを楽しめる仕組みが組まれます。



3. 温泉イベントでは、主人公がドラゴンたちを誘い、ユーモラスな会話が展開され、そこで一時的に立ち絵が変わることでシーンに変化を加えます。



4. 最後に、翌日になってから船に乗るイベントが進行し、次の冒険の舞台である「南の古代の洞窟」へと物語が進んでいきます。




このように、プレイヤーが笑顔になれるシーンを挟みつつ、次の冒険に向かう準備が整う流れが作られています。






  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

ChatGPTと一緒に考えるファミコンゲームソフトの構想 みなと劉 @minatoryu

★で称える

この小説が面白かったら★をつけてください。おすすめレビューも書けます。

フォローしてこの作品の続きを読もう

この小説のおすすめレビューを見る