テラシュールブログ

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

トラブルシューティング

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

ECSは現状正直な所、物量が必要な部分をECSで試して大まかな部分は既存のMonoBehaviourやUnityEngine系のコンポーネントを使うのがベターな回答です。今回はECSとGameObjectを連携させる手法についてを紹介します。 検証バージョン:Unity 2019.3、Entities …

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

スプライトアニメーションを今まで通りドラッグ&ドロップで作成した所、やたらとアニメーション再生が早いという事になりました。例えばトップ絵の左のように、速歩きのような速度でアニメーションを再生してしまいます。出来れば右のような速度に設定した…

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

問題:AssetBundleからセットを取得する時にCould not produce class with ID XXXが出る 解決方法:コードがストリップされないようにする 解決手順:link.xml(ホワイトリスト)を自動生成する 手順1:LinkXmlGeneratorの導入 手順2:link.xmlを生成 補足…

【Unity】ECSのSubSceneでISharedComponentDataを使う

この記事はUnity 2019.2.8f1とEntities 0.1.1 を利用しています。また設計がイケてないので修正されてしまいそうな感じはありますが、現状SubSceneを試す上で知らないで苦労したのでメモします。 SubSceneでISharedComponentDataが使えない とりあえずIShare…

【Unity】AddressableでSprite ModeがMultipleなスプライトを使用する

AddressableでMultiSpriteを使用する方法についてです。 Unity 2019.1 Addressable 0.8.4 preview 追記:1.1.4で問題なく使えるようになりました マルチスプライト AddressableはSubAssetを直接ロード出来ない 解決方法 アイディア1: スプライトを取り出す…

【Unity】AddressableAssetSystemのAssetReferenceで、一覧表示するアセットを任意の型に制限したい

AddressableでのAssetReferenceで、任意のアセットを指定する方法についてです。 参照するアセットを絞り込んでおきたい AssetReferenceTを使用する 補足 参照するアセットを絞り込んでおきたい Addressableでアセットの遅延ロードを行いたい時、AssetRefere…

【Unity】AddressableAssetSystemで「PackedPlayMode」と「FastもしくはVirtual Mode」で挙動が違う場合

Addressable Asset Systemで、とりあえず Fast / Virtual Mode ではちゃんと動くのに Packed Play Mode では上手く動かないという場合の、経験則的な対策についてです。 Packed Play Mode と Virtual mode / Fast Modeの違い ゲームの再生が出来ない コンテ…

【Unity】AddressableAssetSystemでSpriteAtlasを使用する

Addressableを使用した場合も、SpriteAtlasの利用手順はそれ程代わりません。 AddressableでSpriteAtlasを使用したスプライトを利用する 対策 Analyzeを使う 手動でスプライトを配置を使う場合… なんか上手くSpriteAtlasが更新されない場合… 感想 関連 Addre…

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

AssetBundleに含めたアセットやシリアライズしたデータ一覧を確認出来る機能を作ってみました。 AssetBundleに自動で含まれるアセット AssetBundleに含まれるアセットを全て確認する 例 現状の問題 CSVで出力もついてでに作ってみる 感想 関連 AssetBundleに…

【Unity】AddressableでAssetBundleをビルドすると link.xml も自動で生成される

AddressableでAssetBundleをビルドしている場合、自動的にlink.xmlが生成されます。 Addressableがlink.xmlを生成する link.xmlを作成しているコード 関連 Addressableがlink.xmlを生成する Addressableをビルドする際、StreamingAssetsに幾つかのファイルを…

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

今回は「アニメーションをセットアップしたのに再生されない」や「アニメーションが止まる」といった場合の対処法についてです。知っていれば「当然そうなる」(そういう設定をしている)という動作なのですが、知らないと面倒かもしれないので一覧としてメ…

【Unity】LineRendererの幅を変える設定の場所(たぶん2018.3以降用)

LineRendererで線の幅を変える項目が見つからなかったので、混乱したという話です LineRendererのWidthが無い! Widthの行方 LineRendererのWidthが無い! ふと思いついて、LineRendererの線が指し示す方向へカーソルを流す的なのを作ってる時の話じゃ。 ち…

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

今回はMecanim(Animator Controller)を使用している場合に即座にアニメーションが切り替わらない問題、その対策についてです。 例えば上の画像では、右はジャンプ開始時や着地直後に速やかにアニメーションが切り替わっているのに対して、左側はモーション…

【Unity】AssetBundleでSpriteAtlasを使用する際に知らないと起こすかもしれないトラブルと、その回避方法

Sprite Atlasの設定 幾つかのページ*1*2にて、Sprite AtlasとAssetBundleの組み合わせで問題が起きるという話を聞いたので、確認してみました。 SpriteAtlasをAssetBundleに格納しただけだと問題が起こる 手っ取り早い解決策:SpriteAtlasに登録したSpriteも…

【Unity】SceneViewのカメラが回せなくなった時の対処法

SceneViewが回せないという動作になりました。 コレの解決法についてです。 SceneViewのロックを外す 結論から言えば、SceneViewのロックが入っていた為でした。 ロックされていると、右上のGizmoの色が薄くなります。 なので、このロックを外してやれば、期…

【Unity】Unity Hubで表示されていないバージョンのUnityをダウンロードする

今回はUnityHubで表示されていないバージョンのダウンロードについてです。 UnityHub経由でダウンロード出来ない 解決編 UnityHub経由でダウンロード出来ない Unity Hubは複数のUnityのバージョンをインストールするのに便利です。 複数のUnityのバージョン…

【Unity】SpriteAtlasでパックしたスプライトをUIに使用したときに出るゴミの対処

SpriteAtlasを始めとしたパッキングのアプローチを使用することで、スプライトの描画時に必要なパスの数が減り、パフォーマンス的に良い感じになります。よく言われるDrawCallやSetPassの削減というやつです。 さて、SpriteAtlasでスプライトをパッキングし…

【Unity】Auto Sync Transformと移動時の判定、それと注意点

たぶん2017.2辺りからAuto Sync Transformという項目が追加されました。 この設定はパフォーマンスの観点からOFFが推奨ですが、ONにすべきタイミングもあるかもしれないので、その辺り少し紹介です。 Transform変更時に即座にColliderに反映させるAuto Sync …

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

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

【Unity】MainCameraが移動できなくなったときの対処法

今回はMainCamera(もしくは任意のオブジェクト)が動かせなくなったケースの対処方についてです。以前見かけた現象ですが、今回その再現方法を思い出したのでメモしておきます。 カメラが動かせない! zzz... 犯人はCinemachine、貴方です どのように起こす…

【Unity】PackageManagerが提供するパッケージのダウンロード先と、パッケージを改造する方法

今回はPackageManagerがダウンロード(キャッシュ)する先のフォルダの確認と、PackageManagerが提供する機能を改造する方法について紹介します。 PacakgeManagerは機能をUnityエディターに追加する PacakgeManagerでダウンロードしたファイルを保存するパス…

はじめてゲーム開発する前に知っておくべきこと

「ゲーム開発を初めた時、大体躓くケースって似てるなー」と思ったら、素晴らしい動画があったので、この動画に自分の経験も混ぜた物をココにメモします*1。 元動画は本当に素晴らしいので、是非一度見るのをお勧めします。なお、ピンポイントで日本語字幕の…

【Unity】multi-object editing not supported(複数のオブジェクトを選択したときに編集できなくなる)をエディター拡張無しに一気に編集する

コンポーネントのエディター拡張によっては、複数のオブジェクトを選択したときに「multi-object editing not supported」と表示され編集が出来なくなる物があります。 これがPrefab化しているならPrefabの大本をイジれば良いという話になるのですが、Prefab…

【Unity】Unity 2018.2でMacのVS Codeが入力補完してくれなくなった時の対処

Unity 2018.2にしたところ、MacのVS Codeが入力補完をしてくれなくなったので、その対策についてです。 結論としては、下のパッケージを入れればOKでした。 http://www.mono-project.com/download/stable/ WindowsのVisual Studioの場合はこちら tsubakit1.h…

【Unity】TimelineからAnimationEventのようにメソッドを呼び出したい UnityTimelineEvents

AnimationEventのように、Timelineのイベントを実行する方法についてです。 UnityTimelineEvents 実際に使ってみる 関連 Timelineを使用していると、特定のタイミングでイベントを発行したいと思う事はよくあります。例えば通常のカットシーンでは「爆発の衝…

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

今回は簡単なトラブルシューティングです。 AnimationClipがReadOnlyなのはFBXにAnimationClipが格納されているため TimelineがPreview中はAnimationClipをRecordにできない Optimized Game Objectが設定されたオブジェクトのAnimationは編集出来ない Add Pr…

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

今回はTimelineで表情を変更する場合の注意についてです。 Case 1.表情のキーがセットされない Case 2. 表情が変化しない Case 3. 表情がおかしな感じになる Timelineでキャラクターの動き等を変更していると「表情」も変更したくなります。例えばちょっとし…

【Unity】Unity 2018.2で「C# プロジェクト "Assembly-Csharp"は、このコンピューターにインストールされていない」が出たので、その対処

Unity 2018.2にてVisual Studio経由でソースコードを編集する際、「C#プロジェクト"Assembly-CSharp"はこのコンピューターにいんすとーるされていない。".NET Framework、Version=4.7.1"を対象にしています。」といった感じのダイアログが出ました。↑のダイ…

【Unity】UnityでOSにインストールされてるフォントを使いたい

今回は「OSにインストールされたフォント」をUnityで使用する方法についてです。 フォントはゲームの第二の顔 そうだ、全部システムフォントを使おう 手順 フォールバックのやりすぎにご注意 CreateDynamicFontFromOSFontは使わないの? WebGLは? 関連 フォ…

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

Unity 2018.3以降の場合 Unity 2018.2までのTimelineの座標系の話 AnimationControllerがAnimatorにセットされていれば現在位置から移動、無ければ絶対座標からアニメーションを開始する ApplyTrackOffsetはAnimationControllerの有無で用途が異なる Animati…