真夏のアイススケート!!! in Unity
真夏のアイススケート!!! in Unity
この記事は「Unity アセット真夏のアドベントカレンダー 2018 Summer! 」 の18日目の記事になります。
暑いならスケートリンクにいこう
今年は記録的な猛暑で、暑さにやられてしまった人も多いかと思います。 そんな時、冷房がガンガンに効いたアイススケート場にいくのもありかと思います。 今回のアドカレではUnityちゃんこと大鳥こはくちゃんにテーマソングのUnite In The Skyでフィギュアスケートを滑ってもらいました。
- 使用したUnity
- Unity Version 2018.2.0f2
- 使用したアセット
- モーション
- Perception Neuron 1.0のモーションキャプチャを利用(振り付けも踊りも後輩にやってもらった)
シーン上にIceHockeyStadiumとUnityちゃんを配置
アイススケートリンクのアセットはいくつかありましたが、その中で一番手ごろなものを選びました。
観客席や天井が作りこまれていていい感じです
とりあえず、制服ユニティちゃんに氷の上に立ってもらいました。ここから最初の動画を作るための設定をしていきます。
StadiumとScoreboardの影を消す
天井の柱の影が落ちてしまっているので、StadiumとScoreboardの[Mesh Senderer]-[Ligeting Cast Shadows]をOffにします。
いい感じにライトを設定します
そのままだと、顔が暗くなってしまうので適切にライトを設定します。 とりあえず、天井から真上と横4方向からのDirectional Lightを合計5個作りました。
Rotationは 真上(91,1,1) 横1(20,0,0) 横2(20,90,0) 横3(20,180,0) 横4(20,270,0) と設定しました。 Intensityは0.25にしました。
このあたりもっとうまい方法があるような気がするのですが、アドバイスありましたらよろしくお願いします。
設定前
設定後
だいぶ、顔が見えるようになりました、氷上だともっと化粧が濃い方がいいのですが、私にはUnityちゃんに化粧してもらう技術がないためそのまま進みます。
ProBuilderで関係ない器材を消す
今回はフィギュアスケートなのでホッケー関係の器材を消していきます。 もともとホッケースタジアムということもあり、メッシュにそのままついていますが、今回は関係ないので消していきます。消すのはゴールと氷に書かれたライン、保護用の透明な壁です。
Unity 2018からUnityに統合されたアセットのProBuilderをつかってメッシュを改変していきます。
ProBuilderのインストール
[Window]-[Package Mnager]を開いてProBuilderをインストール
実際に消していく
IceHockeyStadiumのPitchを選択した状態で[Tools]-[ProBuilder]-[Object]-[Pro Builderize]すると、Pb_Objectがアタッチされます。
Open ProBuilderを押してエディットモードを開きます。
開いた後、画面上の四角のシンボルが書かれたボタン(Face Selection)を押します。
適当な面を選んでProBuilderウインドウのSelect Face Ring やSelect Face Loopやを押すと選択範囲が広がります。全体が選ばれた状態になったらDelete Facesを押して消していきます。
消去前
消去後
綺麗になりました。
靴を履かせる
氷上に普通の靴で歩くのは滑って危ないので、スケート靴を履いてもらいます。
アッセトストアにはホッケー用の靴しかなかったので、とりあえずこれを履いてもらいました。
モデリングはまだよくわからないので、Unityちゃんのfoot下にプレハブをアタッチしました。
アニメーションの編集をする
Perception Neuronを触らしてもらう機会があったのですが、そのときにモーションを取っていたのでこれを使います。
Perception Neuronからエクスポートした直後だとfbxファイルのRigがGeneralなのでHumanoidに変更後Applyします。
開始時間は終了時刻はfbxファイルのインスペクターのAnimationタブで編集できます。
新しくanimatorを作ってStateにモーションを付けたあと、Unityちゃんにアタッチします。
途中結果
Curvy Splineでスケートっぽく平行移動させる
アイススケートは踊りながら移動していく競技なので、普通に陸上でモーションキャプチャしたものでは移動量が足りないです。
移動経路の設定は今回は手動でやるのですが、これを簡単に設定できるソフトのCurvy Splinesを利用しました。
アセットをインポートすると画面上にボタンが表示されます(Preferenceで消せる)
Draw Splineを押した後、Ctl+左クリックで制御点を作っていきます。 するとオブジェクトとしてCurvy Splineが生成されます。 これを適宜動かしてカーブを作ります。
作り終えたら、UnityちゃんにSpline Controllerをアタッチし、[General]-[Spline]に先ほどのCurvy Splineをドラッグ&ドロップします。 とりあえず、動かしたければMoveのところを設定すれば、このカーブに沿って動いてくれます。
今回はこれだけですが、Eventなどでも制御できそうで使いでは良さそうです。
音楽を付けて完成!
Audio Clipをアタッチして曲を付けたものがこちらです。
今後
今回、出来合いのモーションを使ってそれらしい動画を作ることが出来ました。
今後は、IKなども組み合わせて、Unityちゃんの目線や腕を調整してもっとプレゼンスを高められたと思います。 本来は観客アピールなんかも考えるべきなので、そのあたりモーションキャプチャの後でも調整できるようにしたいと思います。
また、ステップの種類が少なかったりエッジの向きと移動が微妙にあっていなかったりで、Unityちゃんが下手に見えてしまっているので、何とかしたいと思います。
あと、衣装なんかの揺れものはスケート自体の移動量が大きい分良く映えると思います。 現実にはありえないエフェクトなんかも入れられそうです。 この記事を見て何かを作るのに特に制限はないので、これはというのがあればじゃんじゃん作っていってください。 大好物です。