第10話 次なるアクションを構想(東の塔関連イベント)

@

東の塔に向かうぞと言われる

@

東の塔の入り口に立つとイベント発生。

中に入る。

@

フィールドマップ音楽から東の塔の音楽へと切り替わる。

以上を踏まえてプログラム展開


このように指示を出す。

初期プロット展開


以下のようなプログラム展開をイメージしました:


1. 街への帰還

主人公たちが街に戻ると、イベントが発生。強制的にストーリーイベントが進行し、重要な人物や情報提供者が現れ、東の塔に封印された「ドラゴンマナ」を解放する使命を伝える。


NPC1:「お前たち、東の塔に封印されたドラゴンマナを解放しなければならない。」


NPC2:「街の外でドラゴンがお前たちを待っている。急げ!」




2. ドラゴンの登場

街の外へ出ると、ドラゴンが現れ、会話イベントが発生。


ドラゴン:「さあ、私の背に乗りなさい。東の塔まで案内してやろう。」

プレイヤーたちはドラゴンに乗り込み、東の塔付近の新たな街へ向かう。ここが今後の拠点となる。

(ドラゴンの飛行アニメーション+フィールドマップの音楽)




3. 新拠点の街へ到着

東の塔付近の新しい街に到着。ここでプレイヤーは装備の補充や仲間との会話、サブクエストなどを受けることができる。


街の住人:「この地がしばらくの間、君たちの拠点になるだろう。」




4. 東の塔に向かう

新たな街から東の塔へと向かうイベントが発生。


仲間A:「そろそろ東の塔に向かう準備は整ったな。」

プレイヤーたちは東の塔へ移動。塔の入口に立つとイベントが発生。


NPC:「ここが東の塔。封印を解くには内部に入るしかない。」




5. 塔内部へ進入

プレイヤーが塔の中に入ると、BGMがフィールドマップから東の塔専用の音楽に切り替わる。塔内部は迷宮形式のダンジョンで、ボス戦やギミックが登場。


ここから

ゲームプログラムの展開指示をだす。


結果


以下のプログラム展開を想定しています:


1. 街に戻る際のイベント処理


# プレイヤーが街に戻った時のイベント発生処理

def return_to_town_event():

trigger_event("town_conversation_start") # 強制会話イベント開始

play_bgm("town_theme") # 街のBGMを再生

show_dialogue("NPC1", "東の塔に封印されたドラゴンマナを解放しなければならない。")

show_dialogue("NPC2", "街の外でドラゴンがお前たちを待っている。急げ!")


# 会話終了後、プレイヤーが街の外に出る準備が整う

unlock_area("town_exit")


2. 街の外でドラゴンとの会話イベントと移動


# 街の外に出た際のドラゴンとの会話イベント処理

def town_exit_dragon_event():

trigger_event("dragon_appearance") # ドラゴンが登場するイベント

show_dialogue("Dragon", "さあ、私の背に乗りなさい。東の塔まで案内してやろう。")


# ドラゴンに乗って移動する

play_animation("dragon_flight") # ドラゴン飛行アニメーション再生

play_bgm("dragon_flight_theme") # 飛行時のBGM再生

move_player_to("new_town_near_east_tower") # 新拠点となる街へ移動


3. 新しい街でのイベント処理


# 新しい街に到着した際のイベント処理

def new_town_event():

trigger_event("new_town_arrival") # 新たな街に到着するイベント

play_bgm("new_town_theme") # 新しい街のBGM再生

show_dialogue("Villager", "この地がしばらくの間、君たちの拠点になるだろう。")


# 新しいエリアや機能を解放

unlock_shop("weapon_shop")

unlock_shop("item_shop")

unlock_inn("new_inn")


4. 東の塔に向かう際のイベント処理


# 新しい街から東の塔に向かうイベント処理

def go_to_east_tower():

trigger_event("east_tower_preparation")

show_dialogue("Companion", "そろそろ東の塔に向かう準備は整ったな。")

unlock_area("east_tower_entrance") # 東の塔の入口へのアクセスを解放


5. 東の塔の入口でのイベント処理


# 東の塔の入口に立った際のイベント処理

def east_tower_entrance_event():

trigger_event("east_tower_entrance")

show_dialogue("NPC", "ここが東の塔。封印を解くには内部に入るしかない。")


# 塔の中に入ると音楽が切り替わる

change_area("inside_east_tower") # 塔内部に切り替え

play_bgm("east_tower_theme") # 東の塔のBGM再生



---


プログラムの流れ


街に戻った時に、ストーリーが自動的に進行し、東の塔の解放に関する会話イベントが発生。


街の外に出た時、ドラゴンが登場し、東の塔付近の街まで案内。


新しい街では、装備やアイテムを補充したり、宿屋のシステムが解禁され、次の準備が進められる。


東の塔へ向かう際にイベントが進行し、塔の入口に立ったところで内部に入るためのフラグが立ち、塔内部の音楽が再生される。



このようなプログラム構成で進行できます。


ここで、指示としてレベル制限プロセスを追加する。

構想としては

レベルが15に到達していることが条件とする。

塔の入り口に立つとこのプロセスとプログラム処理が行われる様に指定する。


@

東の塔入り口に立つとイベント発生。

※必ず行うものとする。

@

レベル制限15に到達していることが条件

※何があってもレベル15に到達していることが東の塔に入る事が出来る条件とすること。

@

到達していない場合はドラゴンがトレーニングバトルの話を持ちかける。

※勝っても負けてもレベルが強制的に15になる。


時には優しい設定にすることも醍醐味のひとつである。


このプロセスを組んでの結果


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


1. 東の塔入口に立つとイベント発生


# プレイヤーが東の塔の入り口に立った時のイベント処理

def east_tower_entrance_event():

trigger_event("east_tower_entrance") # イベント開始

show_dialogue("NPC", "ここが東の塔。封印を解くには内部に入るしかない。")


# プレイヤーのレベルチェック

if player.level >= 15:

unlock_area("inside_east_tower") # レベルが15以上なら塔内部に入ることができる

play_bgm("east_tower_theme") # 塔内部の音楽に切り替え

else:

trigger_training_battle() # レベル15に到達していない場合、トレーニングバトル開始


2. レベル15に到達していない場合のドラゴンとの会話とトレーニングバトル


# レベル15に到達していない場合のトレーニングバトル処理

def trigger_training_battle():

# ドラゴンがトレーニングを提案する

show_dialogue("Dragon", "まだレベル15に到達していないようだな。トレーニングをしよう。")


# トレーニングバトルを開始

start_battle("training_dragon") # トレーニングバトルイベント開始


# バトル終了後の処理(勝敗に関わらずレベルを15に強制設定)

if player_battle_result == "win" or player_battle_result == "lose":

player.level = 15 # 強制的にレベル15に設定

show_dialogue("Dragon", "これでレベル15に到達した。東の塔に入れるぞ。")

unlock_area("inside_east_tower") # 塔内部へのアクセス解放

play_bgm("east_tower_theme") # 塔内部の音楽に切り替え


3. レベル15に到達している場合の塔内部へ進行


# プレイヤーがレベル15に到達している場合

def enter_east_tower():

if player.level >= 15:

unlock_area("inside_east_tower") # 塔内部へのアクセス解放

show_dialogue("Companion", "準備は整った。中に入ろう。")

change_area("inside_east_tower") # 塔内部に移動

play_bgm("east_tower_theme") # 塔内部のBGMに切り替え

else:

trigger_training_battle() # レベル不足の場合はトレーニングバトル開始



---


プログラムの流れ


東の塔の入口に到達すると、レベルチェックが行われます。


レベル15以上の場合、塔の内部に入ることができ、音楽も塔内部のテーマに切り替わります。


レベル15未満の場合、ドラゴンがトレーニングバトルを提案し、勝敗に関係なくバトル終了後にレベルが強制的に15に設定されます。その後、塔内部へ進むことができます。




これにより、東の塔に入るためのレベル条件が確実に守られ、プレイヤーはレベル不足の場合もストーリーを進行できるようになります。



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

塔の内部の宝箱の内一つはギミック解除に必要なオーブが入っているので必ず取る設定にすること。

塔の内部奥の扉の窪みにオーブを填めることでギミック解除になる。

オーブは、アイテム袋には入らない設定にする。

強制イベント専用アイテムである。


このように指示を出す。


結果


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


1. 東の塔の内部設定(エンカウント無し)


# 塔内部のエンカウント無効設定

def enter_east_tower():

disable_encounters_in_area("east_tower_interior") # エンカウント無効化

show_dialogue("Companion", "ここでは敵に遭遇することはない。")

play_bgm("east_tower_theme") # 塔内部のBGM再生


2. ギミック用オーブの設定(必須取得)


# 宝箱を開けた際に、ギミック解除用のオーブが出現する

def open_chest_with_orb():

if not player.has_orb: # プレイヤーがオーブを持っていない場合

trigger_event("orb_found") # オーブ取得イベント開始

show_dialogue("Companion", "これは重要なオーブのようだ。ギミックに使えるかもしれない。")

player.has_orb = True # プレイヤーにオーブのフラグを立てる

add_key_item("mystic_orb", force_event=True) # オーブを強制イベント用アイテムとして追加


3. オーブを扉の窪みに填めてギミック解除


# オーブを窪みに填めるギミック解除処理

def use_orb_on_door():

if player.has_orb: # プレイヤーがオーブを持っている場合

trigger_event("door_unlock") # ギミック解除イベント

show_dialogue("Companion", "オーブを窪みに填めると、扉が開く音がした。")

play_sound_effect("unlock_sound") # ギミック解除音再生

open_door("east_tower_final_door") # 扉を開ける

player.has_orb = False # オーブを消去(1度しか使用できない)

else:

show_dialogue("Companion", "ここに填めるべきものがまだないようだ。")


4. オーブはアイテム袋には入らない設定


# オーブが通常のアイテム袋に入らないようにする

def add_key_item(item_name, force_event=False):

if force_event:

# アイテム袋には入れず、イベント用アイテムとして保持

player.key_items.append(item_name) # 強制イベントアイテムとしてオーブを追加

else:

player.inventory.append(item_name) # 通常アイテムとして追加



---


プログラムの流れ


1. 東の塔内部に進入した時、エンカウントが無効化されます。これにより、塔内では敵と戦うことなく進めます。



2. オーブの宝箱は特別なアイテムとして扱われ、プレイヤーは必ずこのオーブを入手します。オーブは通常のアイテム袋には入らず、イベント専用のキーアイテムとして設定されます。



3. 扉の窪みにオーブを填めるとギミック解除イベントが発生し、扉が開かれます。オーブは一度使用されると消去され、再利用はできません。




この構造により、プレイヤーがストーリー進行に必要なアイテムを確実に取得し、ギミックを解くための流れがスムーズに進行します。


塔の内部の扉を開くと

奥にドラゴンマナがある。

触れるとイベント発生

魔族が登場し強制的に戦闘開始

この戦闘から仲間のドラゴンたちも戦闘に参加する。

ドラゴンは属性魔法を使えるプロセスを組む。

最初に仲間にしたドラゴンは風魔法を扱える。

二番目に仲間にしたドラゴンは火魔法を扱える。


この戦闘も5ターン経過で強制的に終了となるので無理に戦う必要はない。


このように指示を出す

結果


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


1. ドラゴンマナに触れた際のイベントと強制バトル開始


# ドラゴンマナに触れた際のイベント処理

def touch_dragon_mana():

trigger_event("dragon_mana_touched") # イベント開始

show_dialogue("Companion", "ここにドラゴンマナがある...")


# 魔族の登場と強制バトル開始

show_dialogue("Mysterious Voice", "貴様らがドラゴンマナを解放しようとはさせん!")

trigger_event("demon_appears") # 魔族登場イベント

start_battle("forced_battle_with_demon") # 強制バトル開始


2. ドラゴンが戦闘に参加する設定


# 戦闘でドラゴンを参加させるプロセス

def setup_dragon_party():

# 仲間になったドラゴンを戦闘メンバーに追加

if player.has_dragon("wind_dragon"):

add_to_battle("wind_dragon", "Wind Dragon") # 風のドラゴンが戦闘に参加

if player.has_dragon("fire_dragon"):

add_to_battle("fire_dragon", "Fire Dragon") # 火のドラゴンが戦闘に参加


3. ドラゴンの属性魔法設定


# ドラゴンが使用できる魔法のプロセス

def dragon_magic():

# 風のドラゴンは風魔法を使う

if "wind_dragon" in battle_party:

add_spell("Wind Slash", caster="wind_dragon", element="wind", power=50)


# 火のドラゴンは火魔法を使う

if "fire_dragon" in battle_party:

add_spell("Flame Burst", caster="fire_dragon", element="fire", power=60)


4. 戦闘の強制終了設定(5ターン経過後)


# 強制バトルのターン制限プロセス

def forced_battle_with_demon():

setup_dragon_party() # ドラゴンをパーティに追加

dragon_magic() # ドラゴンの魔法設定


battle_turns = 0 # 戦闘ターンのカウント開始


while battle_turns < 5: # 5ターン以内の戦闘処理

execute_battle_turn() # ターンごとの戦闘処理

battle_turns += 1


# 5ターン経過後、戦闘を強制終了

if battle_turns >= 5:

show_dialogue("Mysterious Voice", "これで終わりではない...また会おう。")

end_battle("forced_battle_with_demon") # 強制終了



---


プログラムの流れ


1. ドラゴンマナに触れるとイベントが発生し、魔族が登場して強制的に戦闘が開始されます。



2. 仲間のドラゴンたちも戦闘に参加し、それぞれ属性魔法を使うことができます。最初に仲間になったドラゴンは風魔法を、次に仲間になったドラゴンは火魔法を使います。



3. 戦闘は5ターンで強制終了するため、無理に戦う必要はなく、一定ターンが経過すれば自動的に次のイベントに移行します。




この設定により、ドラゴンがストーリー上で活躍し、戦闘にも大きな役割を果たす場面が演出されます。


魔族は撤退し

東の塔から強制的に出るプロセスにする。

外へ出る

音楽の切り替え

付近の街へ移動する

街パネルに乗るとイベント発生で場面が街のお偉いさんの所に移動となり会話イベント発生

次なる目的地の判明。


結果


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


1. 魔族撤退後、東の塔から強制的に外に出るプロセス


# 魔族撤退後の処理

def demon_retreats():

show_dialogue("Mysterious Voice", "今日はここまでだ…またお前たちに試練を与えよう。")

trigger_event("demon_retreats") # 魔族撤退イベント

force_exit_tower() # 東の塔から強制的に出る処理


2. 東の塔から外へ出る(音楽の切り替え)


# 東の塔の外に出るプロセス

def force_exit_tower():

trigger_event("exit_tower") # 塔から出るイベント

move_player_to_location("east_tower_entrance") # 塔の入り口に強制移動

play_bgm("field_theme") # 外の音楽に切り替える

show_dialogue("Companion", "塔から出たぞ。次はどうする?")


3. 街へ移動するプロセス


# 街に移動する処理

def move_to_nearby_town():

show_dialogue("Companion", "街へ戻ろう。休息が必要だ。")

move_player_to_location("nearby_town_entrance") # 街の入り口に移動

play_bgm("town_theme") # 街の音楽に切り替える


4. 街のパネルに乗ると会話イベント発生


# 街に入るとイベントが発生する

def enter_town_event():

if player_on("town_panel"): # 街パネルに到達した時

trigger_event("town_leader_meeting") # お偉いさんとの会話イベント開始

move_player_to_scene("town_leader_office") # 街のお偉いさんの所へ移動

start_conversation_with_leader() # 会話イベント発生


5. 次の目的地が判明する会話イベント


# 会話イベントで次の目的地が判明する

def start_conversation_with_leader():

show_dialogue("Town Leader", "よくぞ戻った、勇者たちよ。次に目指すべきは北にある氷の山だ。そこに眠るドラゴンマナを解放しなければならない。")

update_quest("Head to Ice Mountain") # 次の目的地をクエストとして更新

show_dialogue("Companion", "氷の山か...準備を整えて出発しよう。")



---


プログラムの流れ


1. 魔族が撤退し、プレイヤーは強制的に東の塔の外へ出されます。この時、音楽も外のフィールド音楽に切り替わります。



2. プレイヤーは街に移動し、街に到着すると街の音楽に切り替わります。



3. 街のパネルに乗るとイベントが発生し、街のお偉いさんの所に強制移動して会話イベントが開始されます。



4. 会話イベントでは次の目的地として「氷の山」が判明し、次の冒険に備える流れとなります。




このプログラムで、スムーズにストーリーが進行し、次の目的地が示される形となります。






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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る