編集できる範囲を指定する
どのオブジェクトを分離し、命名し、編集可能にしておくか指定しましょう。見た目が立派でも、中身が外殻だけでは使えない場合があります。
「作業台の上のインタラクティブなロボットペット」は、Three.js, ロボットペットをテーマにGPT-6 Astraで制作した3D作例です。実際の仕上がりを確認し、自分のプロジェクトに合わせてプロンプトを調整できます。
同じキャラクターを、二つの実際の制作方法で比較しています。結果は課題によって異なります。
完全版仕様書。
チャットメッセージではなく、プロジェクトフォルダー内のファイルとして保存する。
次に:/goal これをthree.jsで構築し、SPEC.mdを読んでその内容に従う
特にセクション9と10を厳守する。
{ START }
1 これは何か
小さな四足歩行ロボットが作業台で暮らしている。充電し、
一緒に遊び、3つの仕事を任せる。ロボットは作業台から出ず、
あなたもそこを離れない。それがこのゲームのすべてだ。
このビルドを支えるのは、ロボットの見た目と
動きの2つだけだ。プレイヤーはゲーム中ずっと
固定された距離から1体のオブジェクトを見続ける。だからその対象は
見ていたくなるものであり、生きているように動かなければならない。
会話するペットではない。声も、口も、画面上の顔もなく、
あなたの言葉を繰り返すこともない。あなたに注意を向ける機械であり、
それは別物で、より良いものだ。
2 ロボット
大きさは猫ほどで、4本の脚を持つ。
魅力を生むのはプロポーションだ。
- ボディは丸みを帯びたブロックで、高さより幅があり、頭部幅の約2倍の
長さにする。重量感が伝わる。
- ボディに対して頭部は大きく、ボディの高さの約40パーセントで、短い首の前方に
載せる。好奇心が伝わる。
ちびキャラのような頭部にはせず、目も大きくしない。
- 脚はボディに比べて細身にし、重いものを
軽い四肢で支える。この対比によって、歩行が不器用ではなく
繊細に見える。
- 実質的にはカウンターウェイトである短い尾。重りらしく揺れる
- 頭部に短いアンテナを1本付ける。あらゆる動きの半拍後に、素早くしなって
落ち着く。コストはほとんどかからないが、モデル全体に生命感を与える
最大の要素となる。
素材は3種類まで。3種類を超えない。
1 塗装パネル。柔らかなボーンホワイトで、マット、わずかに暖色。背中、
臀部、頭部の上面に使う。見えている表面の少なくとも60パー
セントを占めること。そうでなければ、部品を積み上げただけに見える。
2 むき出しの切削金属。ひんやりした中間色のグレーで、脚、フレーム、関節、
首に使う。各関節リングだけは暖色の真鍮にする。
3 暗いラバー。ほぼ黒でマット。4つの足、首のスリーブ、
ケーブルに使う。
顔:同じ大きさの丸いレンズを2つ、左右に離して配置し、埋め込む。
額を横切る切削溝の奥に収める。この溝は
切削されたエッジであり、眉ではない。動くこともない。表情はすべて
頭部の角度、アンテナ、レンズの明るさで表現する。
欠点を1つ設ける。片方の肩パネルだけが、
一度交換されたように少し色合いが違う。目立たせない。
シルエットテスト、合否判定:ロボットを純粋な黒一色で白背景にレンダリングする。
64×64ピクセルで、横向きと斜め前方から撮影する。
持ち上がった頭部、頭部とボディの隙間、4本の脚とその間の
空間、尾がすべて判別できなければならない。どれか2つの塊が融合したら、
レンダリングではなくモデルを修正する。
3 バッテリーをプログレスバーにする
片側に5つのセルを帯状に並べ、アンバー色に点灯させる。残量が減ると
1つずつ消え、充電すると1つずつ点灯する。画面上に数字やバーは
一切表示しない。
5セル 軽快に動き、頭を上げ、尾を振る
4 通常
3 動きが遅くなり、頭が少し下がる
2 立ったままではなく、動作の合間に座る
1 自力で充電パッドまで歩き、そこで待つ
0 脚を折りたたみ、その場で電源を切る。
レンズは暗くなり、その場でパッドへ運ばれるのを待つ
壊れることも、停止して動かなくなることもなく、0になっても失われるものはない。
4 動き
- 本物らしい歩行。対角線上の脚を一対ずつ動かし、足は作業台に接地したまま
胴体がその上を通過しても、足はその場に留まる。足は滑らせない。
。
- 重み。荷重された脚の対に合わせて胴体が沈む。歩き出すときは、動く前に前へ
傾く。止まるときは、体勢を立て直すために短い一歩を踏み出す。
。
- プレイヤーを見ている。カーソルが作業台の上にある間は、頭部がカーソルを追い、
胴体より先に首が旋回方向を向く。
- 姿勢を立て直す。横から軽く押すとよろめき、脚を大きく踏み出して
体勢を戻す。決して倒れない。
- 静止して落ち着く。立ち止まっている間も数秒おきに重心を移し、
レンズがゆっくり瞬きする。暗くなってから明るさが戻るだけで、完全には
閉じない。
練習するほど上達する。ジョブを1回こなすごとに、ふらつきが少しずつ小さくなり、
動きが少しずつ速くなる。ただし上限がある。
この変化を知らせる表示はない。20回目のジョブを終える頃には、何をすべきか心得た
機械のように、目に見えて動きが洗練されている。その変化こそが、
このゲームにおける唯一の進行要素となる。
5 作業台
ひとつの作業台を、固定距離から見る。温かみがあり、使い込まれている。
天板は使い込まれて白っぽくなった木材。背後の壁は落ち着いた青みがかったグレーグリーンで、無地。
ロボットは無塗装の金属で、関節には温かみのある真ちゅう。レンズとバッテリーセルは
琥珀色で、光る色はこれだけ。片側から暖色のランプ光が差し、
長く柔らかな影を落とす。それ以外はすべて彩度を抑える。
作業台の上には、ケーブルを巻いた充電パッド、ボルトの入った瓶、
丸めた布、小さな木箱、デスクランプ、ゴムボール、
ブリキのボウル。それ以外は何も置かない。
ランプだけが光源となる。ロボットがその前を横切ると、
影が作業台の上を掃くように移動する。
6 用途だけで描写する
- 作業台の上でボールをドラッグすると、ロボットは胴体を向ける前に
頭部でボールを追い、その後に体を向けて追従する
- ロボットを充電パッドに乗せると、ひとつ目のセルが点灯し、続いて
次のセルが、ひとつずつ間を置いて点灯する
- 横から軽く押すとよろめき、脚を大きく踏み出して
体勢を支え、まっすぐに戻る
- ボルトをブリキのボウルに落とすと、ロボットが歩いて近づき、ボルトを
口元のプレートで拾い、瓶まで運ぶ
- 何もせずにいると、作業台の端まで歩き、下をのぞき込み、
後ずさりする
- 背中のパネルをかくと、ロボットは体を低くし、
かくのをやめるまでじっとしている
これらはすべて実際の動きで見せる。キャプションで説明してはいけない。
7 3つのジョブ
それぞれ異なる動きの種類を見せるためのもので、各ジョブはオブジェクトを作業台に置くことで
依頼される。メニューから選ばせてはいけない。
fetch ボルトをどこかに落とす。ロボットが歩いて近づき、拾い上げ、
瓶まで運ぶ。歩行と方向転換を見せる。
stack 木箱を3つ置く。ロボットが1つずつ押して積み上げる。
押す動作、踏ん張り、持ち上げを見せる。
chase ボールを転がす。ロボットが走って追いつき、足で止めて、
持ち帰る。走行、滑り、停止を見せる。
各ジョブでバッテリーを少し消費する。セル2個の状態で行うジョブは、
セル5個のときと同じジョブより遅く、ふらつきも大きい。キューも、順番指定も、
タイマーも、報酬もない。
8 インターフェース
画面下部中央:何かに手が届く範囲に入ったときだけ、キーやドラッグ操作とそのアクションを示す
キーまたはドラッグ操作とアクションを示し、リーチ範囲から外れると消える
範囲外では表示しない。
画面にはそれ以外何も表示しない。バッテリーバーも、満足度メーターも、
空腹度メーターも、コインも、レベルも、経験値も、星も、
タイマーも、メニューも、設定も、チュートリアルのポップアップも、浮遊ラベルも
ロボットの上に表示しない。
プレイヤーが知る必要のあることは、すべてロボットのボディに表示する。
カメラは作業台に固定し、正面から斜め前方、やや上の位置に置く。
垂直視野角は40度。ロボットは画面中央の作業台の高さの
30〜45パーセントを占める。
1080pでは各バッテリーセルの幅を少なくとも8ピクセルにする。画面には作業台全体を
常に収める。ドラッグで約60度まで軌道回転できるが、これ以上は回転させない。
カメラが作業台から離れることも、カットが入ることも
ない。
9 禁止事項(すべて明記)
ペット要素:音声なし、会話なし、プレイヤーの言葉の復唱なし、
マイクなし、画面上の顔なし、口なし、眉なし、
瞳孔のある漫画調の目なし、ハートなし、絵文字なし、吹き出しなし、
名前入力なし、コスチュームなし、帽子なし、ペイントショップなし。
基本プレイ無料要素:コインなし、ジェムなし、いかなる通貨もなし、
ショップなし、広告なし、デイリー報酬なし、連続ログイン報酬なし、通知なし、
購入が必要なエネルギーなし、待ち時間タイマーなし、レベルなし、
経験値バーなし、実績なし、リーダーボードなし。
ゲームプレイ:敵なし、戦闘なし、体力なし、ダメージなし、死亡なし、
破損なし、修理ミニゲームなし、失敗状態なし、スコアなし、
タイマーなし、クエストマーカーなし、カットシーンなし、ロード画面のアートなし。
過去のビルドの繰り返し:ビーチなし、ヤシの木なし、カニなし、
浮遊島なし、ランタンなし、桜なし、忍者なし、
手裏剣なし、ボクセルブロックなし、つるはしなし、溶岩なし、車なし、都市なし、
水中要素なし、コンブなし。
レンダリング:リアルなテクスチャなし、硬い影なし、レンズフレアなし、
フィルムグレインなし、レターボックスなし、被写界深度によるぼけなし、色収差なし、
灰色の画面フォグなし。ブルームを付けるのはレンズと
バッテリーセルだけにする。
10 ビルドの予算
このビルドは1回の作業セッションで完成させる。以下の項目は
このバージョンでは絶対に追加しない。追加も、仮実装も、
TODOを残すこともしない。
2つ目の部屋なし、屋外なし
2体目のロボットなし
セーブもロードもなし、リロード時は新しいロボットにする
物理エンジンなし:4本脚のための手書きの逆運動学を、平面上で実装し、
作業台上の小道具には単純なボックス衝突判定を使う
ラグドールなし
サウンドなし
メニューなし、設定なし、一時停止画面なし
ジョブは3つまで
昼夜サイクルなし
時間を使う優先順位は次のとおり:
1 ロボットのプロポーションとシルエットテスト
2 歩行サイクルと足の接地
3 ヘッドトラッキング、アンテナ、静止時の落ち着き
4 バッテリー状態と充電パッド
5 3つのジョブ
6 作業台の小物類
時間が足りなくなったら、何も置いていない作業台と、美しく
しっかり歩くロボットの状態でリリースする。決して逆にしない。何もない作業台と
よくできたロボットがあれば、ゲームは完成している。小物で飾った作業台に動きの硬いロボットでは、
何も意味がない。
完成と呼ぶ前に、言葉ではなくレンダーで次の4点を証明する:
言葉ではなく、次の4点をレンダリングで証明する:2つの角度から見た64ピクセルのシルエットテストと、歩行サイクル
5セル時の歩行サイクルと、同じ歩行を2セル時に行ったもの、ヘッドが追従する
全周回転の範囲でカーソルを追う様子、そして5セル時と0セル時のロボットを
並べて比較したもの。
これを作り、まず最初に修正する3つの点を教えてほしい。
{ END }プロンプトのポイント
Three.js, ロボットペット, 逆運動学 を題材にした GPT-6 Astra の 3D 作例「作業台の上のインタラクティブなロボットペット」を見てみましょう。作者の原文プロンプトか、公開情報を基にした制作指示かは、出典の区分で確認できます。
中心となる完成形を保ち、カメラ、操作、照明、成功時にできることを指定しましょう。見た目の細部を足す前に、まず動作を確認します。
どのオブジェクトを分離し、命名し、編集可能にしておくか指定しましょう。見た目が立派でも、中身が外殻だけでは使えない場合があります。
シーンを実行して目に見える不具合を確認し、フレームレート、操作、配置の具体的な基準を満たすまで繰り返すよう求めましょう。
大きな世界は地区、アセンブリ、節目に分け、各部分を確認してから範囲を広げましょう。
プロンプトでゲームやシーンを作ったら、そこに登場するキャラクターや小物も磨きましょう。Tripo で精細なアセットを作ってシンプルな仮モデルを差し替えると、世界がより生き生きとします。
作者が公開した作品紹介を基に、再利用できる制作指示としてまとめています。非公開のプロンプトをそのまま再現したものではありません。
生成した怪獣モデルと効果音を使い、怪獣作品に着想を得た Three.js ゲームを作成してください。巨大な戦闘が分かりやすく、怪獣の大きさが伝わる環境を構築してください。
リギング前に、Tripoキャラクターの表情差分をBlenderで用意してください。メッシュの位置をそろえ、使用していない差分は頭の内側に縮小して格納し、表情を段階的に切り替えてください。滑らかなブレンドやVRMへの対応をうたわないでください。