[Visual Studio 2022] Unreal Engine プロジェクトの IntelliSense が 18 倍も早くなりました！

皆さんごきげんよう。今回は、10 月 25 日 (米国時間) に公開された以下のブログの翻訳というか意訳となります。原本は以下となります。

https://devblogs.microsoft.com/cppblog/18x-faster-intellisense-for-unreal-engine-projects-in-visual-studio-2022/

--------------------------

Visual Studio は、ゲームデベロッパーの皆さんにとって、最高のツールでありたいと思っています。
そんなわけで、[Epic Games](https://www.epicgames.com/site/ja/home) と協力して、[Unreal Engine](https://www.unrealengine.com/ja/unreal) デベロッパー向けに、セマンティック ハイライトと intelliSense の高速化を [Visual Studio 2022](https://visualstudio.microsoft.com/launch) で実現しました。
本ブログ記事では、Unreal Engine チームと協力してエディタで新しいファイルを開いたときに IntelliSense が開始できるまでの時間を、18 倍も大幅に短縮した方法を詳しく紹介したいとおもいます。

> "<font color="MediumSlateBlue">*Unreal Engine* *のソリューションでは、IntelliSense のパフォーマンスにいつも苦労していましたが、今回の変更で日に日に改善されていきました。フィードバックが早くなり、待ち時間が少なくなったことで、素晴らしいゲーム作りに集中できるようになりました</font>" - *Epic Gamesのリードプログラマー、Ben Marsh氏*

この変更は、最新の [Visual Studio 2022 Preview](https://visualstudio.microsoft.com/ja/vs/preview/) を使用している [Unreal Engine **4.27.1**](https://forums.unrealengine.com/t/4-27-1-hotfix-released/255492) プロジェクトから利用可能です。

https://visualstudio.microsoft.com/ja/vs/preview/

#パフォーマンスの比較

* Intel Core i7-9700 @ 3Ghz、64GB RAM、SSD 搭載デスクトップ マシン
* Unreal Engine 4.27.1 のサンプル プロジェクトを使用
* 環境は Visual Studio 2019 16.11.5 と Visual Studio 2022 Preview 6 上

上記条件で、4 回テスト実行を行い、結果のアベレージを取りました。

#テスト結果
Visual Studio 2019 上でファイルを開いた場合、IntelliSense の準備が整い、セマンティック コードの色付け表示されるまでに 11.0 秒かかりました。別のファイルを開いても、同じ状態になるまでに同程度時間を要することになりました。ちなみに同じファイルを閉じて再び開くと、準備完了状態になるまでは 1.0 秒程度でした。

一方、Visual Studio 2022 では、最初のファイルの準備完了までに 7.2 秒、それ以降のファイルの準備完了までわずか 0.4 秒でした。

![img](https://devblogs.microsoft.com/cppblog/wp-content/uploads/sites/9/2021/10/UnrealPCHOld30s.gif)
↓↓↓
![img](https://devblogs.microsoft.com/cppblog/wp-content/uploads/sites/9/2021/10/UnrealPCHNew15s.gif)

#結果について考えてみる
変更前は、プロジェクトの C++ ファイルやヘッダー ファイルなどの各 Translation の単位では、ファイル間で状態が再利用されず、ゼロから対応開始されます。同じファイルを再度開く際は 1 秒程度で済みますが、ファイル間で PCH が共有されていないため、どのファイルを初めて開く場合でも、セマンティック ハイライトが表示され、IntelliSense の準備が整うまで同じ時間がかかってしまうのです。

一方、Visual Studio 2022 を 使用した Unreal Engine 4.27.1 プロジェクトでは、生成されたプロジェクト ファイルが更新され、Translation ユニット間で IntelliSense がコンパイル状態を共有するように設定されます。これによって、セマンティック コードのカラー化と IntelliSense による補完が、**Visual Studio でのファイル切り替え時に 0.4 秒程度と、飛躍的に早く利用できるようになる**のです。

Visual Studio 2022 での C++ IntelliSense の改良により、**準備時間が 11 秒から 7.4 秒へと約 1.5倍短縮されました**。この変更は、Unreal Engine デベロッパーの皆さんだけでなく、IntelliSense を使用しているすべての C++ デベロッパーのみなさんにメリットがあります。

#変更をプロジェクトに適用する方法
現在、変更を適用するためには、**Unreal Engine エディタで手動でアップデートを行う必要があります**。

>※注 : 以下は英語版の UI に準拠した説明となります

1. [`Edit`] → [`Editor Preferences`] (エディタの環境設定) → [`Source Code`] をクリックします。
2. ソースコードエディタを <font color="MediumSlateBlue">**Visual Studio 2022**</font> に変更します。
3. [`File`] → [`Refresh Visual Studio 2022 Project`] をクリックします。
4. [`File`] → [`Open Visual Studio 2022`] をクリックして、Visual Studio でプロジェクトを開きます。

Unreal Engine のソースコードを扱う際に `GenerateProjectFiles.bat` を使用している場合は、以下を使用して、変更を加えたプロジェクトファイルを生成します。

```bat
GenerateProjectFiles.bat -2022
```

#フィードバック超待ってます！
Visual Studio でのゲームデベロッパーの皆様の使い勝手をより良いものにしていくための方法について、フィードバックをいただいています。Visual Studio 2022 の開発サイクルを通じて、今回のブログ ポストでご紹介したような改善を続けていく所存です。今回触れたような、生産性の向上は、ゲームデベロッパーの皆さんにとって、どのような効果があるでしょうか？また、Visual Studio に他にどのような機能強化があるといいなとお考えでしょうか。
ツイッター（[@VisualC](https://twitter.com/visualc)）、またはメール（[visualcpp@microsoft.com](mailto:visualcpp@microsoft.com)）でお聞かせください。

#Visual Studio 2022 リリース決まりましたよ！
Visual Studio 2022 は 2021 年 11 月 8 日 (米国時間) に発売されます。最新の Visual Studio 2022 Preview をダウンロードいただき、生産性向上など、最新の VS ならではのメリットをぜひためしてくださいませ！

-------------------

以上、[David Li](https://devblogs.microsoft.com/cppblog/author/davidli1microsoft-com/) さんでした。
それではみなさん、ごきげんよう。