PCでAnimationClipの読み込みが遅い問題

問題 プロジェクトでは、アニメーションのFBXメッシュの冗長性の問題を解決するために、アニメーションを切り出す対策を講じましたが、この問題を解決すると同時に、新たな問題も発生しました。つまり、これらのアニメーションはPCでの読み込みに非常に時間…

Unityモバイルプラットフォームにおけるベイクの使用と最適化(下)

三、ベイクの効率と効果の最適化 シーン作成の規模が大きくなっていることは、ベイク処理のプロセスへの影響: 1)ベイク処理の量の増加;2)単一マップのベイク時間は大きくなってきて、ベイクはプログレスバーでフレーズする可能性もあります;3)ライトマ…

Unityモバイルプラットフォームにおけるベイクの使用と最適化(上)

前書き モバイルプラットフォームでのシーン作成の規模はますます大きくなっています。オープンパースペクティブを備えた3Dビッグワールドシーンでは、マップサイズと可視距離に対する要求がますます高まっています。これにより、地形のサイズが大きくなり、…

GPU Skinningは有効にならない

今日の話題: 1)GPU Skinningは有効になりません2)convex hullを選択することによる警告表示3)Unity 2019 画像圧縮フォーマットの選択4)AndroidでExportしたパッケージが圧縮への影響5)AndroidのメモリにおけるUnknown部分のリーク Rendering Q:Unity…

パーティクルシステム最適化—— スキル特殊効果の最適化

4年前、Unityの各主要なモジュールのパフォーマンス最適化知識(初心者向け版)を1つずつ説明しました。近年、エンジン自体、ハードウェアデバイス、製作基準などのアップグレードに伴って、UWAは引き続き規則や方法を更新して、各開発者に提供しつつありま…

モバイルプラットフォームにおけるテクスチャ圧縮フォーマットの選択

今日の主な話題: 1)モバイルプラットフォームにおけるテクスチャ圧縮フォーマットの選択2)Unity2018はMaliGPUでAlpha8形式をサポートしていますか?3)Unityに付属するNavmeshで地面の高さを取得する方法4)ParticleSystemは再生できません5)UI開発にお…

Unityパフォーマンス最適化シリーズ—ローディングとアセット管理

4年前、Unityの各主要なモジュールのパフォーマンス最適化知識(初心者向け版)を1つずつ説明しました。近年、エンジン自体、ハードウェアデバイス、製作基準などのアップグレードに伴って、UWAは引き続き規則や方法を更新して、各デベロッパーに提供しつつ…

Shaderバリアントコレクションとパッケージコンパイルの最適化のアイデア

一、バリアントとは何ですか Unityの公式ドキュメントからの説明:ShaderVariant In Unity, many shaders internally have multiple “variants”, to account for different light modes, lightmaps, shadows and so on. These variants are indentified by a…

Unityパフォーマンス最適化シリーズ――レンダリングモジュール

4年前、Unityの各主要なモジュールのパフォーマンス最適化知識(初心者向け版)を1つずつ説明しました。近年、エンジン自体、ハードウェアデバイス、作成基準などのアップグレードに伴って、UWAは引き続き規則や方法を更新して、各開発者に提供しつつありま…

Unity無限ループによって引き起こされた完全スタックを見つける方法

今回の主な話題:Unity無限ループによって引き起こされた完全スタックを見つける方法、Unity AssetBundle単一パッケージサイズの設定方法、MaterialPropertyBlockでStencil関連パラメーターの変更、リニアワークフローでアクションファイルがシェーダーカラ…

Texture Streamingの使用に関する質問

今回の主な話題:Texture Streamingの使用に関する質問、Unity3DシーンUIのバッチ処理が中断される理由、Asset ProviderとAsset Bundle Providerの意味、Addressablesがアセットを更新するときに最初のアセットのみをロードします、ストロークアルゴリズムの…

Compute Shaderの次世代最適化ソリューション

この記事のタイトルは、AMDが4Cで発表した1つのスピーチから来ました。 Compute Shaders: Optimize your engine using compute(3). 概念 Compute ShaderはGPUで実行するプログラムであります。よく話しましたが、先にGPUを紹介する必要があると思います。ご…

Airtestツールを使用する時のスタック問題

今回の主な話題:Airtestツールを使用する時の動作が重い問題、Overdrawのビュー問題、ModelImporterTangents.CalculateMikk、ASTC形式のビットマップ変換、AnimatorControlleがハンギングクリップを動的管理する方法。 Airtest テストでは、戦闘が終わるま…

_CameraDepthTextureに関する疑問

今回の主な話題:_CameraDepthTextureに関する疑問、テクスチャAlphaチャネルが画像サイズへの影響、URPがGrabPass効果を達成する方法、AssetDatabaseロードに失敗したAssetのInstance IDの取得方法、Bundleファイルがメモリにロードするタイミングの判断方…

開発期間におけるアセット管理戦略の選択

今回の主な話題:開発期間におけるアセット管理戦略の選択、iOS 14起動時にクラッシュする、IL2CPP暗号化:iOSでglobal-metadata.datの復号化問題、プログラムでコントロールできる3Dアクションの実現方法、Unity Editor内ScreenのWidthとHeight。 Resource …

Unity AssetBundle効率的な暗号化ケースの共有

AssetStudioの普及により、Unityプロジェクトに使用されたAssetBundleアセットは、様々なユーザーが簡単に解凍して抽出できるため、AssetBundleアセットパッケージの安全問題は注意すべきものになりました。 過去に、公式ドキュメントを理解することで、主に…

大規模ゲームのアートアセットプロジェクトの管理方法

今回の主な話題:大規模ゲームのアートアセットプロジェクトの管理方法、GooglePlayがAppを強制的に64ビットにする問題、散在するAssetBundleアセットの再パッケージ化に関する質問、UnityのApi Compatibility Level .net 4.xと.NETStandard2.0の違い、SRP B…

Timeline形式でスキルエディターを実現する方法

今回の主な話題:Timeline形式でスキルエディターを実現する方法、AddressableがGroup Nameを介してGroupのKeyを取得する方法、UnityでSpriteがSprite PackerにあるUV値を取得する方法、UnityEditorでAnimatorControllerのすべての状態名を取得する方法、Uni…

Unityローディングモジュール詳細分析——AnimationClip編

前のテクノロジー記事で、UWAはローディングモジュールのTexture、Mesh、Shaderなどのアセットを分析して紹介しましたが、今日はその続きにAnimationClipローディングに関する事項について話しましょう。 アセットローディングパフォーマンステスト用コード …

平行ライトにCookieマスクを追加します

今回の主な話題:平行光にCookieマスクを追加します、ToLua tableの使用に時間がかかる問題の最適化、鏡面反射に関するいくつかの最適化、UnityでBVHを使用して動的Occlusion Culling プラグインを作成する、PlayableBehaviourの特定のクラス内の変数に関す…

Unityローディングモジュール詳細分析——Shader編

前回の記事「Unityローディングモジュール詳細分析——Mesh編」で、メッシュアセットのローディングパフォーマンスについて話しました。今回はShaderアセットのローディング効率について説明します。 アセットローディングパフォーマンステスト用コード 前の記…

Unityローディングモジュール詳細分析——Mesh編

前回の記事「Unityローディングモジュール詳細分析——Texture編」で、テクスチャアセットのローディングパフォーマンスについて話しました。今回は他の主流アセットのローディング効率について説明します。 アセットローディングパフォーマンステスト用コード…

Unityレンダリング最適化に関して、あう可能性のある問題――レンダリング編(弐)

この記事は、前回の記事「Unityレンダリング最適化に関して、あう可能性のある問題――レンダリング編(その壱)」の続きであります。 前回の文章をまだ読まれていない皆様は、是非移動してご覧ください。 キーワード マルチレイヤーテクスチャレンダリング Grap…

Profilerにある「嘘つき」について話しましょう

WaitForTargetFPS、Gfx.WaitForPresent と Graphics.PresentAndSyncは私たちがよく聞かれたパラメーターです。おそらく、この記事を読んでいるあなたも、ProfilerでこれらのパラメーターのCPUコストが大きすぎる状況に遭うことがありましたでしょう。これに…

Unityレンダリング最適化に関して、あう可能性のある問題――レンダリング編(壱)

キーワード Draw Call 半透明オブジェクトのレンダリング 一、Draw Call相関 Q1: モバイルゲームのシーンに、モンスターが同じ場合、Draw Callは動的バッチ処理をしますか?次のような設定できますか? デフォルトでは、スキン付きMeshは動的バッチ処理をサ…

Unity Animator最適化に関して、あう可能性のある問題ーーAnimator編

キーワード メモリリーク アセット作成 一、メモリリーク Q1:私たちのテストでは、Animator Controllerが掛けるアクションが比較的に多い場合、別の動きの少ないAnimator Controllerに切り替えても、タスクのアクション情報は解放しません。ヒーローをAssetB…

Texture Streaming Mipmapの使用に関する疑問

今回の主な話題:Texture Streaming Mipmapの使用に関する疑問、UE4マテリアルで平行光の向きを取得する方法、SubmeshのあるSkinnedMeshRendererがBakeMeshを使う問題、PPS v2 後処理の最適化、動的にロードされたシャドウのベイク情報が無効する。 Texture …

DrawMeshInstanced が Unity2018 で有効にならない問題

今回の主な話題:Unity2018 でDrawMeshInstancedのアップグレードが有効にならない問題、UnityのShaderローディング解析が重複する問題、解像度をロックする方法を使用してパフォーマンスをテストする問題、動的アトラスの作成時にエラーが発生する問題、同…

TextureStreamingJob クラッシュ分析

TextureStreaming Q:TextureStreamingJob が Android、iOS、および PC でクラッシュしました。 クラッシュのコール スタックは次のとおりです。 Unity.exe!TextureStreamingJob(struct TextureStreamingJobData *) Unity.exe!JobQueue::Exec(struct JobInfo…

フレーム同期下の移動システムを作成する方法

今回の主な話題:フレーム同期下の移動システムを作成する方法、ブランチ管理の同期問題、カメラスクリーンショットのパフォーマンスを節約する方法、現在のゲームでTextureのMipMap使用レベルを取得する方法、特殊効果の合併問題。 フレーム同期 Q1: 以前、…