テラシュールブログ

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

Animator の検索結果:

【Unity】SpritePackerとResourcesについて

… この参照はPrefabだけでなく、AnimatorやScriptableObject等でもOKです。 ResourcesからSpritePackerでパッキングしたテクスチャアトラスを取得したい場合、「スプライトをResourcesに含めず、スプライトを参照するPrefabやAnimationをResourcesに置く」と覚えて置けばOKです。 関連 tsubakit1.hateblo.jp tsubakit1.hateblo.jp tsubakit1.hateblo.jp

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

今回はAnimatorを使用している時にアニメーション再生が完了した事を検出する方法について考えてみます。 アニメーション終了検知 現在のステートのnormalizedTimeを見る ステートを比較してアニメーションの終了を知る ステートが移動する…について コルーチンと組み合わせる 関連 アニメーション終了検知 もしUIをアニメーションで検出したり、キャラクターの攻撃後にエフェクトを表示といった事をしたい場合、アニメーションの終了「後」のタイミングで何らかの処理を挟むといっ…

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

…ションの制御ですが、Animator(mecanim)で制御します。*1 とはいえ、2DやUIの制御にFSM制御を利用するのは概ねナンセンスなので、出来るだけそういった物を使わない形で制御します。 まずはAnimationControllerを作り、アニメーションの制御構造を作ります。今回は制御など殆ど不要なので、こんな感じです。 AnimationControllerの中にアニメーション作るのは、UnityのAnimatorControllerにAnimationClipを…

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

…onWindowにてAnimatorに登録されているアニメーションで動かなかったものを片っ端から確認する必要があります。*1 一応、Avaterを持つアニメーションの場合、Avaterが持つパスと一致しなかった場合warningを出してくれたと思いますが、残念ながら手付けでアニメーションを行って居た場合、オブジェクト名を変更するとこうなります。 なお、このパスによるmissingはルートオブジェクトには発生しません。コンポーネントさえ一致してれば、問題無く動作します。 mis…

【Unity】CullingGroupについて

…kit1.hateblo.jp サンプル サンプルです。 // gist.github.com 使い方はこんな感じで、TargetsのTrasnfromにカリング対象となるオブジェクトを登録するだけです。 もう少し色々なケースの使いかたは今度。 *1:Animatorの場合、Culling ModeをCull Update Transform等に設定しておけばカメラ範囲外の時にアニメーションをスキップします。VRでダンス物をやる場合、これが足を引っ張るケースがあるので注意です

【Unity】LOD(Level of Detail-距離に応じたハイポリ/ローポリの切替)をキャラクターで使用する方法

…ターとLOD 一つのAnimatorでLOD やり方 関連 LOD(Level of Detail) Level of Detailは距離に応じて描画するモデルのポリゴン数を制御する機能です。近距離のモデルはハイポリ、遠距離のモデルはローポリで表現することで、オブジェクトの描画負荷を低減します。 例えば下の画像は左が通常ポリゴン、右がリダレクション*1を行ったモデルです。近くで見ると右は歪んでいますが、遠距離で見ると左のポリゴン密度が高すぎる点が気になります。 今までの自分の…

【Unity】Animatorのスパゲティなステートマシンを整理する

UnityのAnimatorはノードベースのステートマシンでアニメーションを制御する機能を持ちます。しかしながら、どんどんノードを繋げていくと昨日の記事のように複雑なグラフ図が出来上がってしまいます。 その辺りを踏まえて、自分なりに「こうすれば良かろうなのだ」みたいなのを考えてみます。 変形!ロボから飛行機へ、飛行機から戦車へ、戦車からロボへ。…好きかも https://t.co/Bhk0pwcB7S pic.twitter.com/oAINRIqSty — 椿 (@tsub…

【Unity】戦車!飛行機!直立2足歩行!!三段変形するロボ「Transforming Robot」のロマン

人型巨大ロボ、それは夢。たとえ戦車より被弾面積多くて、機動力無くて、燃費が悪くて、火力も低くて、操作性が悪くて、構造が複雑で、だから故障率高くメンテナンス性悪そうで、稼働率低くても、ロマンがあるので何の問題もありません。そこに変形機構なる追加ロマンを加える事で浪漫はさらに加速する! 脅威の3段変形機構 脅威のコントロールシステム 脅威のメカニズム 関連 http://u3d.as/iSC いつか誰か(日本か韓国か中国か台湾)が作ってくれると信じてましたよ!ちなみに自分は腕が太…

【Unity】Unity 5.3からAssetBundleはどう変わるのか…まとめ

…sフォルダ以下に空のAnimatorControllerを作成して配置します。 最後に「link.xmlを使用する」についてです。link.xmlを使用することで、特定のコンポーネントがストリップされる事を回避します。 link.xmlでコードのストリップを回避する まずAssetBundleが使用している(削除されたくない)コンポーネントを把握します。 AssetBundleは生成する際、Manifestファイルを生成します。このManifestファイルには、AssetBu…

【Unity】このメソッドを呼び出した犯人を見つけ出す方法。スタックトレースについて

…元が分かります。でもAnimatorのAnimationEventは勘弁な。 uGUIの場合 ちなみに、uGUIのEventSystemのような「コマンドだけ発行して処理は特定のオブジェクトに移譲するタイプ」はこういった形で探すのは若干異なります。uGUIの場合はコマンド発行者を残してくれているので、それを使用します。 スタックトレースでイベントを受け取るインターフェース(今回はOnPointerClick)を選択 LocalsウィンドウのeventData/base/sel…

【Unity】Unity4で書いたコードをUnity5向けに変換する「Script Updater」

…多い印象です。他にもAnimator(Mecanim)はUnity4時代に本当に貧弱なAPIしか提供されておらず、Unity 5へ持ってきた際に手直しが必要になるケースが多い印象です。他のマイナーなAPI群も似たような感じではあります。 その場合は同等のAPIを探して置換、もしくは機能を諦めて削除となります。ちなみにバグレポートすると対応してくれたります。 AssetStoreとScript UpdaterとUnity5対応 Script Updaterで最もお世話になりそう…

【Unity】動的にキャラクターの衣装を差し替える

…ボーンを並び替える Animator Optimizeを使用する 関連 キャラクターのMeshを差し替える といってもやる事は簡単です。キャラクターという事はSkinnedMeshRendererを使用していると思うので、SkinnedMeshRendererのMeshとMaterialを差し替えてやるだけです。 var meshRenderer = GetComponent<SkinnedMeshRenderer>(); meshRenderer.sharedMesh = …

【Unity】指定のプレハブやテクスチャが、どのシーンのどのオブジェクトで使用されているのかを見つける

…ationClipがAnimatorControllerに参照され、AnimatorControllerがAnimatorに参照され、AnimatorがGameObjectに参照される、そんな深い参照関係でも、使用しているオブジェクトを一覧としてHierarchyに表示します。 ref検索を一発で行う しかし正直パスを入力するのは面倒です。その時はアセットを右クリックし「Find Reference In Scene」を選択します。それでシーン内のどのオブジェクトが該当のファ…

【Unity】おなじプロジェクトを複数のエディタで同時に操作する(Windows版)

…とえばPrefabやAnimatorが保存されるタイミングは、編集時ではなくProjectやシーンの保存タイミングである事も注意が必要です。Projectを保存するには「メニューバー>Edit>Save Project」から行います。 Unity開発者が複数人で開発を進める上で覚えておくと幸せになる9つの事 - テラシュールブログtsubakit1.hateblo.jp 他に問題点や気づいた点があれば、Twitterもしくは本記事のコメント等で共有してもらえると嬉しいです。 …

【Unity】期間限定で無料になったビジュアルスクリプティングのアセット「Arbor」で遊んでみた

…もしれません。 なおAnimatorのステートマシンと異なり、スクリプトはGameObjectにアタッチされてる扱いなので、MonobehaviourのようにGetComponentを使用して他コンポーネントにアクセス出来るのでイメージしやすくて中々良い感じです。データのシリアライズも出来ますし。 ちょっとだけ気になったのは、現状(2015年8月現在)各ステートが作成したオブジェクトやデータをFSM内に格納する方法が用意されていなかった点です。これが無いのでステート間の連携が…

【Unity】Animatorのプロパティやステートへのアクセスを容易にするエディタ拡張

ふと思いついて、Animatorのステートやパラメータに定数でアクセスする為のコードを自動生成するエディター拡張を作成しました。 導入方法は ファイルをインポートするだけです。 https://github.com/tsubaki/Unity-AnimatorAccessHelper/blob/master/AnimatorAccessHelper.unitypackage?raw=true この機能を使用するモチベーション Animatorがインポートされた際にAnimat…

Unity上でMMDモデルを独自アニメーションで走らせる

…置を動かす場合、OnAnimatorMoveコールバック内で動かすのがAnimator的には良いです。 この処理をコンポーネントに記述すると、AnimatorのApplyRootMotionが消えHandled by scriptと表示されます。 あとはOnAnimatorMove内で移動の処理を記述してやればOKです。キャラクターの移動はTransformでやると壁を貫通するので、CharacterControllerやRigidbodyを使用し障害物を貫通しないようにしま…

【Unity】Animatorのモーション切り替えが即座に行われないときの対処

Animatorのアニメーションをパラメータを使用して変更した時、アニメーションが即切り替わらない事があります。 たとえば上のGIF画像では、走り始めはキャラクターが滑っており、停止時にダッシュが継続してしまっています。 このケースは、アニメーション切り替えをに前回のアニメーション終了まで待機している事が原因です。 この問題はAnimatorのTransitionのHas Exit Timeにチェックが入っている場合に発生します。ここにチェックが入る事で、Animationは…

NavmeshのAI経路探索とAnimatorのアニメーションを連動させる #Unity

Animator(アニメーションシステム)とNavmesh(経路探索)を組み合わせてみます。具体的には止まったら静止モーション、移動中は走るモーションを使用します。 やり方 まず移動量でキャラクターのモーションを切り替えます。AnimatorはApply Root MotionでキャラクターのRoot座標を動かす事を想定していますが、今回の場合は移動量に従ってアニメーションを切り替える訳です。 なのでまずはApply Root Motionのチェックを外します。これでキャラク…

【Unity】AnimatorをAnimationのように使えるよう色々と試行錯誤

Animatorが嫌いなので、Animationのように制御するアプローチを模索してみました。それで出来たのがコレです。 tsubaki/AnimatorAnimation · GitHub 正直2D Animationの設定はこのくらいの手軽さで良いと思う pic.twitter.com/tgldbILD4X — 椿 (@tsubaki_t1) 2015, 6月 28 動画ではanimationClipをGUIで登録していますが、Play(AnimationClip cli…

【Unity】FBXに格納されたAnimationClipを取り出し編集可能にする

…ッド名し、Float-Int-Stringの内一つに設定したい引数を設定 Applyをクリック 関連 AnimationClipを取り出す他の方法 【Unity】FBXからAnimationClipを取り出すエディタ拡張 - コガネブログ FBXアニメーションデータを編集できるようにする - 頑張って続けます AnimationClipを特定のアセット以下に格納する UnityのAnimatorControllerにAnimationClipを内蔵する - テラシュールブログ

Unity5 MecanimのStateMachineBehaviourと戯れる

…ャラクターを管理するAnimatorControllerのベースとなるものを用意します。魔王と白いやつの2種類です。アニメーションが散らばるのが嫌ですし作るのは空のアニメーションなので、Animatorに入れちゃいます。 UnityのAnimatorControllerにAnimationClipを内蔵する - テラシュールブログ ステートはこんな感じになります。上が移動する魔王氏、下が白いやつのステートです。 正直、ステート作るよりPlayやFadeでブレンドさせた方が良い…

Unityに配置したモデルをアニメーション向けに最適化する

…クトを減らします。 AnimatorのOptimize Transform Hierarchyを実行すると、Animatorの「コンポーネントがTransformだけの」オブジェクトをHierarchyから削除します。 またこの状態は、モーションの角度計算などがオブジェクトや階層毎ではなく一括で出来るようになるらしく、パフォーマンスにそれなりな影響が出るみたいです。 最適化で削除されないで欲しいオブジェクトがある場合もあります。例えば「剣」や「盾」といった装備を持つジョイント…

Unite2015で公開されたRépublique Tech Demoをチェック!Unity5向けのライティングやプロジェクト構造を読む

…動するが、移動自体はAnimatorのコールバックで行う。移動先の設定もコイツが行う。 CameraRotater:ユーザーが監視カメラを回す。画角はInspectorで指定した値を使用。 KeyboardControl:キーボード入力を管理。CameraRotaterはココからパラメータを取得する。 CameraSelectionVolume:コライダーに入ったらカメラをONに、出て行ったらカメラをOFFにする。SelectableCameraを使用。 FramePlaye…

Unity5でRoot Motionを利用したアニメーションと、その注意点について

…veボタンを押す。 AnimatorのApply Root Motionにチェックを入れる。 これで、その場を基準にアニメーションを行うアニメーションが出来ます。 Root Motionの機能 Root Motionは割と面白い機能です。 例えばオブジェクトの上下だけでなく前進部分も設定してやることで、アニメーションでオブジェクトの移動量を調整することが出来ます。つまり初期位置に戻らないアニメーションの場合は移動します。 例えば「ジャンプ時はグっと移動して、でも着地時(ペタン…

Unity 4 free と比較して Unity5 Personal Editionで出来るようになった事

…PUに任せられます(Animatorのみ) staticバッチングが使えるようになりました。 MovieTextureでムービーが再生出来るようになります。モバイル向けはFullScreenMovieが。 モバイル(Android/iOS)でもSocketが使えるようになります。ぶっちゃけ幾らでもやり方はあったのですが、素直なやり方で。 --- 次はUnity 4とUnity 5の比較について書きたい所です。 シーンマージとか、新しいライティングやAnimatorとか、新機能…

UnityのuGUIでアナウンス的な表現を作ってみる

…作成したTextにはAnimatorコンポーネントとContentSizeFitterを追加します。 ContentSizeFitterはHorizonalFitとVerticalFitをPreferred Size*1に設定します。 アニメーションを作成します。TweenがあるならTweenでも良いですし、コードベースで直しても良いです*2。今回はアニメーションを使います。 UnityのuGUIで「UIのアニメーション制御」 - テラシュールブログ まず時間が0の時はAnc…

UnityのuGUIで複数のスクロールビューを切り替える演出の作り方

…嫌なのでUnityのAnimatorControllerにAnimationClipを内蔵する - テラシュールブログで内蔵しちゃいます。 AnimatorはScrollViewsにアタッチします。こうすれば、一つのAnimatorで複数の項目を一括制御出来ます。 変更する項目は「Red Scroll View.Anchor.x」と「Blue Scroll View.Anchor.x」のみ。 画面外のスクロールビューのパフォーマンスが気になる几帳面な人は、表示されない方のIs…

UnityのuGUIで「UIのアニメーション制御」

…成手順 画面の準備 AnimatorとAnimationClip作成 キーフレームの登録 AnimationControllerの設定 AnimationControllerをスクリプトで制御する 感想 ライセンス 関連情報 UnityのuGUIで「UIのアニメーション制御」 UnityのアニメーションシステムのMecanimは、2Dで見た場合は複雑な上に面倒なので使い勝手が少し悪いですが、まあ使えなくはないです。むしろ凝ったUI表現を組もうと思った時、意外と使えるかもしれま…

UnityのuGUIで階層構造を持ったスクロールビューを作る

…。 もし絶対に横もScrollRectで作らなければならないといった事が無いのであれば、TweenやAnimatorを使い「横にスワイプしたら現在使っているスクロールバーを切り替える」ギミックを追加するほうが良いかもしれません(Tweenもしくはアニメーション制御が必要になりますが・・・) その場合もDragEventがScrollRectに握りつぶされてしまうので、NestedScrollRectで回避する必要がありそうです。 関連 追記:もっと賢い方法 qiita.com