テラシュールブログ

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

Animator の検索結果:

【Unity】GameObjectもECSも使いたい Hybrid ECSについて

…anceDataToAnimator : ComponentSystem { protected override void OnUpdate() { // DistanceFromPlayer の値をDistanceFromPlayerAuthoring へ反映 Entities. ForEach((DistanceFromPlayerAuthoring authoring, ref DistanceFromPlayer distance) => { authoring.D…

【Unity】スプライトアニメーションの再生速度がやたらと早い時の対処

…話になります。 またAnimator側でアニメーション速度を調整するというアイディアがあるかもしれません。速度的に0.3をかければ1秒間にだいたい1回の再生です。これは他のアニメーションとの折り合いを考えたときに少しだけ面倒くさくなります。 そうだ、サンプルレートを変えよう この問題をスマートに解決するのは、サンプルレートを変更することです。たぶんコレが一番はやいとおもいます。 問題は、以前にあったサンプルレートの項目が表示されないことです。以前は現在のフレーム数の下あたりに…

【Unity】AssetBundleが使用しているアセット一覧を渡してlink.xmlを生成する

…nimations.AnimatorControllerを取得してしまうので、RuntimeAnimatorControllerに変更 generator.SetTypeConversion(typeof(UnityEditor.Animations.AnimatorController), typeof(RuntimeAnimatorController)); // AssetBundleNameを持つアセットを全て取得して、LinkXmlGeneratorに登録する。 f…

【Unity】LODGroupの設定を一気に変更する

…体はProjectSettings>QualityのLOD Biasで大雑把に調整出来ますが、全体で調整されてしまうので、特定の物をテンプレートに従って一気に差し替えられるというアプローチは、便利と感じています。 まぁ現状モバイルだとポリゴンを削減するという点でのLODは(一画面1200万ポリゴンとか行ってないなら)そこまで気にしなくても良いと思いますが。ポリゴン数以外でも、スキンメッシュやAnimatorの計算を距離で削減出来るのは、ゲームによっては結構アリかなと思います。

【Unity】Timelineのアニメーションに微調整を加える(Humanoid編)

…IKを使用する場合、AnimatorのIKを使用して手や足の位置を調整します。 IKの設定は普通に行います。例えば下のようなコンポーネントをIKを使用するAnimatorに設定します。 using UnityEngine; [RequireComponent(typeof(Animator))] public class CharacterIK : MonoBehaviour { [SerializeField] AvatarIKGoal goal; // どの部位のIKを使…

【Unity】Animation Rigging、人型以外のキャラクターにもIKを!

…ドする IKで言えばAnimator(Mecanim)に標準で付いているじゃん!という考えもありますが、MecanimのIKはHumanoid限定なのに対して、AnimationRiggingはGenericなRigを持つキャラクターでもIKを利用出来ます。正確にはIKを実装すれば使えるというのが正しく、最初から付いてるのはTwoBoneIKだけです。(サンプルだとフルボディIKがあったんだけど…) 例えば下のキャラクター(明らかに人型ではない)の足の動きはIKで作成していま…

【Unity】AssetBundleに実際に含まれるアセット一覧を確認する

…してはPrefabとAnimatorControllerのみを設定しています。 これをチェッカーで見ると、Prefabが暗黙的に参照している内で、同じAssetBundleに格納されている全てのアセットを確認出来ます。 またSprite Atlasでの動き等もココで確認しやすいです。下の画像を見ると、Sprite AtlasとAssetBundleを組み合わせる場合、SpriteAtlasに登録したAssetBundleを全て同じAssetBundleに登録している場合、含ま…

【Unity】「アニメーションが再生されない」「止まる」時の対処法

…ーが一致しない 子のAnimatorを最適化している ステートマシンにClipが登録されていない AnyStateからのステート切り替えが常に成立している Timescaleが0 Animation ClipのLoopが無効になっている アニメーションが途中で止まる場合、AnimationClipのLoopが外れているかもしれません。 AnimationClipは多くの場合FBX(等のファイル)から取得しますが、このアニメーションはAnimationタブの中から切り出して取得…

【Unity】知らないとハマるかもしれない、2Dでスプライトアニメーションが即座に切り替わらない問題の対処方法

…回はMecanim(Animator Controller)を使用している場合に即座にアニメーションが切り替わらない問題、その対策についてです。 例えば上の画像では、右はジャンプ開始時や着地直後に速やかにアニメーションが切り替わっているのに対して、左側はモーションの切替えが一瞬遅れているのが確認出来ます。この2D特有の現象の解決方法についてです。 2Dでアニメーションが即座に切り替わらない問題の解決法 原因 全てのTransition Durationを0にしたい 関連 2D…

【Unity】2D AnimationのキャラクターにIKをつけてアニメーションで動かすまで

…うだけで、基本的にはAnimatorで操作するといった場合です。今回はIKは編集用と割り切った方法をやってみます。コチラの場合は、各ボーンに動きを登録し、最終的にはIK Manager2D系は全て外す事になります(もしくはウェイト0で運用) 最初にやることは、各SolverのTargetをルートオブジェクトの子から外す事です。AnimationClipを編集する際、動かすと自動的にクリップに登録されるのを避ける為、親子関係は外しておきます。もし最終的なキャラクタから完全にIK…

【Unity】3Dアクションの連続攻撃(コンボ)で学ぶAnimatorControllerのtips

…、使用したコードは「Animatorのトリガーを呼ぶ」くらいで、殆どスクリプトを記述せず実現出来ました。 1. ボタンを押したら殴る 最初のステップでは、ボタンを押したら(Attackトリガーが有効になったら)殴るモーションに入らせます。 [アイドル] と [パンチ] のモーションのトランジション(遷移)を設定 [アイドル] → [パンチ]のコンディションにAttackトリガーを設定 [パンチ] → [アイドル] のコンディションはHasExit(終了時間あり)を設定 これで…

【Unity】Animation C# Jobsで遊んでみる

…ne、Simple Animator)が 「アニメーションの制御を定義するモノ」 なのに対して、アニメーションを実現するためのストリームに直接操作を行う機能です。 blogs.unity3d.com そのため一工夫が必要ですがGameObjectを経由せず直接Skin Meshの行列への書込等も期待出来ます。 その他の用途としては、2ボーンIKやフルボディIKのようなコントロール、LookAtや揺れモノのようなエフェクト、マスク等があるみたいです。 www.youtube.c…

【Unity】新・AnimatorのGameObjectを非アクティブにするとステートマシンがリセットされる問題の対処法

…のリンクで紹介した「AnimatorのGameObjectを非アクティブにするとステートマシン(その他諸々)が破棄される」問題の、対処法です。 tsubakit1.hateblo.jp Animator.keepAnimatorControllerStateOnDisable keepAnimatorControllerStateOnDisableはシリアライズが可能 Animator.keepAnimatorControllerStateOnDisable 新しい解決方法は…

【Unity】AnimationClipの編集が出来ない時の対策

…来ない もう一つあるとすれば、AnimatorがOptimized Game Objectになっています。これを解除すればAnimationClipが編集可能になります。 なお「編集ができない」だけで編集したAnimationClipはOptimized Game Objectで使用できます。 tsubakit1.hateblo.jp Add Propertyが押せない Add Propertyが押せるのは、Animator(GameObjectの)を選択している時のみです。

【Unity】Timelineでキャラクターの「表情」を変更する時の注意点

今回はTimelineで表情を変更する場合の注意についてです。 Case 1.表情のキーがセットされない Case 2. 表情が変化しない Case 3. 表情がおかしな感じになる Timelineでキャラクターの動き等を変更していると「表情」も変更したくなります。例えばちょっとした会話シーンで表情を変更するのは、よくある事です。 Unityでキャラクターの表情を変更するアイディアは3つあります。 Textureを差し替える BlendShapeを使う Boneでなんとかする…

【Unity】実践的なパフォーマンス分析と最適化

…いという設定です。 Animatorで喜ばしい重要なアップデートがあります。Animatorはデータバッファーやステート情報をアクティブ時に保持しており、非アクティブになると破棄していました。つまりAnimatorを持つオブジェクトをプーリングすると、バッファーの破棄や再取得、ステートの再設定が高いCPUスパイクにつながっていました。 Unity 2018.1からKeepAnimationControllerOnDisableという設定が追加され、データバッファとバインディン…

【Unity】知らないと苦労するかもしれない、Timelineと座標の話

…ontrollerがAnimatorにセットされていれば現在位置から移動、無ければ絶対座標からアニメーションを開始する ApplyTrackOffsetはAnimationControllerの有無で用途が異なる AnimationControllerがセットされている場合、移動にはApplyRootMotoinが必要 Timelineを編集後、キャラの位置がズレるのはPreview中にキャラの位置を編集しているため 要するに 宣伝 関連 Unity 2018.3以降の場合 …

【Unity】Timelineで物理演算の動きを使用するアイディア

…4日 インタラクティブな要素が無い 演出目的 なら、物理演算ぶん回すよりClipに変換してTimelineなりAnimatorなりで再生した方が良い印象 pic.twitter.com/GHuiwIzN3q — 椿 (@tsubaki_t1) 2018年5月4日 お蔵入り確定してますが、一応「Timelineで再生中の動きを保存する」奴も置いておきます。 gist:d9e867be84b6f71176a4cf451028e86b · GitHub *1:Unity2018.1

【Unity】Animationのカーブ対象とオブジェクト名が不一致でMissingが起こした際に何とかする手軽な方法

…to switch animators between objects and want to preserve your clips? It'll work, but you'll need to update the curves' targets. Click and wait, and some hidden info will reveal itself. Maaaaaaaagic. #unitytips pic.twitter.com/nFT3xCIwCo — H…

【Unity】パーティクルをGPU Instancingで描画してみる & 対応シェーダーを自作してみる

…ard Particle Syaderについて Unity 2018には標準搭載されています。 tsubakit1.hateblo.jp シェーダーでアニメーションを行うアプローチです。単純なものにしか使用できませんが、パフォーマンスはAnimatorよりも良い事が多いです。 tsubakit1.hateblo.jp 回転シェーダーはコチラに含まれているアセットを参考に作成しました。 tsubakit1.hateblo.jp *1:この項目を計測する時はvsynkは無効にする

【Unity】”テクスチャの差し替え” で切り替わるスプライトアニメーションを作成する手順

今回はテクスチャーを切り替えてアニメーションを切り替える方法についてです。 上の画像のようにスプライトやAnimationClip、OverrideAnimationControllerを用意せずともキャラクターを差し替えることが出来ます。 目次 Unityのスプライトアニメーション テクスチャの差し替えでアニメーションを差し替える手順 1. 基本となるテクスチャのSpriteを分割する 2. アニメーションを作成する 3. AnimationControllerを作成する …

【Unity】Animatorをもっと楽に使いたい私の為の、再生中のAnimationControllerと追加AnimationClipをクロスフェードする方法

…な~と感じてます。 Animator.SetFloatはdampTimeを使用して急激に遷移しないようにするのがポイント。 またBlendTreeでは実装が面倒な”順番を伴うアニメーション”の表現や、明確に状況が異なるものはステートマシンを利用することで表現することができます。 個人的には、”周囲の状況やスティック等の値を見て動かす” のがBlendTree、”ボタン操作や特別な状況” による変化、再生順のあるものはステート切替かな?と感じています。周囲の状況はStateMa…

【Unity】SimpleAnimationとAnimationControllerと旧animationの速度比較

…ついでにSimpleAnimator SimpleAnimation Simple Animationはこちら。 レガシーのアニメーションのようなインターフェースでアニメーションを(アニメーター上で)再生するコンポーネントです。 内部的にはPlayable APIを採用しています。 tsubakit1.hateblo.jp Is it fast? パフォーマンスの項目は、Wikiに記載がありました。 Home · Unity-Technologies/SimpleAnimat…

【Unity】”ラベル”を併用して”プロジェクト内のアセット”を見つけ出す

…登録します。例えば、AnimatorにAnimationControllerを登録したいならば、プロジェクトビューからAnimationControllerをドラッグ&ドロップすれば、指定のオブジェクトにアセットが登録完了です。非常にシンプル。 検索ウィンドウから設定するアプローチ さて、実際にはもう一通り、設定項目の右から選択用ウィンドウを開いて設定する…といった方法も実際には存在します。 コチラの方法では、最初から設定したいアセットの型に絞り込まれている点で便利です。また…

【Unity】2DのSprite Animationをプレビューする裏技

…関連 Simple Animationで2Dアニメーションが色々とやりやすくなりました。 tsubakit1.hateblo.jp 物にも依りますが、量が多い場合はAnimatorよりパーティクルでアニメーションさせた方が4~5桁高速で動作したりします。爆発アニメーションとかにAnimatorは勿体無いかもしれません。 tsubakit1.hateblo.jp キャラクターとして動かす場合は静的なColliderを動かさないように注意 tsubakit1.hateblo.jp

【Unity】さよならステートマシン。旧AnimationっぽいAPIでアニメーションを再生する SimpleAnimation

…ートマシンを使用せずAnimatorでアニメーションを再生する、Simple Animationについてです。 ステートマシンにサヨナラを Playable API Unity公式の旧Animationを模したアニメーション再生コンポーネント アニメーション切替も超絶シンプル AnimatorのOptimised Game Objectも使える AnimationControllerとの共存は? どちらにしろ ステートマシンにサヨナラを Unity 4辺りから登場した多機能ア…

【Unity】ランダムにアニメーションを再生する

Mecanim(Animator)を出来る限り活用してランダムにアニメーションを再生する方法についてです。 FacebookのUnityユーザー助け合い所で面白い話題が上がっていたので、試しに作ってみました。 何時もと違うアニメーションの再生 ランダムなアニメーションの再生 数値を指定して再生するアニメーションを決める サブステートマシンで擬似的なBlendTreeに アニメーションを繰り返す ランダムにParameterを切り替える 完成 何時もと違うアニメーションの再生 …

【Unity】ユニティちゃん等で、ジャンプ中に追加で上下してしまう問題の解決方法

…ることは概ね4つ。 AnimatorのApply Root Motoinのチェックを外す アニメーションのImporterの、Bake Transform Position(Y)を外す Based UponをCenter Of Massに設定して、モーションの中心位置をモデル中央に設定。 Offsetでモデルの位置を調整 これでアニメーションを再生した時、キャラクターが上下せずアニメーションが再生されたら成功です。 実際の動作 このモーションをジャンプの動きに合わせて動かすと…

【Unity】Timelineのクリップが動かすオブジェクトを動的に更新する方法

…ameObjectやAnimatorへの参照等は、PlayableDIrectorからPlayableAssetが吸い出して解決するような方法で解決しています。 この意味は、値を保持するタイプの物は動的に書き換えると他のすべてのTimelineが影響してしまいますが、参照のみの場合はPlayableDirectorの値をチョチョっと書き換えてやれば、捜査対象をハック出来るという意味です。 Control Playable Asset Clipの参照先を書き換える せっかくなの…

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

…いこうと思います。 Animator Parameterというウィンドウ Animator Parameterウィンドウは何の役に立つのか Animatorで十分じゃね? そうだ、Animatorを観測するのに使えるんじゃね…ん?ロックは何処だ? 強いて言うなら… で、Animator Parameterはどうやって活用するの? 感想 関連 Animator Parameterというウィンドウ Animatorの項目にAnimator Parameterというウィンドウがひっ…