カイワレスタイル

ゲーム、アニメ、プログラム、興味のあることをツラツラと。

Windows10環境でRe:VIEWの執筆環境を構築する方法

10月22日に技術書典3が開催されます。
自分、今回初めて出展します(というか同人誌即売会サークル参加自体初)

サークルのサイトはこちら

主にUnityを使用したグラフィックスプログラミング関連の本になる予定です。
Unityはゲームエンジン故に、Unity関連の技術書を見てもゲームの作り方的な所を解説している物がほとんどで、グラフィックス周りの解説をしている本は殆ど見たことがありません。
そこで、グラフィックス周りを重点的に書いたUnity本があっても良いのではないか?という疑問から今回書いてみることになりました。

さて、技術同人誌を書くにあたり執筆環境を用意する必要があります。
最近は、Re:VIEWというPDFやEPUB等色々な形式で書き出せる便利なツールがあるので、これを使うことになりました。

github.com

しかし、このRe:VIEW、Mac環境では簡単に構築できるらしいのですが、Windows環境の場合、以前はCygwinを入れたり、非常に面倒くさかったらしいです。
それでも、今回、ComputeShaderやHLSLを使ったグラフィックスプログラミングの解説をするため、Windows環境のほうでなんとかRe:VIEWの執筆環境を構築してみました。
なお、この構築方法は、Windows 10のCreators Update適応後の環境について説明しています。

続きを読む

アカとブルー配信開始!

8月10日に、株式会社タノシマスからiOS/Androidシューティングゲーム「アカとブルー」が配信されました。
tanoshimasu.com

パッと見弾幕で難しそうに見えますが、

  • 割りと頻繁に撃てるBOMB(弾消し貫通弾)で弾幕を切り裂いて意外となんとかなる
  • 画面を埋め尽くすほどアイテムがジャラジャラ出てそれだけで爽快
  • 終始フルボイスで交わされる熱い掛け合い(それでいてプレイの邪魔にならない)
  • 設定でオートボム有り
  • コンティニューは無いけどステージごとに選択して始められる
  • 主人公(50歳)の声はデレマスで有名な武内駿輔さん(19歳)

と、シューティングはちょっと苦手な人でも楽しめる感じになってます。

色んな意味で男の血と汗と涙と魂の結晶みたいなゲームになってますので、興味が出た方は是非!

続きを読む

スティックPCを省スペースな展示用動画再生機にする方法

11月13日のデジゲー博2016で、知人の会社の出展のお手伝いで動画再生環境の設営をした。

お手伝いした「株式会社タノシマス」のスマホシューティングゲーム「アカとブルー」
tanoshimasu.com

とそのPV
https://youtu.be/o83B-dm5JA8youtu.be

当日は割とひっきりなしに体験版をプレイしてる人がいたようで、盛り上がった模様。

現地では、上のPV動画の再生用にスティックPCを使った。 その際、設営がなるべく楽になるように色々工夫をしたので、備忘録的な意味を込めてまとめることにする。

続きを読む

自作全方向移動型ラジコン戦車完成までの記録 ~PWM制御系編~

自作全方向移動型ラジコン戦車完成までの記録の4回目。
今回はデジタル回路で出力電圧の調整を行うのによく使うPWM制御について書く。

前回はこちら

kaiware007.hatenablog.jp

PWMとは

詳しくは知らないが、PWMとは、Pulse Width Modulationの略で、その名の通りパルスの幅を調整して擬似的に電圧を調整する方法。
一定時間内に電圧オンの状態と電圧オフを切り替えて、そのオンオフの割合で電圧の高さを擬似的に変える。
時間あたりの平均で見るとオンが70%だったら元の出力の70%程度になるみたいなイメージ。

ウィーヴィルは、脚の三輪をPWM制御しているが、他にも砲塔や前照灯二つと尾灯二つのLEDの制御でもPWMを使用している。
これだけの部品のPWM制御を全てラズパイだけでやらせるのは無理(PWM制御できるGPIOが足りない)なので、下記の16chPWM制御可能なボードを使用した。

www.switch-science.com

このボードをラズパイと繋いでI2Cで通信して制御した。
そんでもってボードは下記のライブラリで制御した。

github.com

砲塔と各部LEDの制御

過去の日記でサーボとLEDの実装と制御について書いていたのでそちらを参照。

kaiware007.hatenablog.jp

kaiware007.hatenablog.jp

日記に書いてなかった問題点として、ゆっくり明滅させる等、常時PWM制御する処理を行うとボードが処理落ち(?)してサーボの動作速度が低下する。
LED制御は別のArduino基板とかに任せるようにできればよかったかもしれないが、前照灯のLEDがRGB三色を個別のLEDで表現しているため、LEDだけで前照灯(Rx2,Gx2,Bx2)、尾灯(Bx2)の計8ピンも必要になってしまい、ArduinoUnoではちょっと足りないっぽい。
Dueとかならいけたんだろうか?

過去の日記の日付が半年くらいまえで自分でも驚いている。
MFTの少し前に撮った動画はこちら。

電飾系の動作確認

砲塔の可動確認

ボードとラズパイの接続時の失敗

本番の数日前までしっかりLEDやサーボが動いていたのに、ある日突然まともに動かなくなって非常に焦った。
原因は、PCA9685ボードとラズパイの接触不良という単純なミスだった。
PCA9685ボードとラズパイには、フラットケーブル(またはリボンケーブル)を使用した。
フラットケーブルは、数本のケーブルを横に並べてくっつけてきしめんみたいにしたやつ。

www.marutsu.co.jp

今回初めて使ったが、1つの芯が複数の細い先を束ねているタイプの線だったため、ハンダ付けしても外力で線が少しづつちぎれて非常に接触不良が起きやすくなってしまった。
この手のケーブルは、コネクタでつなぐようにしたほうが良かったのだろうか?
一応ボードをつなぐ方はコネクタをつけたが、付け方が悪かったのかGND側が断線してしまった。
補強としてホットボンドを端子と線の周りにたっぷり塗りたくって固めた。 そもそもちゃんとボードを固定しておけば余計な力が加わることは無かったと思う。
今回外装はしっかりデザインしたが、中身は収まればいいや的な感じで固定とか全く考えていなかった。
次に何か作るときは内部の基板の固定などもちゃんと考えて設計したい。

過去記事

kaiware007.hatenablog.jp

kaiware007.hatenablog.jp

kaiware007.hatenablog.jp

自作全方向移動型ラジコン戦車完成までの記録 ~脚部駆動系編~

自作全方向移動型ラジコン戦車完成までの記録、3回目は脚部駆動系について。
全方向移動を実現するために欠かせないモータと、MFTでも知ってる人と知らない人の温度差が激しかったオムニホイールについて書く。
オムニホイールの説明は前回書いたので今回は書かない。

前回はこちら

kaiware007.hatenablog.jp

脚部のモーター、オムニホイールについて

全方向移動を実現するために、ギヤードモータとオムニホイールを使用している。
当初は、タミヤのハイパワーギヤーボックスHEと38mm径のオムニホイールを使用していたが、最終的にダイセンのロボサイトギヤモーター(1:60)と同じくダイセンのオムニホイール40mm径に変えた。

ハイパワーギヤーボックスHE

www.vstone.co.jp

www.vstone.co.jp

変えた理由は、組み立て時の問題だと思うが、ハイパワーギヤーボックスHEの回転速度の差が激しすぎてまっすぐ走れなかった為。
あるギアーボックスは、手で回すと空転するほどなめらかに回るのに、もう一方は硬くて回すのに力がいる感じ。
こちらがその当時の脚部の写真。

f:id:kaiware007:20160817005935p:plain

ギヤーボックスを板で挟み込む形でネジ止めしている。
コレのせいでゆがんでしまったのではないかと考えているが、結局原因は不明。
組み立て時にすでに歪んでいたかもしれない。

その点、ロボサイトギアモーターとオムニホイール40径は専用車軸セットで簡単に接続出来て個体差も生まれにくい。
下手にケチらずに最初からこっちを買えばよかった。
しかし、モーターとオムニホイールのサイズが変わった為、脚の内部のフレームを再設計することになってしまった。
再設計後の写真はこちら。

自作戦車組み立て中②

オムニホイールとモーターが大きくなったため、脚部の先端にオムニホイールが収まらず、内側にオムニホイールを配置する形になった。
このため、旋回時のトルクが落ちたが、脚と本体の接続部のゆるさからカカトが地面に擦れやすかった問題が解決されたのは怪我の功名。

モータードライバー回路

全方向移動を実現するためには、モーターの回転方向や回転速度を動的に切り替えられる必要がある。
今回はモーター制御にTA7291を使用した。

akizukidenshi.com

ラズパイのGPIOでTA7291を制御し、モーターの回転方向を切り替えられるようにした。
また、ラズパイからのPWM制御で回転速度も調整できるようにした。
モーターへの電力供給は、ラズパイのGPIOからではとても足りないので、単3電池4本で別途供給するようにしている。
三輪なのでモータードライバーも3つ必要になり、ユニバーサル基板に簡単な回路を設計した。

f:id:kaiware007:20160817010441p:plain

しかし汚い…。
ちなみに基板左側のコンデンサトランジスタは砲塔のミサイル発射ギミック用のミニモーターの回路。
この回路にさらに、I2C制御基板へのケーブルも追加されるのだが、ケーブルの選定をミスってかなり接触不良に悩まされる事になる。
それはまた次の話。

過去記事

kaiware007.hatenablog.jp

kaiware007.hatenablog.jp

自作全方向移動型ラジコン戦車完成までの記録 ~外装編~

自作全方向移動型ラジコン戦車完成までの記録、2回目は外装について。
今回は趣味丸出しのデザインと、3Dプリンタ造形物の表面処理のノウハウについて書く。

ちなみに1回目はこちら

kaiware007.hatenablog.jp

続きを読む

自作全方向移動型ラジコン戦車完成までの記録 ~動機編~

Maker Faire Tokyo 2016に「自作全方向移動型ラジコン戦車『ウィーヴィル』」を出展した。

www.nicovideo.jp

www.youtube.com

なんだかんだで完成するまで1年ほど掛かってしまったので、その記録を何回かの記事にして残すことにした。
今回は、作るきっかけについて書く。
よって技術的な話はほとんど出てこないと思う。

続きを読む