テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

アニメーション

【Unity】Animator Parameterというウィンドウ

何の役に立つのかよく分からんシリーズ 紹介する為に色々調べてみたけど、結局用途や使い道がよく分からん…という事でお蔵入りしてた項目も少しずつ紹介していこうと思います。 Animator Parameterというウィンドウ Animator Parameterウィンドウは何の役に…

【Unity】Prefabの”モデルの差し替え”を、セットしたコンポーネントを一々付け直さずに行う方法

今回はModelの更新に関するTipsです。 モデルの差し替えのトラブル オブジェクト構造やコンポーネントを維持しつつモデルを差し替え 実際の流れ コンポーネントの参照先は残らない問題 関連 モデルの差し替えのトラブル ゲーム開発を進める時、最初からモデ…

【Unity】AnimationControllerからTimelineへのアニメーション切替を目立たなくする

今回はTimelineを再生する際に、アニメーションの切替が一瞬で切り替わってしまう問題の対策についてです。 Timelineを使用するとアニメーションが一瞬で切り替わってしまう Timelineの入りと出でフェードする Timelineを使用するとアニメーションが一瞬で切…

【Unity】動作が完結してるアニメーションを分割する

例えばジャンプアニメーション等、AssetStoreから入手したアセットのアニメーションが繋がっている事があります。 そういった時に、アニメーションを分割するアプローチについてです。 繋がっているアニメーション アニメーションを分割する 作業の流れ 関連…

【Unity】AnimationControllerを用意せずAnimatorによるアニメーションを使う

Playable APIを使用してアニメーションをAnimationController無しで制御します。 大量のアニメーションとAnimationController Playable APIとは何ぞや Playable APIでAnimationっぽい事をしたい ソースコード サンプル 問題 関連 大量のアニメーションとAnim…

【Unity】Cubeを跳ねさせる

今回は小ネタというか、やってみたと言うか…豆腐を跳ねさせるという内容です。 Cubeだって跳ねる とりあえず、跳ぶ! カーブを付ける 豆腐はフルフルする 関連 Cubeだって跳ねる ゲームの仮素材ランキングがあるとしたら、多分ブッチギリで人気No1はCubeでし…

【Unity】Playable APIで幾つかの小技

昨日のPlayable APIで書ききれなかった事を少し追記します。 tsubakit1.hateblo.jp 複数のAnimatorに単一のPlayableを流し込む アニメーションの出力先を切り替える Additiveの再生 複数のAnimatorに単一のPlayableを流し込む PlayableGraphにOutputは実は複…

【Unity】アニメーション制御に色々と良さそうな"Playable API"について云々

今回はUnity 2017.1で正式導入となったPlayable APIについてです。 PlayableAPIはAnimatorのLowLevel API(のようなもの) アニメーションのブレンド結果をOutputに出力する AnimatorをPlayable API的に見てみる Playable APIを実際に使ってみる AnimationCl…

【Unity】Timeline × Cinemachine でカットシーンのカメラワークを作る

今回はCinemachine を使用してカメラワークを設定してみます。 Cinemachine TimelineとCinemachineを使ってみる Cinemacine TrackとCinemachine Brainを追加してCameraの設定 Cinemachine vertual cameraはカメラの座標と設定 カメラのブレンドはTimelineで …

【Unity】RootMotionを持たないアニメーションをTimelineで動かす

今回はTimelineで、RootMotionを持たないキャラクターを動かしてみました。 Timelineと移動 Root Motoinで動く前提? Animationで動かす カーブエディタを使いたい 関連 Timelineと移動 Unity 2017より、やっとこさTimeline(カットシーンエディタ)が追加さ…

【Unity】AnimationController間でStateMachineBehaviourのインスタンスを共有するSharedBetweenAnimatorsの挙動

SharedBetweenAnimatorsというAttributeがあります。 簡単に言えば「StateMachineBehaviour」のインスタンスを共有するAPIです。少しだけ動作に疑問があったので確認してみました。 インスタンスを共有するSharedBetweenAnimators パラメータはシェアされる …

【Unity】ステージのギミックをアニメーションで作る際に便利な設定

今回は、現在位置からの相対距離で動くアニメーション設定という小ネタです。この使い方に気づかなかったので色々面倒な事をしていましたが、不要やったんやってお話です。 ステージギミックとアニメーション 初期設定ではAnimationの位置は親オブジェクトか…

【Unity】Timelineに動的に生成したオブジェクトをバインドする

今回はTimelineのデータ情報を流し込む方法についてです。 Timelineは使い回せる イベントに使う事でAnimatorの構造を簡単にする 使い回しTimelineを作る時は編集用シーンを用意するが吉 Timelineはバインドしたオブジェクトを操作する PlaybleDirectorがオ…

【Unity】アニメーションと物理演算を連動させる 5.6以降

以前、アニメーションと物理演算を連動させる方法について紹介しましたが、Unity 5.6でもっとシンプルになりました。 tsubakit1.hateblo.jp Animate Physicsなる機能 Unity 5.6のアップグレードガイドを眺めていると、少し気になる項目がありました。 docs.u…

【Unity】Video Playerでアルファチャンネル付きムービーを使う

アルファチャンネル付きムービー、アルファムービー、透過ムービー、with alpha、αムービー、Aビデオ、呼び方は色々ありますが、背景が透明なムービーについてです。 アルファチャンネル付きムービー 使用出来るコーデック Webmを再生出来ない端末では アル…

【Unity】Statemachinebehaviourの処理の実行順について

Statemachinebehaviourをステートに貼り付けた際、Statemachinebehaviourはどのような順番で呼ばれるのか。 確認してみました。 Statemachinebehaviourを呼ばれる順番 SubStateMachineのStatemachinebehaviour 関連 Statemachinebehaviourを呼ばれる順番 ル…

【Unity】アニメーション中、指定の位置に到達するように位置を補正する

ジャンプやダッシュジャンプを用いて障害物を登るというケースはよく有ります。この高さにアニメーションが一致すれば問題は無いのですが、任意の段差や距離をジャンプしたいといったケースは多々あります。 そういったケースの場合、幾つか解決の手法はあり…

【Unity】知らないと面倒くさい事になるかもしれないAnimatorの「Write Defaults」の動作について

今回はWrite Defaultsについて。 この挙動は少し分かりにくいので、少し補足します。 Write Defaultsという項目 キーが未定義なアニメーションは起動時のパラメータをデフォルト値として使う Write Defaultsという項目 注意点 デフォルト値が保持されるケー…

【Unity】AnimationControllerのAnyStateを使用してる際、現在のStateへ何度も移動しないようにする

今回は小さなTipsです。 例えば上のように「どれか一つのUI状態を持つ」UIをAnimationControllerで管理し、かつAnyStateから呼び出すように作成した際、Triggerを叩くと何度もUI表示アニメーションが再生されてしまうといった事があります。 AnyStateの先へ…

【Unity】着地モーションをキャンセルして即座に走り出す

今回は着地モーションをキャンセルする方法についてです。この方法は実際には色々と手があるので、その一つです。 着地モーションと着地モーションキャンセル 着地モーションのキャンセル 着地モーション自体のスキップ ちなみに、 関連 着地モーションと着…

【Unity】MecanimのAnimationClipを動的に差し替える

今回はMecanimのAnimationClipを動的に差し替える方法について。 Animationの差し替え AnimationClipを差し替える 関連 Animationの差し替え ゲームでアニメーションを使用して制御していると、時々アニメーションを差し替えたくなる事があります。例えばツ…

【Unity】知っておくと便利なAnimation Windowの操作(5.5以降対応)

Unity 5.5でAnimation Windowに手が加わりました。 今回はソレも踏まえて、Animation Windowのショートカットキーについて確認してみた事をメモします。 ま、アリじゃないか貴様(上から目線 知っておくと便利なAnimation Windowの操作 知っておくと便利なAn…

【Unity】Animatorで動かすオブジェクトをスクリプトでも動かす際の注意

少し面白い挙動について調査したので、メモ。 (前提)モデルにスクリプトで回転を加える (前提)さらに色を変えるのみのアニメーションを加える (問題)回転を設定したアニメーションを加えると動かなくなる 位置が変化するアニメーションが設定されてい…

【Unity】Navmeshで取得した経路をApplyRootMotionで移動させる手っ取り早い方法

今回はNavmeshとApplyRootMotionを組み合わせて動かす手っ取り早い方法についてです。 ApplyRootMotionとNavmesh NavmeshAgentが設定されたオブジェクトの移動を止める 終了距離が近づいてきたら、動かないアニメーションに切り替える 要するに 関連 なお、…

【Unity】AnimationClip単位でアニメーションを再生するPlayable API

新しい記事 tsubakit1.hateblo.jp Animator+AnimationController+AnimationClip(s)の組み合わせを使用せずともアニメーションを再生できるPlayable APIについてです。 このAPIは正確にはカスタマイズ可能なブレンドツリー的な何かになるのでしょうが、現状…

【Unity】AnimationControllerがプロジェクトを散らかさない設計についての模索とサンプル

Animatorの運用方法について、5つのアプローチを試しに試作してみました。 サンプルプロジェクト Style1:各ステートマシンにて制御 Style2:ステートマシンのアニメーションを上書き Style3:AnimatorOverrideControllerを「シーンにシリアライズ」 このサ…

【Unity】Animatorのアニメーション終了待ちをする方法

今回はAnimatorを使用している時にアニメーション再生が完了した事を検出する方法について考えてみます。 アニメーション終了検知 現在のステートのnormalizedTimeを見る ステートを比較してアニメーションの終了を知る ステートが移動する…について コルー…

【Unity】uGUIでスプライトアニメーションするには

uGUIでスプライトアニメーションを行う方法についてです。難しい事は全くないのですが、気づかないと分からないかもしれないので、一応ここに書いておきます。 下のGIFはキャラクターアニメーションをuGUIで行って居るので影付けたりアウトライン付けたり、…

【Unity】AnimationClipのMissingなパスを見つけて解決しやすくするエディタ拡張

昨日の応用で、アニメーションするオブジェクトでmissingになっているパスを発見し置換するエディタ拡張を作ってみました。 missingなAnimationClip missingなアニメーションを見つける missingなパスを置換する 導入とソースコード 使い方 感想 関連 missin…

【Unity】AnimationClipからTransformを操作するのアニメーションカーブを一括で消すエディタ拡張

アニメーションクリップからTransformのアニメーションを一括で消すエディタ拡張についてです。Animationを使用する目的のある程度はTransformの更新だと思うので必要かどうかは微妙な所ですが、一応。 TransformをAnimationClipから消すエディタ拡張 Transf…