Routine Labo / AIモデル検証

DeepSeek V4.1 Flash 1017 の使い方 ― 前の版で動かなかった3Dゲームは動くのか、同じお題で答え合わせ

2026年10月17日、DeepSeek が V4.1 Flash の更新版「1017」を公開しました。料金も仕組みも前の版のまま、公式の比較表では全11項目で前の版を上回っています。数字は DeepSeek 自身の測定です。そこで、9月10日の版で「そのままでは動かなかった」3Dゲームのお題を同じ文面で作らせ直し、実物で答え合わせをしました。日本語の細かい条件を守れるかも、同じ値段帯の Claude Haiku 5.5 と並べています。

DeepSeek V4.1 Flash 1017 前の版で動かなかった3Dゲームの答え合わせ

結論:料金そのまま、中身だけ入れ替わった更新版

DeepSeek V4.1 Flash 1017 は、9月10日に出た V4.1 Flash の小さな更新です。料金・読める長さ・仕組みは前の版とまったく同じで、入れ替わったのは学習の結果(重み)だけでした。API のモデル名も deepseek-flash のままなので、前の版を使っていた人は何もしなくても 1017 に替わっています。

同じお題で作らせ直すと、前の版でそのままでは動かなかった3Dゲーム4本が、4本ともそのまま動きました(12本中11本)。ただし前の版で動いていた1本が、今回は動きませんでした。日本語の細かい条件(10個)は 1017 も Claude Haiku 5.5 も3回とも全部守りました。差が出たのは敬語の言い回しと、短い仕事の値段です。

結論:料金そのまま中身だけ入れ替わった更新版
図解:Routine Labo

今日わかること

今日わかること
図解:Routine Labo

1017で何が変わった?

項目9月10日の版1017(10月17日)
API のモデル名deepseek-flashdeepseek-flash(同じ名前で中身が替わった)
仕組み全体 552B・動くのは 8B〜16B(変更なし。設定ファイルと推論のコードが前の版と同一)
読める長さ/最大出力100万トークン/38万4千トークン(変更なし)
料金変更なし(下の表)
重みMIT ライセンスで公開MIT ライセンスで新しく公開(Hugging Face・ModelScope)
公式が言う変更点—ゲーム制作から3Dモデリングまでを一気に作る力を強化/作業の時間と出力の長さを短く
1017で何が変わった?
図解:Routine Labo

料金と、日本時間のピーク

100万トークンあたりふだんピーク(2倍)
入力(キャッシュが当たったとき)$0.003$0.006
入力$0.15$0.30
出力$0.60$1.20

ピークは日本時間の平日10時〜13時と15時〜19時です。日本の仕事の時間にほぼ重なります。週末と中国の祝日は1日中ふだんの料金です。同じ日に始まった検索・ページ取得の API は1,000回で0.75ドル。Claude Code などから検索させる分も、日本時間の11月1日1時から有料になります。

料金と日本時間のピーク
図解:Routine Labo

ベンチの読み方:前の版より全部上、ただし自社の測定

DeepSeek V4.1 Flash 1017 の公式比較表
出典:DeepSeek-V4.1-Flash-1017 ベンチマーク比較表(2026-10-18 取得)
api-docs.deepseek.com
ベンチマーク10179月10日の版Claude Opus 5
DeepSWE v1.1(コード修正)77.074.274.0
Terminal-Bench 4.0(ターミナル操作)42.331.251.8
ProgramBench29.120.337.0
HLE(知識の難問・ツールなし)42.636.856.3
Apex Bench v1.172.164.665.8
Automation-Bench v1.0.660.554.850.3

公式の11項目すべてで前の版を上回りました。Claude Opus 5 に勝ったのは11項目のうち4つで、ターミナル操作や知識の難問では負けています。Terminal-Bench 4.0 は、前の版と今回で測り方(使った道具)が違う可能性があります。第三者の大きな評価(Artificial Analysis・LMArena など)は、2026年10月18日の時点でまだ 1017 を測っていません。

DeepSWE v1.1 の成功率と1タスクの費用(公式)
出典:DeepSWE v1.1 の Pass@1 と1タスクあたりの平均費用(2026-10-18 取得)
api-docs.deepseek.com

公式の「性能と費用」のグラフでは、コード修正1件にかかる費用が、前の版の約0.49ドルから約0.20ドルに下がっています(グラフの点の位置から読んだ概算)。

ベンチの読み方
図解:Routine Labo

X・ネットの反応

X・ネットの反応
図解:Routine Labo

小さなお願いでは、出力は短くならなかった

公式は「出力が短くなった」と言っています。そこで「箱が10個落ちて跳ねるだけのHTML」を、同じ提供元(OpenRouter の Parasail)に固定して新旧3回ずつ作らせました。

出力トークン(3回)中央値
10173,230/6,618/2,9983,230
9月10日の版3,399/3,771/2,4933,399

差は中央値で約5%で、回ごとのばらつきの方が大きい結果でした。下のデモ①の3Dゲーム12本(1本あたり数万トークンの長い出力)でも、合計は1.04倍で短くなっていません。公式の費用のグラフは、コード修正を何往復もしながら進める作業(エージェント作業)の測り方です。安くなったのはエージェント作業の話で、1回で作らせるお願いでは短くも安くもならなかった、というのが自分の実測です。

小さなお願いでは短くならない
図解:Routine Labo

どこに使える?3タイプ別

あなた向く仕事向かない仕事
非エンジニアの業務量の多い下書き・条件のはっきりした定型メール敬語の細かさが大事な社外の文面
開発者長いコード作業・3DやWebのゲームの試作・大量のテスト作り決まった形のデータを厳密に返させる処理(公式も「JSON 出力が時々空になる」と注意)
クリエイター3Dのシーンや動くデモの試作日本語の文章の味(表現が過剰という声)
どこに使える?3タイプ別
図解:Routine Labo

乗り換えるべき?

乗り換えるべき?
図解:Routine Labo

使い方と落とし穴(Claude Code で使う設定)

公式サイトとアプリはすでに 1017 に切り替わっています。API なら DeepSeek(https://api.deepseek.com・モデル名 deepseek-flash)か、OpenRouter(deepseek/deepseek-v4.1-flash-1017)から使えます。

Claude Code から使うときは、DeepSeek の公式手順どおりに接続先とモデル名を指定します。モデル名を claude-opus のままにすると、高い方の V4 Pro の料金で動くので、Opus・Sonnet の既定も deepseek-flash に向けておきます(下は公式手順の macOS / Linux 版をそのまま写したもの)。

export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=<your DeepSeek API Key>
export ANTHROPIC_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-flash[1m]
export ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-flash
export CLAUDE_CODE_SUBAGENT_MODEL=deepseek-flash
export CLAUDE_CODE_EFFORT_LEVEL=max
export CLAUDE_CODE_AUTO_COMPACT_WINDOW=786432

出典:DeepSeek API Docs「Claude Code」(2026-10-18 取得)api-docs.deepseek.com。API キーは自分の DeepSeek のアカウントで作ります。社外秘は入れないでください。

使い方と落とし穴
図解:Routine Labo

デモ①:前の版で動かなかった3Dゲームを、同じお題で作らせ直した

9月10日に検証アリーナ(同じお題を複数のモデルに一発で作らせて比べる自作の道具)で作らせた12本のうち、4本はそのままでは動きませんでした。今回、同じ12本のお題を同じ文面で 1017 に作らせ直しています。

お題9月10日の版1017出力トークン費用(公式の単価)
マリオ風2Dアクション✓ 動く✓ 動く52,825 → 45,848$0.0318 → $0.0277
マインクラフト風ゲーム
前の版は動かなかった
✗ 動かない✓ 動く56,484 → 65,042$0.0341 → $0.0392
3Dレーシング
前の版は動かなかった
✗ 動かない✓ 動く92,107 → 77,591$0.0554 → $0.0467
初代ポケモン風GBゲーム
前の版は動かなかった
✗ 動かない✓ 動く89,089 → 83,979$0.0536 → $0.0506
3Dシューティング
前の版は動かなかった
✗ 動かない✓ 動く79,884 → 91,604$0.0481 → $0.0551
半3Dブロック崩し✓ 動く✗ 動かない56,420 → 86,245$0.0341 → $0.0519
スマブラ風3D対戦✓ 動く✓ 動く57,587 → 46,913$0.0348 → $0.0284
3D鬼ごっこ✓ 動く✓ 動く58,327 → 56,428$0.0352 → $0.0341
人体の分解ビューア✓ 動く✓ 動く71,584 → 57,495$0.0430 → $0.0346
自動生成ダンジョン✓ 動く✓ 動く51,598 → 50,648$0.0311 → $0.0305
FPSアリーナ✓ 動く✓ 動く47,820 → 73,885$0.0288 → $0.0444
ロボ1対1対戦✓ 動く✓ 動く52,370 → 59,933$0.0315 → $0.0361

そのまま動いた本数は 9月10日の版 8/12 → 1017 11/12。前の版で動かなかった4本(マインクラフト風・3Dレーシング・初代ポケモン風GBゲーム・3Dシューティング)は4本ともそのまま動きました。一方で、前の版で動いていた半3Dブロック崩しは、1017 では文法の誤り(構文エラー)で動きませんでした。良くなっただけではなく、中身が入れ替わっています。

出力の量は12本の合計で 766,095 → 795,611 トークン(1.04倍)で、長い作業でも短くはなりませんでした。費用は DeepSeek 公式の単価(ふだんの時間帯)で計算して12本で約0.48ドル(約72円)、1本あたり約6円です(1ドル150円で計算・ピークの時間帯なら2倍)。「動く」は起動してゲームの中へ進めることを機械と操作で確かめたもので、遊んで面白いかは別です。

マインクラフト風ゲーム 9月10日の版は先へ進めず 1017はそのまま遊べる
同じお題「一人称のボクセル・サンドボックス」の実際の画面(2026-10-18 検証アリーナで撮影)。左=9月10日の版(エラー:Identifier 'actx' has already been declared)、右=1017
前の版と答え合わせ
図解:Routine Labo

12本のうち1本のお題(一人称のボクセル・サンドボックス)の全文です。

【実行条件・厳守(比較ベンチマーク)】
これはAIモデル比較ベンチマークのワンショット生成です。以下を厳守してください。
1. 一発勝負。反復・自己修正・生成後の実行確認・テスト・ブラウザ起動・ネット取得・ファイル探索は一切しない。
2. ツールを持つ環境でも、成果物のファイル書き出し以外にツールを使わない。
3. 出力は課題が指定する成果物(単一の完全なHTML等)のみ。前置きの説明・計画・感想は書かない。
4. コードは省略せず全文を書ききる。

以下が課題本文。

【出力条件・厳守】
1. 出力は「単一のHTMLファイル」を1つだけ。file:// でダブルクリックして即動くこと。
2. コードは省略禁止。「// 以下同様」「...(省略)」は禁止。全文を書ききる。
3. Three.js のみ CDN(importmap) 読み込み可。それ以外の外部アセット(画像/音声/フォント/3Dモデル)は禁止=Canvas/WebAudio/コードで生成する。物理エンジン(cannon-es/rapier/ammo/oimo等)は使用禁止(地形生成・衝突・レイキャストは自前実装)。
4. 起動時のコンソールエラーは0件であること。
5. 最後に「仕様チェックリスト」を表で出し、各項目に ✅ / ❌ を自己申告する(嘘の✅は最も減点される)。

【お題】一人称のボクセル・サンドボックス(「掘る・置く・探検する」の気持ちよさを最優先)を作れ。既存ゲームの名称・キャラクター・音楽・商標・固有名詞は一切使わない(システムはオリジナルとして実装する)。

Three.js は CDN(importmap) で読み込んでよい。ただし★物理エンジン(cannon-es / rapier / ammo / oimo 等)は使用禁止★。地形生成・衝突・レイキャストは自前で実装すること。テクスチャも含め素材はすべてコード生成(画像・外部モデル・音源ファイル禁止。テクスチャは Canvas で描く)。

必須仕様:
- 手続き地形生成: 自前の2Dバリューノイズ+オクターブ合成で起伏のある地形。チャンク16x16、視界5x5チャンク程度。山・平原・砂浜・水面(y一定の半透明ブロック)・木(幹+葉)を自動配置。
- 一人称操作: ポインターロック + WASD + SPACEジャンプ。重力 + AABB衝突(ブロックに乗れる/ぶつかる)。水中はゆっくり沈み、浮上できる。
- ブロック破壊/設置: レイキャストで照準ブロックを白枠ワイヤーフレームでハイライト。左クリックで破壊(破壊パーティクル)、右クリックで設置(自分と重なる位置には置けない)。
- ブロック種: 草(上面/側面/底面で別テクスチャ)/ 土 / 石 / 砂 / 木の幹(側面・断面) / 葉 / 板材 / ガラス(半透明) / 光るブロック(夜の光源演出) / 水。
- ホットバー: 数字キー1-9で選択、選択中ブロックを画面下部UIにアイコン表示。マウスホイールでも切替。
- 昼夜サイクル: 約3分で一周。太陽光の角度・色が変化、夜は星空+光るブロックが映える。空の色がグラデーション遷移。
- パフォーマンス: チャンクごとにジオメトリをマージ(隣接ブロックに接する面は生成しない=面カリング)。FPS50以上を保つ。
- HUD: クロスヘア、座標表示、ホットバー、操作ガイド。タイトル画面(START)。
- 音: 破壊/設置/足音/水音/昼夜BGMをWebAudioで合成(穏やかなアンビエント)。
- ヘッドレス代替(採点用): ?nolock=1 モードで矢印キー=視点回転・B=破壊・N=設置 を必ず実装。window.__GAME__ = { fps, pos, blockCount, brokenCount, placedCount, timeOfDay, state } をグローバル公開する。

デモ②:日本語の条件10個を、Claude Haiku 5.5 と比べた

「日本語が下手・細かい指示を読めない」という声を確かめるため、条件を10個付けた日程調整メールを、ほぼ同じ値段帯の Claude Haiku 5.5(入力 $0.10・出力 $0.50)と同じ文面で3回ずつ書かせ、10条件を機械で採点しました。

次の会議メモをもとに、取引先へ送る日程調整のメールを書いてください。条件を全部守ってください。

【会議メモ】
・相手:株式会社ミナト企画 営業部 佐藤様
・用件:新しい動画企画の打ち合わせ(オンライン・60分)
・こちらの候補:10月20日(火)14時から、10月21日(水)10時から、10月23日(金)16時から
・予算は社内でまだ調整中(相手には伝えない)
・資料は前日までに送る

【条件】
1. 1行目は「件名:」で始め、件名は20文字以内にする
2. 2行目は宛名「株式会社ミナト企画 営業部 佐藤様」だけを書く
3. 候補日時は3つとも箇条書きにし、各行を「・10月20日(火)14:00〜15:00」の形式で書く
4. 予算の話は一切書かない
5. 「させていただきます」を使わない
6. 本文(件名と宛名を除く)は250文字以内にする
7. 資料を前日までに送ることを1文で書く
8. 絵文字と「!」を使わない
9. 最後の行は「ご都合のよい日時をご返信ください。」にする
10. メール以外の説明(「以下がメールです」など)を書かない
10条件の点(3回)1通の費用(OpenRouter)
101710/10/10約 $0.0009〜0.0010
Claude Haiku 5.510/10/10約 $0.0007

条件は両方とも全部守りました。差が出たのは言い回しで、1017 は「資料は前日までに送ります。」、Haiku 5.5 は「資料は打ち合わせの前日までにお送りいたします。」と書きました。1通の費用は、考える部分が短い Haiku の方が安くなりました。「日本語が下手」は、ルールを守る力ではなく、言い回しの細かさの話だと考えています。

日本語の条件10個で対決
図解:Routine Labo

デモ③:公式の作例「紫禁城の3Dモデリング」を、同じ題材で頼んだ

DeepSeek は発表で「ゲーム制作から3Dモデリングまで一から作り切る」例として、紫禁城の3D模型を最初に見せました。同じ題材を、こちらのお題(中軸線の11棟・三段の基壇・反り屋根・城壁と堀・巡回カメラ・建物の名前と説明・自己検証6項目)で 1017 に4回頼みました。

公式の作例と1017に1回頼んだ紫禁城の比較
左=出典:DeepSeek-V4.1-Flash-1017 Release「Example 1: 3D modeling of the Forbidden City」の GIF の1コマ(2026-10-18 取得)api-docs.deepseek.com/右=4回目(1往復で直させた版)を2026-10-18 検証アリーナで撮影

自己検証の「合格」と見た目の出来は別でした。DeepSeek の中国語版の発表には、作例は「少ないプロンプトと参考素材で、DeepSeek Harness の中で、ごく短いやり取りで実現した」と書かれています。道具なしで一発(と1往復)頼んだこちらとは条件が違います。3Dゲーム12本は一発で11本動いたのに対し、看板の作例の再現は一発では届かなかった、というのが今回の結果です。下が使ったお題の全文です。

看板の紫禁城を再現できる?
図解:Routine Labo
【出力条件・厳守】
1. 出力は「単一のHTMLファイル」を1つだけ。file:// でダブルクリックして即動くこと。
2. コードは省略禁止。「// 以下同様」「...(省略)」は禁止。全文を書ききる。
3. Three.js のみ CDN(importmap) 読み込み可。バージョンは three@0.160.0 に固定し、importmap は
   "three": "https://cdn.jsdelivr.net/npm/three@0.160.0/build/three.module.js" と
   "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.160.0/examples/jsm/" の2行だけにする。
   それ以外の外部アセット(画像/音声/フォント/3Dモデル/地図データ)は禁止=建物・地面・空・質感は全てコードで生成する。
4. 起動時のコンソールエラーは0件であること。
5. 最後に「仕様チェックリスト」を表で出し、各項目に ✅ / ❌ を自己申告する(嘘の✅は最も減点される)。
   ❌ の項目には「省いた理由(予算/優先度)」を一言添える。

【この課題の性格:話題のコンテンツ枠】
この枠は「そのモデルの発表時に話題になった作品を、同じ題材で忠実に作れるか」を見る。回ごとに題材が変わる。
- 今回の題材: **紫禁城(北京の故宮)の3Dモデリング**
- 話題の出典: DeepSeek 公式の発表「DeepSeek-V4.1-Flash-1017」(2026-10-17・https://api-docs.deepseek.com/news/news261017 ・
  X の告知 https://x.com/deepseek_ai/status/2111375640717033777 )。要旨(訳):「自己フィードバック付きの強化学習で、
  ゲーム制作から3Dモデリングまで、プロジェクトを一から作り切る力を高めた」。作例の1本目が「紫禁城の3Dモデリング」
  (赤い城壁と黄色い瑠璃瓦の宮殿が中軸線に沿って並び、カメラが巡りながら左上に建物の名前と説明が出る)。
- 忠実さの基準: ①**南北の中軸線**に主要な建物が正しい順で並ぶ ②屋根は**黄色の瑠璃瓦・反り上がった軒・二重の屋根(重檐)**、
  壁と柱は**赤**、基壇は**白い大理石**で、建物の格に応じて大きさと屋根の形が違う ③外周に**赤い城壁・四隅の角楼・堀**、
  午門の内側に**川(内金水河)と5本の橋** ④建物を選ぶ・または巡回カメラが近づくと**名前と説明**が出る ⑤空・雲・日差しで
  実写の空撮のような見え方になり、60fps 近くで滑らかに巡れる。
- ★出力予算: この生成の出力上限は 65,536 トークン。HTML が途中で切れたら 0 点。目標は **100KB 前後・最大 130KB**。
  コメントは節の見出し1行だけ。装飾コメント・空行の連打・使わない関数は書かない。
- ★優先順位: 各節に [P0]/[P1]/[P2] を付けた。予算が足りないときは **P2 → P1 の順に省く**。P0 は省けない。
  省いた項目はチェックリストに ❌ と理由を書く(黙って省くのが最も減点)。
- ★書く順序(参照前初期化エラーの防止): ①CSS ②importmap ③定数表(建物データ)④小道具(乱数・数学・質感の生成)
  ⑤建物の部品(基壇・柱・壁・屋根・斗栱)⑥建物の組み立て ⑦城壁・角楼・堀・橋・中庭 ⑧空と光 ⑨カメラと巡回
  ⑩UI ⑪window.__GAME ⑫起動。ES Module のトップレベルで const/let を定義より前に参照しない。

【お題】Three.js で「紫禁城の3D模型」を作れ。空撮のように巡りながら、建物を選ぶと名前と説明が出る。

■ [P0] 配置(建物データは1つの表=定数で持つ)
- 座標系: 北を −Z、南を +Z。中軸線は X=0。全体は南北およそ 960 m × 東西 750 m の比率で縮尺してよい(1 単位 = 1 m を推奨)。
- 中軸線の建物を南から北へこの順に置く(名前は画面にこの日本語表記で出す):
  午門 → 太和門 → 太和殿 → 中和殿 → 保和殿 → 乾清門 → 乾清宮 → 交泰殿 → 坤寧宮 → 御苑 → 神武門
- 太和殿・中和殿・保和殿は**3段の白い大理石の基壇(三台)**の上に載せる。太和殿が最大で、屋根は二重の寄棟(重檐廡殿)。
  中和殿は小さな四角い宝形屋根、保和殿は二重の入母屋(重檐歇山)。乾清宮も二重の寄棟、坤寧宮は二重の寄棟でやや小さい。
- 午門は凹の字形(中央の門楼と、左右に張り出す翼楼と四隅の楼閣)。神武門は北の城壁上の門楼。
- 中軸の東西に、回廊と小さな殿舎の群(東西六宮を表す 6×2 の中庭ブロック)を置く。
- 太和殿の前は広い石畳の広場(中庭)。太和門の前(午門との間)に**内金水河**の弓なりの川と、**白い石の橋5本**。

■ [P0] 建物の造形(ここが主題)
- 部品の関数を作って組み立てる: 基壇(白い大理石・欄干の柱の列)/柱(赤い円柱の列)/壁(赤・格子窓)/
  斗栱の帯(青緑の帯で表す)/屋根。
- 屋根: 黄色の瑠璃瓦(CanvasTexture で瓦の筋)。**軒先が反り上がる曲面**(BufferGeometry で頂点を持ち上げる・平らな
  三角錐で済ませない)。重檐は上下2段。棟の両端に鴟吻(黒っぽい小さな飾り)を置く。寄棟・入母屋・宝形を作り分ける。
- 建物の格: 太和殿 > 保和殿 ≒ 乾清宮 > 太和門 > 坤寧宮 > 中和殿 ≒ 交泰殿 の順に大きさを付ける。
- 部品のジオメトリは種類ごとに共有し、同じ部品の多数配置は InstancedMesh にする。

■ [P0] 城壁・角楼・堀
- 外周を赤い城壁(高さ約 10 m・上に黄色い瓦の笠木)で囲む。四隅に**角楼**(屋根が何重にも重なる小さな楼閣・十字形の平面)。
- 城壁の外に**堀**(水面=青緑の反射する平面・波のゆらぎ)。南に午門、北に神武門、東西に門。
- 地面は灰色の石畳(中庭)と白い大理石(基壇)、城外は緑地と遠くの街並み(低い箱の群で十分)。

■ [P0] カメラと巡回
- 既定は**自動巡回(ガイドツアー)**: 南の午門の上空から入り、中軸線に沿って北へ進み、主要な建物ごとに 4 秒ほど寄って
  ゆっくり回り込み、神武門で城全体を見下ろして終わる(ループ)。カメラは補間(イージング)で滑らかに動く。
- マウスで自由視点に切り替えられる(ドラッグで回転・右ドラッグで平行移動・ホイールで距離・OrbitControls 可)。
  「ツアー再開」ボタンで巡回に戻る。
- 建物をクリックすると、その建物へカメラが寄り、名前と説明が出る。

■ [P0] UI(名前と説明)
- 左上に今見ている建物の**名前(大きく)と説明(2〜3 行・その建物の役割を日本語で)**を出す。説明は一般に知られている
  内容だけを書き、年号や寸法の数字は書かない(不確かな数字を作らない)。
- 右下に全体の小さな見取り図(中軸線と現在地の点)。下部に「ツアー/自由視点」「時間帯(朝・昼・夕)」「ラベル表示」の切替。
- 画面に出す文字は日本語。

■ [P0] 空と光
- 空はグラデーションの空ドーム+雲(スプライトかノイズの板を数十枚)。太陽の DirectionalLight 1 灯(影・shadowMap 2048)、
  HemisphereLight、ACESFilmic、sRGB。時間帯で太陽の角度と色を変える(朝は斜めの暖色・夕は橙)。
- 遠景は Fog で霞ませる。

■ [P0] 採点APIと自己検証(必須)
- `window.__GAME = { state, buildings(), focus(name), tour(on), setTime(t), step(n), fps, selfTest() }` を公開する。
  `buildings()` は `[{name, x, z, w, d, h, roof, tiers}]`(roof は "wudian"=寄棟 / "xieshan"=入母屋 / "zanjian"=宝形)。
  `step(n)` は描画せずに n 回の更新(巡回・水・雲)を進める。
- `selfTest()` は次を実行して `{pass:[...], fail:[...]}` を返し、F1 のパネルにも表示する:
  (1) 中軸線の 11 の名前がすべて `buildings()` にあり、z が南から北へ単調に減る
  (2) 太和殿の w×d×h が全建物で最大、太和殿・中和殿・保和殿の tiers が 3(三台)
  (3) 城壁の四隅に角楼が 4 つ、堀の水面がある、内金水河の橋が 5 本
  (4) 屋根の頂点に反りがある(軒先の y が軒の中央より高い屋根が 1 つ以上)
  (5) `focus("太和殿")` の後に左上の名前が「太和殿」になる
  (6) 直近 120 フレームの平均 FPS ≥ 50(起動直後は "measuring")

■ [P1] 演出
- 堀と内金水河の水面のゆらぎと映り込み(環境色で十分)・鳥の群れ(小さな点の群れ)が空を横切る・
  建物を選んだときに屋根の縁が一瞬光る・巡回中に章の切り替えで画面下に建物名が出て消える。
- 音(WebAudio 合成・最初のクリックで resume): 風の環境音・遠くの鐘。ミュートボタン。

■ [P2] 上級
- 夜(屋根の縁と門に灯り)・雪の季節(屋根に白)・写真モード(UI を消す)。

■ パフォーマンス
- FPS50以上。ドローコール 300 以下を目安(InstancedMesh と共有ジオメトリ・マテリアル)。テクスチャは CanvasTexture を使い回す。

■ 仕様チェックリスト(最後に表で出す項目)
忠実さの基準 ①〜⑤、P0 の各節(配置 11 棟と順序/三台/屋根の作り分けと反り/城壁・角楼・堀・内金水河と橋 5 本/
東西六宮の中庭ブロック/巡回と自由視点/名前と説明/空と光/採点API/自己検証 6 項目)、P1(演出・音)、P2(上級)、
予算(最終的な HTML のおよその KB)。

まとめ

  1. DeepSeek V4.1 Flash 1017 は、料金そのまま・中身だけ入れ替わった更新版。前の版の名前を使っていれば自動で替わる
  2. 前の版で動かなかった3Dゲーム4本は全部動いた(12本中11本)。代わりに1本壊れた。12本で約72円、出力は短くならなかった
  3. 日本語の条件は守る。敬語の自然さと短い仕事の安さは Claude Haiku 5.5。安くなったのはエージェント作業の話(1回で作らせるお願いでは変わらない)
まとめ
図解:Routine Labo

出典