サイバーグノーシス ■Unity開発メモ用のWiki◎現在扱っていること・Unity全般・MMDからUnityへの変換してインポート・MMDの仕様把握・BlenderでMMDモデルのカスタム トップページページ一覧メンバー編集 Unity:Arbor3メモその2 最終更新: kenken2020 2024年01月03日(水) 18:37:36履歴 Tweet 削除
UnityのAnimatorは使いづらい Unityでアニメーションの遷移とかの管理、何を使っていますか? 公式はAnimatorControllerを使うように言ってきますし、Unity初心者講座とか見てもそう言ってます。 が、AnimatorControllerは、アニメーションが4つ5つ出てきたあたりから管理が怪しくなり、 ステートの数が増えるにつれて、遷移の可能性は級数的に増えていくので、割と早い段階で地獄の様相を呈してきます。 これはAnimatorControllerの公式マニュアルにある画像なんですが、 このステートの数でもう嫌です。 しかも、よく見ると地上以外で死ぬことを想定していないので多分バグです。 ステートが増えてきた場合、AnimatorControllerはレイヤー分けとかもできますが、それで解決できるかは怪しいところです。 これはAnimatorControll
UnityのAnimatorのTarget Matchingについてです。 どんな時に使う機能? 使い方 結果 Humanoidでしか使えない 参考 Unity2018.3.1 どんな時に使う機能? 例えば今こんな感じのジャンプモーションがあるとします。 そしてこのジャンプモーションでこの台に飛び乗ることを考えます。 もちろん位置をスクリプトで制御してもいいのですが、その場合には ジャンプモーションの足が床から離れるタイミングを検知 そのタイミングで移動を開始 ジャンプモーションの着地までの時間を計算 着地までの時間でうまく移動を完了させる といった面倒な処理が必要です。 これをある程度簡単にやってくれるのがTarget Matchingです。 使い方 Target Matchingはスクリプトでこんな感じに制御します。 using System.Collections.Generic;
足滑りを防ぐ 個人開発の3Dゲームに良く見られる歩行モーションと移動速度があっていないせいで足が滑る現象。最近の作品だとリメイクだがゼノブレイドDEの足滑りがものすごく気になった。少し前であったら大手のゲームでも足滑りはよく見られたが足が滑っているだけで大きく見栄えが悪くなる。速度によってモーションを用意するのは大変だと思うかもしれないが、これは一つのモーションの速度を変えることで足滑りを防ぐという手法なので、個人開発でも容易に実装できる。 足が滑ってしまっている 移動速度とアニメーション速度を同期する やることは簡単で、rigidbodyからvelocityを取得し定数を乗算・除算してanimatorに渡す。 下のコードではwalkAnimSpeedで割っているが除算の負荷が気になるなら逆数をキャッシュしておいて乗算すれば良い。 private void SetAnimParameter
Animator.StringToHash 文字列からパラメーター ID を生成。 2016/10/18 01:04 Animator.StringToHash public static int StringToHash(string name); (このAnimatrorは class UnityEngine.Animator の模様) パラメーター name 文字列(=string型)から ID(=int型) へと変換します。 例 private int motionIdol = Animator.StringToHash("Base Layer.Idol"); Base LayerでIdolと名付けたステートのIDを取得してmotionIdol に代入している。 結果 motionIdol の中身は 127445790 このIDを比較して現在idolモーションが再生中かを調べる事
【Unity】StateMachineBehaviourからアニメーションの特定タイミングで処理を実行する方法 time 2016/11/16 folder Unity というわけで、ひさびさにUnity関係のお話です! 今回はタイトルにもある「StateMachineBehaviour」を使ったスクリプトのお話です。 「StateMachineBehaviour」を継承したクラスは、AnimatorController のステートに設定することができます。 主に「ステートに遷移した直後」「ステート中」「他のステートへ遷移する直前」のタイミングで関数が呼び出されますが、「ある特定のタイミングで関数を呼び出す」ということが出来ません。 アニメーションをインポートした際に ImportSettings の Events から出来るようですが、指定する関数名を直打ちするのがあまり好きではありませ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く