【動画に歴史あり】 40, 初音ミクのねぎ回しを実際につくってみた、を進化させてみた2
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

【動画に歴史あり】 40, 初音ミクのねぎ回しを実際につくってみた、を進化させてみた2

2013-10-26 16:21

    「初音ミクのねぎ回しを実際につくってみた」が意外と好評だったのでその続編。
    この頃は色々な人が「初音ミク実体化計画」というタグの元、工作で初音ミクを表現するようになってきていて「ニコニコ技術部」というタグが出始める頃になります。

    マスタースレーブシステム

    以前書いた様にマイコンでサーボをコントロールしたのは「初音ミクのねぎ回しを実際につくってみた」が始めてでした。もっとも、マイコンでステッピングモーターコントロールをやったことがあるので、動作制御がまるっきり初めてというわけではなかったのですがそれでも自分で作ったものが「動く」というのは楽しくて嬉しい物でした。

    さてマイコンでサーボモーターの動きをコントロールできるといっても、プログラム通りに動作するのでは今ひとつ面白みがありません。
    機械制御の方法のひとつとして「マスタースレーブシステム」というのがあります。
    マスターとなるコンピューターがスレーブとなるコンピューターを制御するというものですが、ロボティクスではコントローラーを操作すると他方がそれに応じて動作するといった遠隔操作的なものを指すようです。(このへん門外漢なのでおかしかったらごめん)
    ROBO-ONEの初期に活躍した「マジンガア」という目立つロボットがいたのですが、それを筆頭に初期は幾つかマスタースレーブシステムで動作するロボットがいました。
    これらはロボット操作の一部がマスタースレーブシステムに切り替えられる様になっていて、操縦者が腕を振るとロボットも同じようにアクションしていました。
    実際にマスタースレーブシステムが ROBO-ONE で強かったのかというとそんなことはないっぽいのですが、ロマンです。とにかく浪漫です。カッコイイと思うものです。

    なので、その浪漫の延長としてサーボでネギを振るミクを自分の手で操作してみたいと思ったわけです。
    そんな風に思っていたところ、akira_you氏が「初音ミク 実体化への道3」でそれっぽいことをやってきます。圧電素子をセンサーとして、1トリガーでぴょこんと一回腕を振る仕組み。

    面白そうでやってみたくなったのですが、この方式だとあくまでトリガーであって腕の動きを再現というわけじゃないので今ひとつ物足りません。そこで、もうちょっとマスタースレーブっぽいシステムにしてみることにしました。

    製作記録

    この頃はWiiの発売後だったので、姿勢制御センサーが花盛りな頃でした。
    私はそれにちょい先駆けて加速度センサーをマイコンで読み取って遊んでいましたので技術要素は理解しています。
    今回ネギを振らせるために自前で加速度センサーを利用しても良かったのですが、この頃 Wii リモコンをPCで利用するというのが流行っていたのでそれにのっかってみました。ニコニコ的にもWiiリモコンの方がわかりやすいビジュアルになるでしょうし。

    Wiiリモコンは Bluetooth デバイスとして普通に HID(ヒューマンインタフェースデバイス)として接続できます。HIDはUSB/Bluetooth ともに Windows の標準ドライバがあってカーネルドライバを用意しなくてよいためアマチュアが利用できる可能性のあるデバイスです。
    キーボードやマウスといった HID はもう一段特別なドライバーなのですが、汎用HIDドライバーは繋がるとポートが用意されるだけで、デバイスドライバーを open() しないと利用できません。open してしまえばシンプルに read/write するストリームデバイスになるのですが。
    実際に接続されている HID デバイスから目的となるデバイス名を探して open() するためには、Windows のドライバー開発キットが必要となります。カーネルモードでない、ユーザーモードなのですがそれでも必要だったあたり腑に落ちないのですがそういうものです。
    で、Windows のドライバー開発キット(DDKといいます)は無料で公開されていたときがあったのですが、この動画を作った2007年あたりでは突然(有料の) MSDN でしか利用できなくなってしまったという状況でした。
    # 最近はWDKという名前でまた無料入手はできるようになったのですが

    HID をオープンするドライバをどうするべかなと思いましたが、この頃 Wii リモコンは存分に解析されていたので特に情報に困っているというわけではありません。
    結果として kako さんの小ネタpage にある「WiiリモコンをPCで使うサンプルソフトを作ってみる」(http://www.kako.com/neta/2006-019/2006-019.html) から tiny_hid_dll を借用することにしました。
    これを C++ builder で利用できるようにして、無事 Wiiリモコンの取り込みができるようになりました。
    後は取得したデータから適当に角度算出して、OpenGL で角度確認用の画面を作る程度です。

    制御するマイコン側も改造する必要があります、PCとの接続としてシリアル(RS-232C)を利用して、データを受け取りとそのデータに応じたサーボ制御を作ります。
    まあ、PCからマイコンを制御した経験があれば特筆する事も無い箇所であります。

    こうして Wiiリモコンの角度に合わせて腕を振る初音ミクができあがりました。
    リモコンの角度で腕を振りますが、実は捻りで首を振っています。動画の中で首がかくかくしているのはそのせいなのですが、そういった不規則な挙動が動画内にあった方が見ていて安心するものなのです。

    そしてやっつけソング

    「初音ミク動画」であるためにはオリジナル初音ミクソングが必要だ、という妙なポリシーはまだもっていたのでやっつけで曲を作っています。
    これについてはあんまり語るところもないな。
    この頃はもう完全に「初音ミク=ネギ娘」になっていますね。だいたいロイツマのせい。

    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。