Skip to content

Latest commit

 

History

History
174 lines (134 loc) · 12 KB

File metadata and controls

174 lines (134 loc) · 12 KB

テスト計画

この文書では、現在のプロトタイプに対する回帰テスト、実際のシーンを使った完走確認、性能計測、Windowsビルドの確認方法をまとめます。終了コードだけで判断せず、テスト結果XMLとログの内容も確認します。

EditModeテスト

現在のEditModeテストは151/151件が成功しています。主な確認範囲は次のとおりです。

  • fixed tick、入力記録、記録上限、短い記録、確定後のデータ変更防止
  • Stable IDの未設定・重複検出と、記録したIDによる対象の一意な解決
  • インタラクションの記録順、記録範囲、競合時の優先順位とTargetBusy
  • バッテリーの重複所有防止、バッテリー/ソケット/ドアのリセット整合性
  • ループ履歴の上限、Echoの世代順、ドア状態を次のtickで反映する規則
  • ゲーム状態の正しい遷移、不正遷移の拒否、一時停止中のシミュレーション停止
  • シーン再生成の再現性、Stable ID、Build Settings、Missing Script / Reference
  • 日本語表示、入力案内、フォント、画面幅に応じた折り返し、ポーズ画面の収まり
  • 外部素材の出典・ハッシュ・Import設定、表示用オブジェクトにColliderがないこと
  • VFX、AudioSource、マテリアル、カメラ、HUDの個数・参照・割り当て上限
  • シーン生成前後のアセットSHA-256確認と、想定外の変更がある場合の停止

PlayModeテスト

現在のPlayModeテストは131/131件が成功しています。主な確認範囲は次のとおりです。

  • プレイヤーとEchoの移動、短い記録の終端、Echo上限、衝突レイヤー
  • 感圧板、バッテリーの取得・運搬・挿入、ソケット、ドア、ゴール
  • プレイヤー/Echo間の所有競合、対象の無効化・再有効化、ループ時の状態復元
  • 記録したStable IDだけを使用し、近くの別の対象で代用しないこと
  • 3セクションをシーン再読み込みなしで進行し、全区間を自動完走できること
  • 一時停止、セクション再開、最初から再開、完了後のメニュー、2段階の終了確認
  • 日本語の目的表示、状況別の入力案内、失敗理由、デバッグ表示の初期状態
  • カメラ、HUD、ロボットの姿勢、ドア表示、回路表示がゲーム処理を変更しないこと
  • 最大3体のEcho、世代表示、VFX・音響のプール上限、重複再生の抑制
  • プロジェクト内の全シーン読み込み、Missing Component / Reference、予期しないログ

実行コマンド

PowerShellでリポジトリのルートから実行します。メニュー名、クラス名、引数名は実装上の識別子であるため、そのまま記載しています。

$unity = 'C:\Program Files\Unity\Hub\Editor\6000.4.6f1\Editor\Unity.exe'
& $unity -batchmode -nographics -quit -projectPath "$PWD\Unity" -executeMethod EchoShift.Editor.P3SceneBuilder.BuildFromCommandLine -logFile "$PWD\Logs\scene-builder.log"
& $unity -batchmode -nographics -projectPath "$PWD\Unity" -runTests -testPlatform EditMode -testResults "$PWD\TestResults\editmode.xml" -logFile "$PWD\Logs\editmode.log"
& $unity -batchmode -nographics -projectPath "$PWD\Unity" -runTests -testPlatform PlayMode -testResults "$PWD\TestResults\playmode.xml" -logFile "$PWD\Logs\playmode.log"
& $unity -batchmode -force-d3d11 -quit -projectPath "$PWD\Unity" -executeMethod EchoShift.Editor.Phase4BuildPipeline.BuildPhase4ThreeWindowsDevelopment -logFile "$PWD\Logs\build.log"
& "$PWD\Builds\Phase4_3\ECHOSHIFT_Phase4_3.exe" -batchmode -force-d3d11 -screen-width 1920 -screen-height 1080 -phase4PerfProbe -logFile "$PWD\Logs\performance.log"

Unity Test FrameworkはXMLを書き出した後に終了するため、テスト実行コマンドには-quitを付けません。シーン生成とビルドは終了コードに加えてログ内の警告・エラー・完了マーカーを確認します。性能計測はNull Graphics Deviceを使わず、取得できないカウンターを推定値で補いません。

現在の検証結果

確認項目 結果
EditMode 151/151 成功
PlayMode 131/131 成功
全3セクションの自動完走 成功
インタラクション 4回成功 / 0回失敗
最大Replay Drift 0 m
Missing Component / Reference 0
コンパイラーのエラー / 警告 0 / 0
Missing / NullReference / 未処理例外 0 / 0 / 0
Windows x86_64 Development Build BuildReport Success

最大3体のEchoを出したD3D11計測では、600フレームの平均/95パーセンタイル/最大が8.342 / 8.405 / 8.639 ms、Main Threadの平均/最大が8.337 / 8.637 ms、定常時GCが0 B/frameでした。遷移時の最大値は初回16.887 ms、再計測18.038 msで、定常時とは分けて記録しています。Draw Callsなど、この環境で取得できなかった値は未計測として扱っています。

表示・演出では、VFXを最大4システムに制限し、パルスの最大サイズ0.32 m、最大アルファ0.42、Bloom強度0.22、しきい値1.35を確認しています。最終確認動画は1920x1080 / 30 fps、39.966667秒で、必要な12場面を含みます。

検証結果の推移

途中の実装で取得した値も、現在の結果と区別して残しています。現在の合格数は上記の151/151131/131です。

ゲーム進行と日本語表示

Unity 6000.4.6f1で2026-07-21に確認しました。

  • EditMode 61成功/0失敗/0Skip、1.8848759 s
  • PlayMode 61成功/0失敗/0Skip、16.4244913 s
  • 全検証シーンの最大Replay Drift 0 m
  • 3つのセクションを1,081 tickで完走し、インタラクション4回成功/0回失敗
  • Windows x86_64 Development Build:BuildReport成功、警告0、289 File、166,334,282 bytes
  • EXE SHA-256:098A43C3B20762E4BDF938771C36F0FB116126AEC8932B2A77EB403F0CB77938
  • Headless Playerでlanguage=ja-JPfont=Noto Sans JPglyphs=True、HUD、Schema 1のJSON保存、終了コード0を確認
  • 画面付きの通し確認は10分53.2秒、各セクション2分08秒/3分33秒/4分24秒、ループ2/3/3、再開0

モジュール式の表示・演出

Unity 6000.4.6f1、URP 17.4.0で2026-07-21に確認しました。

  • EditMode 84成功/0失敗/0Skip、8.059572 s
  • PlayMode 87成功/0失敗/0Skip、19.2221506 s
  • P0/P1/P2のScene SHA-256は1411EB0E...24C54AADD3D3...EBB73EC41AA...22Cのまま変化なし
  • 全シーンの最大Replay Drift 0 m、3セクション完走、インタラクション4回成功/0回失敗
  • BuildReport成功、警告0、エラー0、291 File、178,845,266 bytes
  • D3D11、最大3体のEcho、1920x1080、600フレーム:平均8.339 ms、95パーセンタイル8.359 ms、最大8.581 ms
  • Main Thread平均8.335 ms、最大8.596 ms、ループ切り替え最大14.093 ms、定常時GC 0 B/frame
  • 最大使用Memory 105,811,560 B
  • Draw Callsは取得できず、SetPassは0を返したため有効値として扱わず
  • 1920x1080のキャプチャ8枚について、個数・寸法・File Sizeを確認

この時点の画面付きPlayerは、正常なUnity終了Messageの後に0xC0000005で終了しました。ゲーム内容の結果とは分けて、現在もWindows版の既知の課題として扱っています。

外部素材の組み込み

Unity 6000.4.6f1、URP 17.4.0で2026-07-22に確認しました。

  • EditMode 93/9328.2191387 s
  • PlayMode 93/9324.4194633 s
  • 全シーンの最大Replay Drift 0 m。インタラクション成功/失敗は順に2/02/04/0
  • Development Build:291 File、204,467,042 B
  • Non-Development Build:182 File、140,785,117 B
  • D3D11、最大3体のEcho、1920x1080、600フレーム:平均8.337547 ms、95パーセンタイル8.336699 ms
  • Main Thread平均8.329742 ms、遷移最大15.721394 ms、定常時GC 0 B/frame
  • 最大使用Memory 168,041,477 B、Texture Memory 40,882,741 B
  • Draw Callsは取得できず、GPU Frame Time、SetPass、Triangle、Vertexの0は有効値として扱わず
  • 外部素材導入前後のキャプチャは各8枚、1920x1080、デバッグ表示なし

床から浮いて見える外周装飾を修正した後は、対象テスト1/1、EditMode 94/94、PlayMode 93/93でした。3セクションを1,091 tickで完走し、最大Replay Drift 0 m、インタラクション4/0、Stable ID、Collider、Missing Component、既存シーンのHashを再確認しました。

カメラ・HUD・画面内の読みやすさ

2026-07-22に確認しました。

  • 1920x1080のキャプチャ8枚で、デバッグ表示とCursorがなく、必要なキャラクターが画面内に入ることを確認
  • EditMode 99/9925.5873039 s
  • PlayMode 105/10523.096738 s
  • 警告/エラー0/0
  • 3セクション完走、Replay Drift 0 m、インタラクション4/0、テレメトリーJSONあり
  • BuildReport成功、291 File、204,479,394 B
  • 最大3体のEcho、600フレーム:平均/95パーセンタイル/最大8.341 / 8.370 / 8.821 ms
  • Main Thread平均/最大8.337 / 8.832 ms
  • Camera平均/最大0.0077 / 0.0629 ms
  • UI平均/最大0.0036 / 0.0532 ms
  • 定常時GC 0 B/frame

キャラクター・ドア・回路表示

2026-07-23に確認しました。

  • EditMode 116/11649.3721874 s
  • PlayMode 127/12737.6364498 s
  • 失敗/Skip 0/0、Unity終了コード0
  • 全検証シーンと3セクションの表示経路が成功し、Replay Drift 0 m、インタラクション4/0
  • 最大3体のEcho、600フレーム:平均/95パーセンタイル/最大8.342 / 8.388 / 8.883 ms
  • Main Thread平均/最大8.331 / 8.894 ms
  • Camera平均/最大0.0126 / 0.0432 ms
  • UI平均/最大0.0070 / 0.0310 ms
  • Robot Pose平均/最大0.0054 / 0.0389 ms
  • ドア表示平均/最大0.0181 / 0.0423 ms
  • 定常時GC 0 B/frame
  • 遷移最大16.887 ms、再計測18.038 ms
  • D3D11キャプチャ8枚と、30.025秒の通常描画確認で必要な9状態を記録
  • Windows x86_64 Development Build:PHASE4_3_BUILD_OK、警告/エラー0/0、291 File

VFXと動画

2026-07-31に確認しました。

  • EditMode 120/120、PlayMode 130/130、失敗/Skip 0/0
  • Radial Alpha Textureを使う8 ParticleのPulse、最大サイズ0.32 m、最大Alpha0.42、同時実行最大4System
  • Bloom強度0.22、しきい値1.35、Scatter 0.42
  • H.264動画は1920x1080、30 fps、39.966667秒。計測したゲームプレイ39.626秒、完了画面0秒、Time.timeScale = 1、必要な12場面を収録
  • 画面全体で輝度210以上の占有率は最大2.00%、巨大な不透明白Particleは0
  • 3セクションを1,070 tickで完走し、Replay Drift 0 m、インタラクション4/0
  • 最大3体のEchoで平均/95パーセンタイル/最大8.342 / 8.405 / 8.639 ms
  • Main Thread平均/最大8.337 / 8.637 ms、定常時GC 0 B/frame
  • Build Marker PHASE4_3_BUILD_OK、警告/エラー0/0、Compiler/Missing/Null/Unhandled一致0
  • 録画あり/なし、Pause、自動終了、Recorder初期化あり/なしの6条件すべてで、終了時のUnityPlayer.dll0xC0000005を再現

Windows版終了時の確認

画面表示を伴うWindows版は、終了時にUnityPlayer.dllのnative cleanup内で0xC0000005を再現します。ゲームプレイ、テレメトリー保存、テスト結果とは分けて未解決事項として管理しています。詳細はWindows版終了時クラッシュの調査を参照してください。

テストXML、ログ、キャプチャ、ビルド、UnityのLibraryは、端末固有のパスや時刻を含む再生成可能な出力のためGit管理していません。