2021-01-01から1年間の記事一覧

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: 以前、…

SRP複数のカメラの同時描画

今回の主な話題:SRP複数のカメラの同時描画、2つまたは以上のNavMeshを新しいNavMeshにマージする方法、UGUI ScrollRectがImage or RawImageを動的にロードします、Text.get_cachedTextGeneratorメモリ占用、Profiler与StatsとFrame Debuggerにあるデータの…

Humanoidアニメーションの表示がGenericと不一致

今回の主な話題:Humanoidアニメーションの表示がGenericと不一致、Resources.UnloadAsset()でロードされた画像をアンロードすると異常になります、コンストラクターのGCが大きすぎます、特定の設備にある白すぎる問題、GPU Skinningに基づく色の変化の拡大…

モデル内の複数のマテリアルのレンダリング順序

今回の主な話題:モデル内の複数のマテリアルのレンダリング順序、SpriteRenderer画面充填の実現、iOSでLogをエクスポートする方法、Shaderの読み込みエラー、Unity 2018.3.7の開発中、一部のデバイスでモデルは表示できません。 モデル Q1: 1つのモデルに…

異なるMeshのDrawCall最適化戦略

今回の主な話題:異なるMeshのDrawCall最適化戦略、AnimationClipメモリの最適化、レンダリング効果エラー、Unityコンパイル後のエラーをコールバックする可能性、UGUIアトラスの並べる問題。 DrawCall Q1: Voxelゲームを作成しています。現在、ゲーム内では…

スマホゲームのプッシュ案

今回の主な話題:スマホゲームのプッシュ案、Unity UI特殊効果についてフロントエンドエンジニアとのコミュニケーション問題、ローエンドマシンでマルチスレッドレンダリングを有効にするかどうか、モバイル端末でRenderTextureメモリが大きくなる、自分で実…

シーンテクスチャのレベル割り戦略

今回の主な話題:シーンテクスチャ圧縮のテクニック、XLuaがゲーム内の配置テーブルを読み取る方式、AssetBundleがベイクシーンをロードする時のライト失効の解決策、OverDrawの最適化問題、複数のBMFontに対応するアートフォントを1つのDrawCallに最適化す…

CommandBufferのGPUコスト

今回の主な話題:CommandBufferのGPUコスト、Unityによって出力されたOBBファイルをどうやってロードしますか、LODの最適化順序、シーンの静的マージでLODと共存する方法、単一のRendererのTexture Mipmapレベルを制御する方法。 レンダリング Q1: 後処理ソ…

PostProcessing V2効果が異常になる

今回の主な話題:スマホで異常に表示されたPostProcessing V2のbloom効果を解決する方法、Lua GCとC# GCの非同期をバランスさせる方法、WebGLがリリースされた後のメモリ変更、重力下での弾道をシミュレートする方法、UI要素のバッチ処理に関する注意事項。 …

UIアイコンアトラスを計画する方法

今回の主な話題:UIアイコンアトラスを計画する方法、Native DLLを使用せずにUnityでプロセス間通信を実現する方法、??演算子を使用してオブジェクトにコンポーネントを追加する方法、キャラクターを追跡するカメラが建物にカバーされる時の半透明案、スクリ…

ボーンの数と骨格階層のアート規範

今回の主な話題:ボーンの数と骨格階層のアート規範、最適化前のすべてのボーンの名前を取得する方法、パッケージ化時にコードからSVNバージョン番号を取得する方法、Gitの2つの分かれたPrefabの衝突問題の回避または解決する方法、今でもETC1形式を使用する…