●エディター
unity Remote
デバイスとは プレビュー先のデバイスを選択します。
圧縮とは プレビュー画像の圧縮レベルを設定します。
高圧縮にすると通信データ量は減りますが、画質が低下します。
通信費を抑えるには、高圧縮に設定します。
写真などの複雑な画像では、JPEGの方が圧縮率が高いです。
一方、イラストやロゴなどのベタ塗りが多く、色の境界がはっきりした画像では、PNGの方が圧縮率が高くなる場合があります。
設定できる圧縮方式の選択にはJPEGとPNGがあります。
特徴は下記の通りです。
JPEG (Joint Photographic Experts Group)
非可逆圧縮とは データを一部破棄して圧縮するため、圧縮率が高い反面、画質が劣化します。
特に、圧縮率を高く設定すると、モスキートノイズやブロックノイズと呼ばれる画質の劣化が目立ちます。
得意な画像とは グラデーションや多くの色が使われている写真。
PNG (Portable Network Graphics)
可逆圧縮とは データを破棄せずに圧縮するため、画質は劣化しません。
JPEGに比べて圧縮率は低いですが、何度保存しても画質が維持されます。
得意な画像とは 色数が少ないイラスト、ロゴ、アイコン、背景を透過させたい画像。
解像度とは プレビュー画像の解像度を設定します。
低解像度にすると通信データ量が減ります。通信費を抑えるには、Downsizeに設定します。
ジョイスティック情報元とは 入力情報の取得元を設定します。
ジョイスティック情報元の選択設定できるRemoteとLocalの違いは、主にネットワーク経由でジョイスティックの入力を取得するかどうかです。
Local(ローカル)
デバイスに直接接続されているジョイスティックやゲームコントローラーからの入力を指します。
例えば、PCにUSBで接続されたコントローラーや、スマートフォンの画面をタップして操作する仮想ジョイスティックなどがこれにあたります。
特徴とは
入力の遅延が非常に小さい。
ネットワーク通信を必要としないため、安定している。
オンラインゲームでも、自分のキャラクターの操作はLocalな入力で処理されます。
Remote(リモート)
ネットワーク経由で他のデバイスから送信されるジョイスティック入力を指します。
主にマルチプレイゲームで、他のプレイヤーのキャラクターの動きを同期させるために使われます。
例えば、他のプレイヤーがジョイスティックを動かすと、その入力情報がネットワークを通じて自分のデバイスに送られてきて、その情報をもとに他のプレイヤーのキャラクターを動かします。
特徴とは
ネットワークの遅延(レイテンシ)の影響を受ける。
入力情報の送信、受信、補間(遅延を埋めるための処理)などが必要となる。
自分のキャラクターの操作にRemoteな入力を使うことは一般的ではありません。
このRemoteとLocalの概念は、ゲーム開発において、自分の操作(Local)と他のプレイヤーの操作(Remote)を区別し、それぞれを適切に処理するために重要です。
通信費の節約ではLocalを推奨します。
アセットシリアル化 (Asset Serialization)
アセットシリアル化とは Unityアセットの保存形式を定義します。
アセットシリアル化のModeの選択設定にはMixed、Force Text、Force Binaryの3つがあり、Force Binaryが最も電力と通信費を節約できる設定です。
特徴は下記の通りです。
設定の詳細
Force Binary (強制バイナリ)とは
アセットデータをバイナリ形式で保存します。
バイナリ形式はテキスト形式よりもファイルサイズが小さくなるため、ロード時間が短縮されます。
これにより、ゲームの起動時やシーン切り替え時のCPU/ストレージへの負荷が下がり、電力消費を抑えられます。
ファイルサイズが最小になるため、特にアセットバンドルなどをダウンロードする際に、通信量が最も少なくなります。
これにより、ユーザーの通信費を節約できます。
Force Text (強制テキスト)とは
アセットデータをYAML形式のテキストファイルで保存します。
電力とは バイナリ形式に比べてファイルサイズが大きくなる傾向があるため、ロードに時間がかかり、電力消費が増える可能性があります。
通信費とは ファイルサイズが大きくなるため、通信量が増加します。
利点とは テキスト形式なので、Gitなどのバージョン管理システムで差分を比較しやすく、チーム開発に適しています。
Mixed (混合)とは
シーンファイルやプレハブなど、特定のファイルはテキスト形式で保存し、その他のアセットはバイナリ形式で保存します。
電力・通信費とは Force TextとForce Binaryの中間の挙動となります。
電力と通信費の削減を最優先する場合、Force Binaryが最適な選択となります。
開発の利便性を考慮する場合は、Force TextやMixedを選択し、通信費の削減はテクスチャ圧縮やアセットバンドルの最適化など、他のビルド設定で行うのが一般的です。
インラインマッピングを一行でシリアライズするとは YAML形式で保存する際、一部のデータを一行にまとめることで可読性を高めます。
デフォルト動作モード (Default Behavior Mode)とは スクリプトの実行モードを指定します。
通常はデフォルト設定のままで問題ありません。
モード
Asset Pipeline(アセットパイプライン)とは アセットのインポート処理に関する設定です。
再起動時に未使用のアーティファクトを削除とは 使用されていないインポートキャッシュを自動で削除します。
ディスク容量を節約できます。
Parallel Importとは アセットを並列でインポートし、インポート時間を短縮します。
必要なインポートワーカー数とは 並列インポートに使用するプロセスの数を設定します。
Standby Import Worker Countとは アイドル状態で待機させるワーカーの数を設定します。
Idle Import Worker Shutdown Delayとは アイドルワーカーをシャットダウンするまでの時間を設定します。
キャッシュサーバー(プロジェクト特定) (Cache Server)とは インポートキャッシュを共有サーバーに保存し、チーム開発でのインポート時間を短縮します。
モードとは キャッシュサーバーの使用有無を設定します。
プレハブモード (Prefab Mode)とは プレハブ編集時の挙動を定義します。
自動保存を許可とは プレハブ編集時の自動保存を有効にします。
編集環境
標準環境は通常はなしに設定することを推奨します。
UI 環境は通常はなしに設定することを推奨します。
グラフィックスとは エディター内でのグラフィックス関連の表示設定です。
ライトマップ解像度オーバーレイを表示とは シーンビューにライトマップの解像度をオーバーレイ表示します。
古いライトプローブのサンプル数を使用とは 旧来のライトプローブ計算を使用するかどうか。
ベイクしたクッキーのサポートを有効にするとは ライトのクッキー(影のテクスチャ)をベイクする機能を有効にします。
スプライトパッカー(Sprite Packer)とは 複数のスプライトを一つのテクスチャアトラスにまとめる機能です。
モード とはスプライトパッカーの動作モードを設定します。
C#プロジェクト生成(C# Project Generation)とは C#プロジェクトファイル(.csproj)の生成方法を設定します。
追加する拡張子
ルート名前空間
テクスチャ圧縮 (Texture Compression)とは エディター内でのテクスチャ圧縮方法を定義します。
BC7圧縮とは BC7形式の圧縮を有効にします。
高画質ですが、対応ハードウェアが必要です。
ETC圧縮とは ETC形式の圧縮を有効にします。
モバイルデバイスで広く使われています。
高速とは 圧縮にかかる時間と圧縮率のバランスを調整します。
通常
最適
新規スクリプトの改行コード (New Script Line Endings)とは
新しいスクリプトファイルで使用される改行コード(LF, CRLF)を設定します。
モード
ストリーミングの設定(Streaming Settings)とは
テクスチャストリーミングに関する設定です。
再生モードでテクスチャストリーミングを有効にするとは
ゲーム実行時にテクスチャストリーミングを有効にし、メモリ使用量を削減します。
編集モードでテクスチャストリーミングを有効にするとは
エディター内での編集時にテクスチャストリーミングを有効にします。
シェーダーコンパイル (Shader Compile)とは シェーダーのコンパイル方法を定義します。
非同期シェーダーコンパイルとは シェーダーをバックグラウンドでコンパイルし、エディターの応答性を向上させます。
キャッシングプリプロセッサーとは プリプロセッサーの結果をキャッシュし、コンパイル時間を短縮します。
再生モードの開始時オプション (Play Mode Startup Options)とは 再生ボタンを押したときの挙動を定義します。
ドメインを再ロードとは 再生ごとにスクリプトのドメインを再ロードします。
シーンを再ロードとは 再生ごとにシーンを再ロードします。
ナンバリングスキーム (Numbering Scheme)とは 新しいゲームオブジェクトやアセットの名前付け規則を定義します。
ゲームオブジェクト命名規則
ゲームオブジェクト名の数値桁数
アセット名の数字の前にスペースを入れる
電力と通信費を削減する方法
エディター設定は、主に開発体験に影響するため、直接的な電力・通信費の削減効果は限定的です。
しかし、以下の設定は間接的に貢献する可能性があります。
Unity Remoteとは 圧縮を高く、解像度を低く設定することで、モバイルデバイスへのプレビュー時の通信量を減らし、通信費を削減できます。
アセットシリアル化とは Force Binaryを使用することで、ファイルサイズを小さく保てますが、バージョン管理システムとの連携には注意が必要です。
ストリーミングの設定とは テクスチャストリーミングを有効にすることで、エディターでのメモリ使用量を抑えることができ、開発環境の負荷を軽減できます。
シェーダーコンパイルとは 非同期シェーダーコンパイルを有効にすることで、エディターがフリーズするのを防ぎ、効率的な開発をサポートします。
これらの設定を適切に調整することで、よりスムーズな開発が可能になり、最終的な製品の最適化にもつながります。
●グラフィックス
スクリプタブルレンダーパイプライン設定(Scriptable Render Pipeline Settings)とは
意味は URP (Universal Render Pipeline) や HDRP (High Definition Render Pipeline) などのレンダーパイプラインを設定します。
URPを選択すると、軽量なレンダリングが可能になり、パフォーマンスが向上し、電力消費を抑えられます。
カメラ設定
透明度ソードモード (Transparency Sort Mode)とは
意味は 半透明なオブジェクトの描画順序を決定します。
Custom Axisに設定し、ソート軸を最適化することで、GPUのオーバーヘッドを減らせます。
透明度ソート軸(Transparency Sort Axis)とは
意味は 半透明オブジェクトのソートに使用する軸を設定します。
階層の設定 (Tier Settings)とは
意味は デバイスの性能に応じて、異なるグラフィック品質設定を適用するための機能です。
通常、モバイルデバイスはTier1、PCはTier2、ハイエンドPCやコンソールはTier3が目安です。
低電力消費を目的とする場合は、すべてのTierで以下の設定を最適化します。
Tierごとの設定 (低、中、高)
これらの設定は、各Tierの品質レベルに応じて設定できます。
電力削減を目的とする場合は、すべてのTierで低めの設定を選択します。
低(Tier1)・中(Tier2)・高(Tier3)の共通設定
スタンダードシェーダー品質 (Standard Shader Quality)とは
意味は 標準シェーダーの品質レベル。
低(Low)に設定することで、シェーダーの計算負荷を減らし、GPUの電力消費を抑えます。
リフレクションプローブのボックス投影 (Reflection Probe Box Projection)とは
意味は リフレクションプローブの投影をより正確にする機能。
無効にすることで、計算負荷を減らします。
リフレクションプローブブレンド(Reflection Probe Blending)とは
意味は 複数のリフレクションプローブ間のブレンドを有効にする機能。
無効にすることで、GPUの計算負荷を減らします。
詳細法線マップ(Detailed Normal Map)とは
意味は 詳細な法線マップを有効にする機能。
無効にすることで、テクスチャのサンプリング処理を減らし、GPU負荷を軽減します。
半透明の影を有効にする (Enable Transparent Shadows)とは
意味は 半透明なオブジェクトが影を落とすことを可能にする機能。
無効にすることで、影の計算負荷を大幅に削減します。
ライトプローブプロキシボリュームを有効にする (Enable Light Probe Proxy Volume)とは
意味は 大規模な動的メッシュでライティングを最適化する機能。
無効にすることで、CPUとGPUの負荷を減らせます。
カスケードシャドウ (Cascaded Shadows)とは
意味は カメラからの距離に応じて影の解像度を変える機能。
無効にすることで、影の計算をなくし、GPU負荷を大きく軽減します。
32ビットシャドウマップを優先する (Prefer 32 bit Shadowmaps)とは
意味は シャドウマップの解像度を32ビットに設定する機能。
無効にすることで、シャドウマップのサイズを小さくし、メモリ使用量とGPU負荷を減らします。
HDRの使用 (Use HDR)とは
意味は HDR (High Dynamic Range) レンダリングを有効にする機能。
unity2021.3.45f1のHDRモードの選択設定ではFP16とR11G11B10があります。
FP16とR11G11B10は、UnityのHDR(High Dynamic Range)レンダリングで使用される色空間のフォーマットです。
それぞれの違いと、電力・通信費への影響は以下の通りです。
FP16 (Halfprecision floatingpoint)
意味は 16ビットの浮動小数点数で、各チャンネル(赤、緑、青)のピクセル値を表現するフォーマットです。
HDRの色情報と精度を保持しつつ、比較的効率的に扱えます。
特徴とは
精度とは ピクセル値の範囲が広いため、より正確な色情報(特に明るい部分と暗い部分)を保持できます。
R11G11B10より多くのメモリ帯域幅を使用するため、GPUの負荷がわずかに高くなることがあります。
R11G11B10 (Unsigned floatingpoint)
意味は 赤と緑のチャンネルに11ビット、青のチャンネルに10ビットを割り当てた、合計32ビットの浮動小数点数フォーマットです。
特徴とは
精度とは FP16に比べて赤と緑の精度は高いですが、青の精度は低くなります。
ただし、人間の目が青色よりも赤や緑のグラデーションに敏感であるという特性を利用した効率的なフォーマットです。
パフォーマンスとは FP16よりもメモリ使用量が少なく、メモリ帯域幅の消費を抑えられるため、GPUの負荷が低くなります。
電力と通信費の削減
電力とは 電力消費を削減するには、GPUの負荷を減らすことが重要です。
R11G11B10はFP16よりもメモリ帯域幅の消費が少ないため、電力消費を抑えることができます。
特にモバイルデバイスや低電力デバイスではこの差が顕著になります。
これらの設定はレンダリング時のピクセルフォーマットであり、ビルド後の通信量には直接影響しません。
通信費を削減するには、テクスチャやビルド全体の圧縮設定を最適化する必要があります。
結論として、電力消費の削減を最優先する場合は、R11G11B10を選択するのが最も効率的です。
ただし、グラフィックスの品質に妥協できない場合は、FP16を選択することになります。
R11G11B10にすることで、レンダリングパスがシンプルになり、GPU負荷を大きく軽減します。
HDRモード(Rendering Path)とは
意味は オブジェクトの描画方法を設定します。
Forwardに設定することで、描画パスがシンプルになり、パフォーマンスが向上します。
レンダリングパス(Rendering Path)とは
意味は オブジェクトの描画方法を設定します。
削減設定とは Forwardに設定することで、描画パスがシンプルになり、パフォーマンスが向上します。
レンダリングパスは、Unityがシーンをどのように描画するかを決定する設定で、パフォーマンスに大きな影響を与えます。
各パスの違いと、電力・通信費への影響を解説します。
レンダリングパスの種類と違い
フォワード (Forward)とは
特徴とは オブジェクトごとにライトとシャドウを計算し、描画します。
各オブジェクトは、その影響を受けるライトの数だけ複数回描画される場合があります。
利点とは シンプルなシーンや、少数のライトを使用するシーンで効率的です。
半透明なオブジェクトとの相性が良いです。
欠点とは ライトの数が増えると、描画回数が劇的に増加し、パフォーマンスが低下します。
ディファード (Deferred)とは
特徴とは 画面全体を一度にレンダリングし、その情報(深度、法線、マテリアルの情報など)をGBufferと呼ばれる複数のテクスチャに保存します。
その後、ライトの計算を一度に行い、最終的な色を決定します。
利点とは 多数のライトを使用するシーンで非常に効率的です。
ライトの数が増えても、パフォーマンスの低下が少ないです。
欠点とは 半透明なオブジェクトの描画に不向きで、レンダリングパスが複雑になります。
ハードウェア要件が高くなります。
古い頂点ライティング (Legacy Vertex Lit)とは
特徴とは 古い手法で、頂点ごとにライトの計算を行います。
ピクセルごとの計算は行いません。
利点とは 最も計算が軽く、非常に古いデバイスやパフォーマンスが非常に制限された環境で適しています。
欠点とは 非常に単純なライティングしか表現できず、見た目の品質は著しく低くなります。
古いディファード (Legacy Deferred)とは
特徴とは 古いバージョンのUnityで使用されていたディファードレンダリングです。
基本的な考え方は現在のディファードと同じですが、実装が異なります。
電力と通信費を削減する設定
電力消費を削減するには、CPUとGPUの負荷を減らすことが最も重要です。
古い頂点ライティングとは 複数のレンダリングパスの中で、最も計算負荷が低く、電力消費を最小限に抑えられます。
ただし、見た目の品質が大きく犠牲になります。
フォワードとは シンプルなシーンや、ライトの数が少ないシーンでは、フォワードレンダリングが電力効率に優れています。
レンダリングパスの設定は、ゲームのビルドサイズやアセットの通信量に直接的な影響はありません。
通信費を削減するには、テクスチャ圧縮やビルドの圧縮形式を最適化するなどの対応が必要です。
結論として、見た目の品質を最優先しない場合は古い頂点ライティングが最も電力効率に優れています。
見た目の品質とパフォーマンスのバランスを取りたい場合は、ライトの数に応じてフォワードまたはディファードを選択するのが良いでしょう。
リアルタイムGIのCPU使用 (Realtime GI CPU Usage)とは
意味は リアルタイムグローバルイルミネーション(GI)に使用するCPUリソースを設定します。
低(Low)に設定することで、CPU負荷を減らし、電力消費を抑えます。
ビルドインシェーダー設定
常に含まれるシェーダー (Always Included Shaders)とは
意味は シーンで直接使用されていなくても、ビルドに必ず含めるシェーダーをリスト化します。
削減設定とは リストを空にすることで、ビルドサイズを最小限に抑え、通信費を削減できます。
デイファードはなしに設定する。
デイファードリフレクションはなしに設定する。
古いディファードはなしに設定する。
スクリーンスペースシャドウはなしに設定する。
深度法線はなしに設定する。
モーションベクトルはなしに設定する。
ライトハローはなしに設定する。
レンズフレアはなしに設定する。
ビデオはなしに設定する。
常に含まれるシェーダー
サイズは数値0に設定で無効にする。
要素0は無効にする。
要素1は無効にする。
要素2は無効にする。
要素3は無効にする。
要素4は無効にする。
要素5は無効にする。
要素6は無効にする。
シェーダーストリッピング (Shader Stripping)
シェーダーストリッピングとは
意味は ビルド時に使用されていないシェーダーのバリアントを自動的に削除します。
ライトマップモードやフォグモードなど、使用しない機能を無効にすることで、ビルドサイズを削減し、通信費を抑えます。
ライトマップモードを無効にする
ベイクした非ディレクショナルを無効にする
ベイクしたディレクショナルライトを無効にする
リアルタイムのディレクショナル以外を無効にする
リアルタイムディレクショナルを無効にする
ベイクしたシャドウマスクを無効にする
ベイクした減法を無効にする
フォグモード(Fog Mode)
フォグモードとは
意味は フォグ(霧)の計算方法を設定します。
無効にすることで、フォグの計算負荷をなくし、GPU負荷を軽減します。
リニアは無効にする
指数は無効にする
指数2乗は無効にする
インスタンシングバリアント (Instancing Variants)
インスタンシングバリアントとは
意味は GPUインスタンシング(同じメッシュを効率的に描画する技術)に使用されるシェーダーバリアントを管理します。
インスタンシングバリアントは、GPUインスタンシング(同じメッシュを効率的に複数描画する技術)を制御する設定です。
この設定は、ビルドサイズ(通信費)と描画パフォーマンス(電力消費)の両方に影響します。
不使用のものを除去 (Strip Unused)とは
意味は シーン内のマテリアルやシェーダーで使用されていないGPUインスタンシングのバリアントをビルドから自動的に除外します。
効果とは ビルドサイズが小さくなり、通信費を削減できます。
ただし、実行時に動的にインスタンシングを使用する場合、そのバリアントがビルドに含まれない可能性があります。
すべて除去 (Strip All)とは
意味は すべてのGPUインスタンシングのバリアントをビルドから強制的に除外します。
効果とは 最もビルドサイズが小さくなり、通信費を大幅に削減できます。
ただし、GPUインスタンシングが全く機能しなくなるため、描画パフォーマンスが大きく低下する可能性があります。
すべて維持 (Keep All)とは
意味は すべてのGPUインスタンシングのバリアントをビルドに含めます。
効果とは ビルドサイズが最も大きくなりますが、すべてのGPUインスタンシング機能が利用可能です。
電力と通信費を削減する設定
電力と通信費の両方を削減するには、状況に応じた選択が必要です。
電力削減とは すべて維持 (Keep All) が最もパフォーマンスが高く、電力効率が良い場合があります。
GPUインスタンシングは描画負荷を大幅に軽減するため、描画時間が短縮され、結果として電力消費を抑えられます。
通信費削減とは すべて除去 (Strip All) が最も効果的です。
ビルドサイズが最小になるため、ダウンロードに必要な通信量が削減されます。
ただし、これによってパフォーマンスが著しく低下し、ユーザー体験が悪化するリスクがあります。
推奨設定とは 不使用のものを除去 (Strip Unused) が、電力と通信費のバランスが取れた現実的な選択です。
必要なバリアントだけを残し、不要なものを削除することで、パフォーマンスを維持しつつビルドサイズを最適化できます。
結論として、通信費を最大限に削減したい場合はすべて除去、電力を最大限に削減したい場合はすべて維持、両方のバランスを重視する場合は不使用のものを除去を選択するのが最適です。
シェーダーのロード
シェーダーコンパイルをログ
プリロードシェーダープリロードシェーダー (Preload Shaders)とは
意味は ゲーム起動時にシェーダーを事前にコンパイルしてロードします。
プリロードするシェーダーの数を最小限に抑えることで、起動時のメモリ使用量とロード時間を減らし、通信費を抑えます。
サイズ
Preload shaders after showing first sceneは無効に設定
「Preload shaders after showing first scene」は、電力と通信費の削減に直接関係する設定ではありません。
この設定は、ゲームの起動時間と実行中のパフォーマンスのトレードオフを管理するためのものです。
設定の目的と影響
この設定を有効にすると、シェーダーのコンパイルが起動時ではなく、ゲームの実行中にバックグラウンドで行われます。
これにより、起動時のピーク負荷は下がりますが、ゲームプレイ中のCPUとGPUの負荷が変動し、一時的に電力消費が増える可能性があります。
逆に無効にすると、起動時にシェーダーをまとめてコンパイルするため、起動時の電力消費は増えますが、ゲームプレイ中はコンパイルによる電力消費の変動が少なくなります。
この設定は、ビルドに含まれるシェーダーのデータ量やダウンロードプロセスには影響しません。
したがって、通信費には直接的な影響はありません。
最適な設定
電力とは 安定した電力消費を重視する場合、シェーダーを起動時にまとめてコンパイルするよう無効にすることが推奨されます。
これにより、ゲームプレイ中のパフォーマンスが安定し、不必要な電力スパイクを防げます。
通信費を削減するには、「シェーダーストリッピング」を積極的に活用し、不要なシェーダーバリアントをビルドから除外することが最も効果的です。
Currently trackedとは11 shaders 11 total variants
Culling Settings (カリング設定)
Culling Settingsとは
意味は 描画しないオブジェクトを決定する設定です。
CameraRelative Cullingとは カリングの基準をカメラに合わせ、精度を向上させます。
ライトとは 画面外のライトをカリングするかどうか。
影とは 画面外の影をカリングするかどうか。
ライトや影のカリングを有効にすることで、不要な描画をなくし、GPU負荷を軽減します。
●Input Manager
Input Manager
この設定は、直接的な電力・通信費の削減にはあまり影響しませんが、不要な軸やボタンの定義を削除することで、ビルドサイズをわずかに減らすことができます。
特にモバイル向けなど、限られた入力デバイスしか想定しない場合は、不要な定義を整理することも一考です。
軸
サイズとは 定義する入力軸の数。
水平とは 左右の移動など、水平方向の入力を定義する軸。
名前(Name)とは HorizontalやVerticalなど、スクリプトから参照するための名前。
正方向の通称 (Positive Button)とは 正方向(例とは 右、上)に動かすキー。
負方向の通称 (Negative Button)とは 負方向(例とは 左、下)に動かすキー。
負方向ボタン
正方向ボタン
負方向ボタン(副)
正方向ボタン(副)
重力 (Gravity)とは 入力が中心に戻る速さ。
無効 (Dead)とは 入力を無視するデッドゾーンの範囲。
感度 (Sensitivity)とは 入力の変化に対する反応速度。
スナップ (Snap)とは 正方向から負方向に切り替える際に、中心を経由して反転するかどうか。
反転 (Invert)とは 入力方向を反転させるかどうか。
タイプ(Type)とは 入力の種類(キーボード、マウス、ジョイスティックなど)。
軸(Axis)とは ジョイスティックやマウスのどの軸を使用するか。
ジョイスティック番号 (Joystick Number)とは 使用するジョイスティックの番号。
これらの設定は、入力の感度や反応速度を調整するものですが、CPUやGPUの負荷を大幅に増減させるものではないため、電力消費への影響はごくわずかです。
また、通信費とは無関係です。
Fire1、Fire2、Fire3、ジャンプ、マウスX、マウスY、マウススクロールホイール、水平、垂直、Fire1、Fire2、Fire3、ジャンプ、提出、提出、キャンセル、Enable Debug Button1、Enable Debug Button2、Debug Reset、Debug Next、
Debug Previous、Debug Validate、Debug Persistent、Debug Multiplier、Debug Horizontal、Debug Verticalの各共通の
名前、正方向の通称、負方向の通称、負方向ボタン、正方向ボタン、負方向ボタン(副)、正方向ボタン(副)、重力、無効、感度、スナップ、反転、タイプ、軸、
ジョイスティック番号で使わないものを無効にすることを推奨します。
物理キーの使用は筆者も意味が分かりません。
●Memory Settings
Unityのメモリ設定は、電力と通信費の削減に直接的な影響を与えるものではありません。
これらの設定は、メモリの割り当て方法とパフォーマンスを調整するためのもので、メモリ管理の効率化が主な目的です。
効率的なメモリ管理は、CPUの負荷を軽減し、間接的に電力消費を抑える可能性がありますが、その効果は限定的です。
通信費については、この設定は一切関与しません。
Memory Settingsには、「エディター」と「プレイヤー」の2つのセクションがあり、それぞれUnityエディターとビルドされたゲーム(プレイヤー)のメモリ設定を調整します。
●エディター
エディターのメモリ設定は、Unityエディターのパフォーマンスに影響します。
これは主に開発時の体験を向上させるためのもので、ビルドされたゲームには影響しません。
メインアロケーター
メインアロケーターとは メインスレッドでのメモリ割り当てを管理します。
メインスレッドブロックサイズとは メインスレッドでメモリを割り当てる際の最小単位。
共有スレッドブロックサイズとは 複数のスレッドで共有されるメモリの最小単位。
Gfx アロケーターとは グラフィック関連のメモリ割り当てを管理します。
メインスレッドブロックサイズとは ファイルキャッシュやツリー構造データなどの、特定の目的のためのメモリ割り当てを管理します。
共有スレッドブロックサイズとは ネットワーク通信やプロファイリングなどの、小さなデータを頻繁に送受信する際に使われるメモリを管理します。
その他のアロケーターとは ファイルキャッシュやツリー構造データなどの、特定の目的のためのメモリ割り当てを管理します。
ファイルキャッシュブロックサイズ(File Cache Block Size)とは ファイルをキャッシュする際のメモリブロックのサイズ。
ツリー型ブロックサイズ (Tree Block Size)とは ツリー構造のデータを保存する際のメモリブロックのサイズ。
共有パケットアロケーターとは ネットワーク通信やプロファイリングなどの、小さなデータを頻繁に送受信する際に使われるメモリを管理します。
パケットアロケーター粒度 (Packet Allocator Granularity)とは パケットアロケーターがメモリを割り当てる際の最小単位。
パケットアロケーターパケット数 (Packet Allocator Packet Count)とは パケットアロケーターが保持するパケットの数。
パケットアロケーターパケットサイズ (Packet Allocator Packet Size)とは 各パケットのサイズ。
パケットアロケーターブロック数 (Packet Allocator Block Count)とは メモリブロックの数。
スレッド別高速一時アロケーターとは 各スレッドが一時的に使用するメモリを、高速に割り当て・解放できるように管理します。
メインスレッドブロックサイズ (Main Thread Block Size)とは メインスレッドが一時的に使用するメモリブロックのサイズ。
ジョブワーカーブロックサイズ(Job Worker Block Size)とは ジョブワーカーが使用するメモリブロックのサイズ。
バックグラウンドジョブワーカーブロックサイズ(Background Job Worker Block Size)とは バックグラウンドジョブワーカーが使用するメモリブロックのサイズ。
プリロードブロックサイズ (Preload Block Size)とは リソースのプリロードに使用するメモリブロックのサイズ。
オーディオワーカーブロックサイズ (Audio Worker Block Size)とは オーディオ処理に使用するメモリブロックのサイズ。
クラウドワーカーブロックサイズ (Cloud Worker Block Size)とは クラウドサービスとの通信に使用するメモリブロックのサイズ。
Gfxスレッドブロックサイズ(Gfx Thread Block Size)とは グラフィックス関連のスレッドが使用するメモリブロックのサイズ。
GIベルクブロックサイズ (GI Worker Block Size)とは グローバルイルミネーション(GI)処理に使用するメモリブロックのサイズ。
ナビメッシュワーカーブロックサイズ (Navmesh Worker Block Size)とは ナビゲーションメッシュの生成に使用するメモリブロックのサイズ。
スレッド共有高速一時アロケーターとは 複数のスレッドが共有する一時的なメモリを管理します。
ジョブアロケーターブロックサイズ (Job Allocator Block Size)とは ジョブシステムが共有するメモリブロックのサイズ。
バックグランドジョブアロケーターブロックサイズ (Background Job Allocator Block Size)とは バックグラウンドジョブが共有するメモリブロックのサイズ。
低メモリプラットフォームのジョブアロケーターブロックサイズ (Low Memory Platforms Job Allocator Block Size)とは 低メモリ環境向けの設定。
プロファイラーアロケーターとは プロファイラーがデータを収集するために使用するメモリを管理します。
プロファイラーブロックサイズ (Profiler Block Size)とは プロファイラーがデータを収集するためのメモリブロックのサイズ。
エディタープロファイラーブロックサイズ(Editor Profiler Block Size)とは エディターでのプロファイラー用メモリブロックのサイズ。
共有プロファイラーパケットアロケーター (Shared Profiler Packet Allocator)とは プロファイラーが使用する共有パケットアロケーターの設定。
パケットアロケーター粒度
パケットアロケーターパケット数
パケットアロケーターパケットサイズ
パケットアロケーターブロック数
●プレイヤー
Unity 2021.3.45f1のプレイヤー向けメモリ設定は、電力と通信費の削減に直接的な影響を与えるものではありません。
これらの設定は、メモリの割り当てと管理方法を最適化し、ゲームのパフォーマンスを向上させるためのものです。
効率的なメモリ管理は、CPU負荷を軽減し、間接的に電力消費を抑える可能性がありますが、その効果は限定的です。
通信費については、この設定は一切関与しません。
プレイヤーのメモリ設定は、ビルドされたゲームのパフォーマンスに影響します。
モバイル端末などメモリが限られた環境では、これらの設定を最適化することが重要です。
各項目の機能はエディターのセクションと同じですが、設定値はゲームの要件に合わせて調整する必要があります。
メインアロケーター
メインアロケーターとは メインスレッドがメモリを確保する際のブロックサイズを設定します。
メインスレッドブロックサイズとは グラフィックス関連のメモリ割り当てを管理します。
共有スレッドブロックサイズ
Gfx アロケーター
メインスレッドブロックサイズ
共有スレッドブロックサイズ
その他のアロケーターとは ファイルキャッシュやツリー構造データなど、特定の目的のためのメモリ割り当てを管理します。
ファイルキャッシュブロックサイズ
ツリー型ブロックサイズ
共有パケットアロケーターとは ネットワーク通信やプロファイリングなど、小さなデータを頻繁に送受信する際に使われるメモリを管理します。
パケットアロケーター粒度
パケットアロケーターパケット数
パケットアロケーターパケットサイズ
パケットアロケーターブロック数
スレッド別高速一時アロケーターとは メインスレッド、ジョブワーカー、オーディオワーカーなど、各スレッドが一時的に使用するメモリブロックのサイズを設定します。
メインスレッドブロックサイズ
ジョブワーカーブロックサイズ
バックグラウンドジョブワーカーブロックサイズ
プリロードブロックサイズ
オーディオワーカーブロックサイズ
クラウドワーカーブロックサイズ
Gfxスレッドブロックサイズ
GIベルクブロックサイズ
ナビメッシュワーカーブロックサイズ
スレッド共有高速一時アロケーターとは 複数のスレッドが共有する一時的なメモリブロックのサイズを設定します。
ジョブアロケーターブロックサイズ
バックグランドジョブアロケーターブロックサイズ
低メモリプラットフォームのジョブアロケーターブロックサイズ
プロファイラーアロケーターとは プロファイラーがデータを収集するために使用するメモリブロックのサイズを設定します。
プロファイラーブロックサイズ
エディタープロファイラーブロックサイズ
共有プロファイラーパケットアロケーター
パケットアロケーター粒度
パケットアロケーターパケット数
パケットアロケーターパケットサイズ
パケットアロケーターブロック数
電力と通信費を削減するための設定方法
Memory Settingsは、電力や通信費の削減を直接目的とする項目ではありません。
これらのコストを削減するには、レンダリング設定や物理設定を最適化することがより効果的です。
レンダリング設定とは
解像度を下げる。
フレームレートを制限する(60fpsから30fpsに)。
テクスチャの解像度を落とす。
シャドウやアンチエイリアシングなどのグラフィック品質を下げる。
物理設定とは
自動シミュレーションをオフにする。
ソルバー処理数や反復回数を減らす。
Memory Settingsを調整する主な目的は、メモリの断片化を最小限に抑え、CPUのメモリ管理負荷を減らすことです。
これは、プロファイラーを使用してゲーム実行時のメモリ割り当て状況を分析し、ボトルネックとなっている部分を特定して調整する必要があります。
適切なブロックサイズに設定することで、メモリの無駄をなくし、CPUがメモリ確保に費やす時間を短縮できます。
これにより、間接的に電力消費を抑えることができますが、その効果は他の設定項目に比べて小さいです。
Unity 2021.3.45f1のパッケージマネージャ設定は、電力と通信費の削減に直接的な影響はありません。
これらの設定は、利用可能なパッケージの種類と表示方法を制御するためのもので、通信の頻度やデータ量を大幅に増やすわけではありません。
●パッケージマネージャ
Enable prerelease Packages (プレリリースパッケージを有効にする)
この設定は、まだ正式リリースされていない開発段階のパッケージをパッケージマネージャに表示するかどうかを切り替えます。
オンにすると、新機能や実験的な機能を持つプレリリース版のパッケージが表示されるようになります。
オフにすると、正式にリリースされた安定版のパッケージのみが表示されます。
電力・通信費への影響とは
通常、この設定をオンにしても、通信量が大幅に増えることはありません。
パッケージマネージャが利用可能なパッケージリストを取得する際に、プレリリース版の情報を追加で取得する程度です。
しかし、プレリリース版のパッケージは頻繁に更新される可能性があるため、頻繁にパッケージの更新チェックを行う場合は、わずかに通信量が増える可能性があります。
Show Dependencies (依存関係を表示)
この設定は、パッケージマネージャのリストで、各パッケージが依存している他のパッケージ(依存関係)を表示するかどうかを切り替えます。
オンにすると、パッケージの詳細情報に依存関係のリストが表示されます。
オフにすると、その情報が表示されなくなります。
電力・通信費への影響とは
この設定は、パッケージの表示方法にのみ影響するため、通信量や電力消費には全く影響しません。
電力と通信費を削減する設定方法
パッケージマネージャの設定項目自体で電力や通信費を大幅に削減することはできません。
もし、Unityプロジェクトでこれらのコストを削減したい場合は、以下の点に注力する必要があります。
通信費の削減とは
プロジェクトで使用するアセットやパッケージを厳選するとは 不要なアセットやパッケージをインポートしないことで、ダウンロード時の通信量を減らすことができます。
Unity Hubのプロジェクト更新時に自動ダウンロードを無効にするとは プロジェクトを開くたびに最新版をチェックして自動的にダウンロードする設定をオフにすることで、意図しない通信を防げます。
電力の削減とは
これは主に、ゲームの実行時のCPUやGPUの負荷を下げることで実現できます。
レンダリング設定とは 解像度、フレームレート、テクスチャ品質などを下げる。
物理設定とは 自動シミュレーションをオフにする、反復回数を減らす。
スクリプトの最適化とは 無駄な計算やループを避け、効率的なコードを書く。
メモリ設定とは メモリの断片化を減らし、CPUのメモリ管理負荷を下げる。