こんにちは。開発担当のマットです。
Sploutでは、ライトニングトーク大会を定期的にやっております。
メンバー全員が順番に5分間のトークをして、とても楽しい時間です。
ライトニングトーク大会をするには、発表順を決める必要があります。
今までは順番を決めるのにあみだくじを使ったりしていましたが、折角システム開発会社なので、順番を決めてくれる抽選プログラムを作ってみようと思いました。
一番簡単な方法はブラウザでJavaScriptを実行させるだけです。
Google Chromeを開き、右クリックして、「検証」>「コンソール」を押して、以下のスクリプトを貼り付けてEnterキーを押すと一瞬で順番を決めることができます。
超簡単ですが、面白くはないです。
Unityで面白いものを作ろう!
最近、Unityを学習しています。Unityは3Dゲームエンジンです(wikipedia) 。
これを使えば、何か面白い抽選プログラムを作れるではないかと!
考えついたのは「競馬」。
まずはプロジェクト開始。
とりあえず「Kuji」と名付けました。
プロジェクトに地面(Terrain)を入れる。
新規なUnityプロジェクトだと、カメラと照明しかないので、馬が走る地面をシーンの中に挿入する必要があります。
挿入して草のテキスチャーで塗りました。
次は馬の作成。
形を作る前に馬を象徴するゲームオブジェクトを作成します。
次はそのゲームオブジェクトの中に、複数のキューブで馬の形をなんとなく作り上げます。
色付けしましょう!
Unityでオブジェクトを色塗るには、Materialを作成すべきです。
Materialは「素材」という意味で、「色」だけではなく、「光沢」に関する色々な設定ができます。
とりあえず、2つのMaterialを作成し、馬の該当箇所に設定をしました。
片方はツヤ無しの馬毛。
他方はちょっとツヤ有りの鞍。
馬を走らせましょう!
Unityのアニメーション・システムで馬を走らせる動きを作るのは簡単です。
競馬場がないと・・・
簡単に壁と決勝線を地面の上に作りました。
馬もコピペして、サイズを調整。
馬にラベルを付ける。
誰がどの馬かわかりませんので、馬の上に名前ラベルを追加しました。
馬に個性を付ける。
次はスクリプトを作成して、馬のゲームオブジェクトに付属させました。
このスクリプトで、馬に付属しているMaterialの色やラベルの表記を設定できます。
これによって、馬をカスタマイズできるようになりました。
馬を並べましょう!
上記と同様に、馬のコピペだけでできました。
それぞれの馬の名前と色を設定します。
*この画像は数字を使っていますが、実際の抽選の時は参加するメンバーの名前を入れました。
最後の最後に「レース」のスクリプトを作成!
最後にとても簡単なレースのスクリプトを作成しました。
「Spaceキー」を押すと馬達が走り出します。
UnityのUpdateファンクションで、毎フレーム、それぞれの馬をちょっとずつ前に進める。しかし、毎フレーム進める距離はある範囲以内のランダム値です。それで、それぞれの馬の進み具合に差が発生します。
なお、決勝線にたどり着くと、走り止んで、その馬のラベルに書いてある名前が一覧に表示される。これで発表順を決めることができます!
まとめ
まだ学習中ですが、Unityで簡単にできることに驚きました。
上記の抽選プログラムの総合開発時間は2時間だけでしたのに、アニメーションを対応した3Dプログラムを一から作ることができました。
とても、有力なツールです!
これからも、色々面白いプログラムを開発してみたいと思います!