概要

急擬山は、祓詞を入力して怪異を祓い、友人のもとへ向かうホラータイピングゲームです。Unity / C#で制作し、プログラミングとビジュアルエフェクトを担当しました。

「山」をテーマにしたゲームジャム作品として、2025年4月23日から5月7日までの短期間で制作しました。その後も継続的に更新し、最終更新日は2026年8月29日です。

gameplay-guide.png
タイピングと物語の進行を紹介するゲーム説明画像

タイピングそのものがゲームを進める操作になるため、文字を正しく判定する処理に加えて、入力中の表示や、成功・失敗から次の場面へ進む流れも担当範囲に含まれます。

制作の目的

怪異を祓う行為をタイピングに重ね、入力の緊張感とホラーの物語がつながる体験をつくることを目指しました。入力判定だけでなく、表示や演出まで含めて遊びやすくすることを重視しました。

担当したこと

  • Unity / C#によるゲームプログラミングとビジュアルエフェクト

  • Trieを用いたローマ字入力判定と入力候補の表示

  • 以前のノベルゲームシステムを流用したシナリオ読み込み・データ検証

  • 時間切れ演出からリザルト・タイトルへ戻る進行の調整

工夫した点

複数の打ち方を受け付けるローマ字入力

日本語のローマ字入力では、同じ文字でも「si」「shi」のように複数の打ち方があります。入力候補をTrie構造で扱い、打ち込まれた文字に応じて、受け付けられる経路をたどる仕組みを実装しました。

判定と画面表示の食い違いも修正しています。たとえば「shi」と打ち始めたのに、画面には最初の候補である「si」が残り続けると、入力できていても分かりづらくなります。確定済みのローマ字と入力途中の部分を分け、選択中の入力経路に沿った候補を表示するようにしました。

繰り返し動く入力処理では、セグメントごとのキャッシュや、不要なアロケーションを減らす構成も検討しました。

シナリオと演出をCSVで扱う

シナリオ処理には、以前制作していたノベルゲームシステムを流用しました。文章だけでなく、待機、背景の切り替え、画面の揺れなどをコマンドと引数で指定します。この仕組みは、後にCSV4Unityとして独立したライブラリへと発展しています。

コマンドによって必要な列や引数の型が変わるため、CSVのスキーマに条件付きの検証を追加しました。背景名を文字列として読む箇所と、時間を数値として読む箇所を区別し、データと実装の不一致を見つけやすくしています。

画面の揺れでは、小数の時間指定をCSV側だけでなく読み込み処理側もfloatへそろえました。また、本文に引用符が入るCSVの書式を修正するなど、演出データを安定して読み込むための調整も行っています。

失敗時の演出と画面遷移

時間切れの処理では、血しぶきの演出を表示してからリザルトへ進む流れを調整しました。演出の待機とゲームの終了処理、リザルト後のタイトルへの復帰をつなぎ、失敗時にも画面遷移が途切れないようにしています。

作品のビジュアル

icon.png
急擬山の作品アイコン
thank-you.jpg
プレイへのお礼に描かれたイラスト