数値は指定せず「ぎこちない」と伝えるだけ ──Codexでスタックチャンをスムーズに動かす方法
「作りたい!」を形にする個人開発。AIと叶える「あなただけのスタックチャン」開発入門 第3回
「テストが通った」の先で、人間が確かめるべきこと
調整を重ねて好みの動きに近づいても、あとから別の機能を変更したときに、その動きが崩れてしまうと困ります。そこで、Codexに自動テストも用意してもらいました。
今回の調整で決めた条件が保たれているかを確認できるように、自動テストを用意してください。
実機のモーターやLED、スピーカーへ指示を送る処理を、送るはずだった指示の内容を記録する処理へ差し替えてテストします。 PC上でテスト用の時計を進め、どのタイミングでどのような角度、LED、音の指示が出るのかを調べられるようにしました。
この方法なら、実際にモーターを動かさなくても、調整した内容をプログラムで確かめられます。
例えば、滑らかさを調整した部分では、終点へ近づくほど指示する角度の変化が小さくなることを検査します。左右の端では上向き25度、中央では正面を向くという、左右と上下の角度の対応も確かめます。速いテンポへの対応では、拍に合わせたタイミングで首やLED、音への指示が出ているかを調べます。メロディーについても、同じ和音が再び現れたときに、同じ4音の並びを繰り返すことを確かめます。
Codexから「テストが通った」という報告を受けたら、こうした調整内容が実際に検査の対象になっているか、テストの内容を説明してもらうとよいでしょう。
また、ダンスの終了時に、首を中央へ戻し、通常の表情、LEDの消灯、音の停止を指示することもテストの対象にしています。ただし、自動テストが通ることと、実機のモーターやLEDが指示どおりに動いたことは、分けて確認する必要があります。実際に首が中央へ戻ったか、動作中に異音や発熱がないかは、実機を見て確認します。そして、その動きや音が自分の好みに合っているかを判断するのも、実際に見聞きする人間の役割です。
頭なでや手拍子を扱う処理と、ダンスを呼び出す基本の構成は、stackchan-danceのcodezine-article03-v2タグで確認できます。手元でコードを追う際は、同梱の実装説明も参照してください。先ほど説明したように、ダンスを実行する処理はテンポと時間を受け取れる形にしているので、第5回では会話からもこの処理を呼び出す予定です。
まとめ
今回は、頭なででモードを切り替え、手拍子で踊るところまでを、まず最小限の形でひととおり実装してもらいました。そのうえで実際に遊び、「首の動きがぎこちない」「拍手が届いているか分からない」といった感想を伝えながら、好みの動きや反応に近づけています。最初から細かな振り付けを決めきらなくても、一連の動作を試せるものがあれば、どこをどう変えたいかを具体的に考えられます。
こうして、動くものを試しながら改良を重ねる進め方は、反復型開発にあたり、動くソフトウェアと変化への対応を重視するアジャイル開発にも通じます。
私自身、業務でも、AIの支援によって試作や修正のコードを書く手間が大きく減り、まず動くものを作ってから、使い勝手を確かめながら調整する進め方を取りやすくなったと感じています。
一方で、AIに実装を任せたまま「動いたからよし」で終えてしまうと、なぜそのように動くのかを理解する機会がなく、知識が身につかないまま先へ進んでしまいがちです。試作や修正を速く進められるようになっても、自分が何を作っているのかを理解する姿勢は大切にしたいと思っています。
そこで役に立つのが、先に作ってもらったものをもとに、あとから実装の仕組みを説明してもらう方法です。今回も、実際の首の動きと説明を照らし合わせることで、角度を伝える頻度が滑らかさにどう関わるのかを理解できました。動くものが手元にあれば、説明を聞きながらコードや動作を確かめ、さらに気になったことを質問できます。私も、こうしたやりとりを日常的に行い、試作を進めながら自分の理解も深めるようにしています。
次回はLLMへ接続し、スタックチャンと会話できるようにしていきます。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- 「作りたい!」を形にする個人開発。AIと叶える「あなただけのスタックチャン」開発入門連載記事一覧
-
- 数値は指定せず「ぎこちない」と伝えるだけ ──Codexでスタックチャンをスムーズに動かす...
- バイブコーディングで始める組み込み開発 ──Codexで動かすスタックチャン(環境構築&L...
- Web設計思想で動かす「スタックチャン」──生成AIと組み立てるMVPモジュール設計
- この記事の著者
-
石川 真也/ししかわ(シンヤ イシカワ/シシカワ)
秋葉原のロボットスタートアップ企業で働くWebエンジニア。個人ではオープンソースのコミュニケーションロボット「スタックチャン」を企画・開発し、ハード・ソフト・デザインを横断した“誰でも作れて改造できるロボット”の世界観を発信している。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
