機械式時計をUnityで再現した
先日動画を公開しました。
シンプル目な機械式時計の内部にある、歯車と針の動きを再現しました。
歯車の動きの連鎖と、歯車の形の3Dモデルを自分で開発しました。
よかったら上記の動画の方も確認してみてください。
また、Webでも実際に触れるようになっていますので、
よかったら下記のリンクから試してみてください!
http://shogonir.jp/mandelbrot-map/
このブログでは開発の過程を紹介したいと思います。
開発日記
開発期間は約1ヶ月半でした。
2018年1月11日にプロジェクトを作成しました。
2018年2月26日に公開してTwitterで告知しました。
2018年1月11日
GitHubにベースプロジェクトをpushしました。
2018年1月14日
Unityで立方体のオブジェクトを使って歯車の連結を実装しました。
機械式時計っぽくなってきた pic.twitter.com/P77OzQ5jHT
— shogonir (@shogonir) 2018年1月14日
おお、時計だ。 pic.twitter.com/tz33fmlUAz
— shogonir (@shogonir) 2018年1月14日
色つけたり針の太さと長さ調整してみた。そして100倍ぐらいの速さで動かしている。 #unity pic.twitter.com/ca2bCLs6Ey
— shogonir (@shogonir) 2018年1月14日
2018年1月15日
歯車の形の3Dモデルの作成を開始しました。
Pythonのスクリプトでobjファイルを出力できるように作りました。
この時点で半径や歯数をパラメータで指定できるようになっています。
この日の時点では、まだ片方の面だけ平面で形状を作成しただけでした。
歯車ポリゴンの天面?できた pic.twitter.com/Uw1OVUr1oc
— shogonir (@shogonir) 2018年1月15日
歯数を二倍にするのも一瞬でできます。 pic.twitter.com/apfDaduyfV
— shogonir (@shogonir) 2018年1月15日
歯数8以下にすると歯車に見えなくなってきます。 pic.twitter.com/8QttpomBv2
— shogonir (@shogonir) 2018年1月15日
内径?をいじればいい感じになるか。よし、風呂。 pic.twitter.com/nVtRU52NDz
— shogonir (@shogonir) 2018年1月15日
2018年1月16日
歯車の3Dモデルが完成しました。
天面だけ既にできていたので、底面と側面を実装しました。
歯車の側面と、内側の壁?もOK。あとは底面か。 pic.twitter.com/JnIbChB4KS
— shogonir (@shogonir) 2018年1月15日
歯車完成 pic.twitter.com/fb8mXZOVXR
— shogonir (@shogonir) 2018年1月15日
歯車の3Dモデルを作成するスクリプトはこちらにあります。
2018年1月21日
それぞれの歯車の半径や位置を計算して、見た目上も歯車が噛み合うようにしました。
そして、計算した半径や位置でUnity上に歯車を配置しました。
この日でほとんど完成しちゃってますね。
歯車の半径と中心を計算した。 pic.twitter.com/a6thRwZkJL
— shogonir (@shogonir) 2018年1月20日
急にそれっぽい感じがすごくなってきた。 pic.twitter.com/DT9VGee9G7
— shogonir (@shogonir) 2018年1月21日
40倍速でこんな感じ pic.twitter.com/2G4LFfYpxO
— shogonir (@shogonir) 2018年1月21日
歯車の半径と位置を計算するスクリプトはこちらです。
2018年2月26日
微調整して公開しました。
せっかく公開したので再掲
— shogonir (@shogonir) 2018年2月26日
【Unity】機械式時計の仕組みを再現しましたhttps://t.co/yLZwjIMU3X
キーボードのキーでカメラを操作できます。
W, A, S, D, Arrow, Shift, Space でカメラが動きます。#unity #watch #mechanicalwatch #gear #csharp pic.twitter.com/2CNAvjvoID
作成してみて
以上が開発日記でした。
あまり大した作品ではないのですが、こうやって今も残っているのを見てみると作ってよかったなと思います。
本当は腕時計のケースなんかも作って、動かしたり透明度を変えられるようにしたかったのですが、それはまた別の機会で。
読んでいただいてありがとうございました。