Container-Z retweeted
アニメーションデータ0フレームのクモ🕷
地面→壁→天井、さらに縁を回り込んで裏側まで、すべてコードでリアルタイムに動かしています。
このポストをそのままAIエージェント(Claude Code / Codex など)に渡せば、同じ動きを再現できるはずです。以下はエージェント向けの技術メモです👇
――――――――――
8本脚のクモを、キーフレーム0・機械学習なし・レイキャストのみで歩かせてください。地面⇄壁⇄天井⇄縁の裏側を途切れずに移動できること。エンジンは問いません(原作は Godot 4 / GDScript)。
■ 毎フレームの処理順
1. 入力方向を今いる面の接平面に投影し、進行方向を面法線まわりに回す(旋回速度に上限あり)
2. ナビゲーション用のアンカー点を面に沿って進める
3. 歩行位相を進め、各脚の踏み出し判定と着地点探索を行う
4. 脚の接地状態から胴体の位置と姿勢を決める(バネで追従)
5. 胴体が地形にめり込んでいたら押し出す
6. 各脚をIKで解き、見た目を更新する
■ 1. アンカー(面に沿った移動)
・点と面法線を持たせる。移動後は法線方向の上下からレイを撃ち、面上に再投影する
・法線の変化が小さければそのまま更新し、大きければ「面の乗り換え」として扱う
・乗り換え時は、旧法線→新法線の回転(クォータニオン)で進行方向を回してから新しい面に投影する(平行輸送)。こうすると天井でも進行方向が反転しない
・凹角(壁):進行方向に前方レイを撃ち、法線が大きく違う面に当たれば、それを「次の面」とする
・凸角(縁):少し前方の真下へのレイが空振りしたら、縁の下から後ろ向きにレイを撃ち、裏側の面を見つける
■ 2. 90度の面替えは「前脚から先に着く」(最重要)
・次の面を見つけても、アンカーはすぐには乗り換えない。角の手前で減速し、頭と壁の間に8cmほど残して止まる
・前の2本は歩行位相を待たず、壁を探るような「探り足」を出す。着地点は、理想の着地点を新しい面に投影し、さらに面に沿って14cm先へ伸ばした位置。通常より高く上げ、遊脚中は目標を変えない
・前脚が新しい面に接地してから、アンカーを乗り換える。残りの脚も乗り換え先の面に向かう一歩しか出さない(元の面には戻らない)
・胴体の向きは、接地している脚が乗っている面の法線の加重平均で決める。アンカーの面に近いほど重みを大きくする(薄い板の表と裏で打ち消し合わないように)
・遊脚中の脚は、着地するまで離地点を支持点として扱う。そうしないと胴体が脚より先に回り、頭から壁に突っ込む
・フェイルセーフとして、1.4秒経っても前脚が着かなければ強制的に乗り換える
■ 3. 歩容
・左右交互の4脚グループ(L1 R2 L3 R4 / R1 L2 R3 L4、位相差0.5)。前から後ろへ1脚ごとに位相を少しずらし、軽い波を加える
・歩行周波数は速度に比例して上げる(約1.4Hz+1.15×速度、上限4.6Hz)。遊脚期の割合は低速36%→高速50%。歩幅=速度÷周波数
・踏み出す条件は次のどれか:位相が一周した時点で理想位置から3cm以上ずれている/脚がリーチの98%まで伸びた/停止中に22cm以上ずれている
・隣接する脚(左右の対と前後)がすべて接地しているときだけ上げる(支持が崩れないように)
・着地目標=基準位置+速度×(残りの遊脚時間+立脚時間の半分)。これで足先が胴体の下を「+半歩→−半歩」と通過する
・遊脚の軌道は smoothstep で補間し、離地面と着地面の法線、胴体の上方向を合わせた向きへ sin カーブで持ち上げる。段差を上るときは持ち上げを高くする
・動く箱の上に乗っている足先は、箱のローカル座標で保持して一緒に動かす
■ 4. 足場の探索(3本のレイを順に試す)
① 脚の付け根→目標点(少し延長):壁に当たれば凹角の足場
② 目標点の上方から胴体の下方向へ:通常の地面
③ 縁の下から胴体側へ水平に:凸角の裏側の面
どれも当たらなければ、足先を付け根の下にたたむ。
■ 5. 胴体
・上方向=支持面の法線35%+足先平面の法線65%。足先平面の法線は、足先を胴体の周りに輪状に並べ、Newell法で求める
・位置は「アンカー+法線×体高」と「足先の重心+足先平面の法線×体高」を35:65でブレンドし、臨界減衰に近いバネで追従させる(足先だけで決めると、胴体は脚待ち・脚は胴体待ちのデッドロックになる)
・着地のたびに、高さ方向のバネへ下向きのインパルスを加える(やや減衰不足にして、ぷるっと沈ませる)
・離地直前の脚と反対側、つまり支持脚側へ重心を寄せる(最大5cm)
・慣性で傾ける:加速時は後ろ、減速時は前、旋回時は外側
・頭・頭胸部・腹部に球を置き、毎フレーム地形との重なりを法線方向へ押し出す
■ 6. 脚のIKと二次運動
・基節(水平に外向き)→腿節・脛節の2ボーンIK(膝は上外側へ)→跗節。跗節は足首から足先へ、上・外・接地面の法線を合わせた方向に垂らす
・腹部、触肢、眉のような毛束は Verlet のバネ鎖で動かす。加減速に遅れてついてきて、着地で揺れる
――――――――――
ポイントは「頭ではなく前脚が先に新しい面に触れる」こと。ここを守るだけで、一気に生き物らしくなります。
Container-Z retweeted
I’ve always liked building projects as a whole world, not just a set of separate pieces. Identity, website, visuals, objects, all showing how the brand can actually live.
Seeing all of it come together is probably my favorite part 🩶
Container-Z retweeted
Play your way with over 100 different units and buildings at launch! Customize them even further with unit variants and weapon configurations.
Container-Z retweeted
Curious how the vgpu hero works?
🔍 Add ?debug to the URL to inspect the render pipeline
🎛️ Use the controls to tweak values in real time.
📝 Full article coming soon.
Container-Z retweeted
Superposed Load Gun, used for point defense by the Tosnan Fleet. The infernal machine can reach a fire rate of a million rpm, and has remained in service even after several catastrophic misfires
(fingers crossed twitter compression won't screw me)
Container-Z retweeted
Ophidian - EAT
Designed a set of promotional visuals for the new song 'EAT' by composer Ophidian, featured in my close friend SmileDemon's new album













































