クロの制作日記

マリオパーティのサイコロを振るシステムをUnityで再現

はじめに

ちょっとマリオパーティのような双六ゲームを作ってみたくなったので、まずはサイコロを振るというシステムを作ってみました。

参考に(というかまねた)したのはこのシリーズです
www.youtube.com
この動画の0:07~0:09あたりのサイコロを振って、目を出すといったシステムをとりあえず作っていきます




サイコロのモデル

 サイコロのモデルも最初からBlenderとかMayaで作ってみようかと思ったのですが、忙しかった(というか面倒だった)ので下記の無料のAssetを使いました。
assetstore.unity.com

もしサイコロを作りたいという人はここを参照したらよきかと思います
blender-cg.net

Unityで確認するとこんな感じ
f:id:kurora-shumpei:20180209171330p:plain

次は実際にスクリプトでサイコロを回転させていきます

サイコロを振る

今回の場合は振るというよりは回すと言った方が良いかもしれません
流れとしては、
Dキーを押す→サイコロが回転→エンターキーを押す→数字が表示される
みたいな感じです。
数字はBlenderでテキストから3Dモデルにしました。
実際に作ってみたのがこれです
f:id:kurora-shumpei:20180209182953g:plain

元のマリオパーティのサイコロと比べると何か物足りない....。
そう思って動画を何回も見返した結果、エフェクトが足りないということに気づきました。
ということで、Unityの機能のパーティクルを使って、数字が表示されるときに煙をだしてそれっぽくしてみましょう。
参考にしたのはここのブログです。
hajimete-program.com
そして出来上がったのがこちら
f:id:kurora-shumpei:20180209183813g:plain

スクリプト

以下がそれらのスクリプトになります。

リポジトリにスター付けてくれたら歓喜に酔いしれます。

Diceクラス
github.com
SmokePosクラス
github.com



上のDiceクラスがダイスを回転させてから数字を表示させるためのスクリプトで、下のSmokePosクラスがパーティクルを座標を調整させるスクリプトです

細かい処理とか機能の説明は大分はしょったりしたので、頑張ってスクリプトのコメントとかを読んで理解してください。

(数字を表示するときに数字が大きくなってから元の大きさに戻るみたいなアニメーションがあればもうちょいそれっぽくなる気がする)