Rider for Unreal Engine のパブリックプレビューを実施中

Elizaveta Semakova

こんにちは、

私たちは Rider for Unreal Engine のパブリックプレビューを実施しています! これにより、Rider をスタンドアロンでオールインワイン、さらにはクロスプラットフォームでもあるゲーム開発向け IDE に作り上げる目標に向けた大きな一歩を踏み出しました!
Rider for Unreal Engine Preview
今回の投稿では、ツールとそれを試す方法について説明する前に、まずは当社が持つ C* ツールのファミリーを簡単に紹介してから、Rider が Unreal Engine を使った開発に適切である理由について解説したいと思います。

C++ とゲーム開発用に以下のJetBrains製ツールを利用できます。

  1. CLion — ネイティブ開発に使用されるクロスプラットフォームの C/C++ IDEです。ファイナンス、AI プロジェクト、埋め込み開発などを対象にしています。 リモートセットアップを行うときやオンチップデバッグまたはリモート Linux でデバッグを実行するときに便利です。 Unreal Engine で使用することを目的に、CMake をベースとした回避策も考案されていますが、私たちはそれを完全なソリューションとしては見ていません。
  2. ReSharper C++ — C++ 開発者向けの Visual Studio 拡張機能です。 Visual Studio で書かれたすべての C++ プロジェクトが対象であり、よりスマートで生産的な開発環境を提供します。 Visual Studio は Unreal Engine プロジェクト用のツールとして(ReSharper C++ や Visual Assist と連携しながら)最も広範に活用されています (当社がカンファレンスブースで定期的に実施している Game Development Conference アンケートの結果をもとに確認)。 JetBrains が最初にUnreal Engine に特化したサポートを ReSharper C++ に導入したのは、これが理由です。
  3. Rider — 高速でパワフルなクロスプラットフォームの C# IDEです。Unity での使用に最適なツールとしての存在をすばやく確立しました。 ゲーム開発に携わるユーザーと会話をしているうちに、ゲームスタジオの多くが Unity と Unreal Engine の両方のゲームを開発していることに気が付きました。 1 つのツールですべてのプロジェクトを実行できれば便利なのではないでしょうか。

そこで私たちはこう考えました。Rider は ReSharper から言語エンジンを取り入れた IntelliJ プラットフォームベースのクロスプラットフォーム IDE なのだから、 ReSharper C++ の言語エンジンを Rider に追加し、デバッガーを実装し、すべてを Unreal Engine に対して最適化すれば、UE4 ゲーム開発に最適なツールになるのではないか? そうなると考えた結果、 実現することにしたのです。

そして、Rider for Unreal Engine パブリックプレビューを紹介できることになりました。 これは早期プレビューとした Rider の特別版で、現在は Windows でのみでご利用いただけます。今すぐ試してみたいという方は、下のボタンをクリックしてフォームにご記入ください。

早期プレビューに参加する

以下は機能の詳細の一部と FAQ セクションへのリンクです。

Rider for Unreal Engine: 便利な機能

簡単に説明すると、Rider for Unreal Engine には ReSharper C++ から取り入れた C++Unreal Engine のすべての機能が集約されています。 それに加え、ブループリントや HLSL に関する豊富な情報が組み込まれており、C# のビルドファイルとターゲットファイルも理解できます。 また、非常に高速でもあります。

当社の Matt Ellis がこちらのビデオでツールの詳細な概要を説明します。

ビデオの内容からもお分かりのとおり、Rider for Unreal Engine は、未だパブリックプレビューの段階ではありますが、既に Unreal Engine のゲーム開発者に多くのメリットをもたらしています。

C++ をネイティブにサポートするフル機能搭載の IDE

ReSharper C++ には、難しいことで有名な C++ 言語を深く理解するフル機能搭載の C++ パーサーが実装されています。 その便利な機能の多くを Rider for Unreal Engine で利用できるようになりました。
Alt-Enter menu
以下はその一部です。

  • 名前変更やシグネチャーの変更する際、すべての使用箇所においても変更が正しく適用されている。
  • 現在のスコープではまだ使用できないステートメントを補完できるほか、欠落している #include が追加される。
  • 意味の正しいコードブロックを選択し、コピーアンドペーストをせずに並び替えることができる。
  • 250 を超えるコードインスペクションの結果をコーディングしながら確認できる。これにより、かなり多くの重大なミスを回避できるほか、パニックしながら作業する時間を節約できるでしょう。
  • さらに、ReSharper C++ オンラインドキュメントに記載してある革新的な機能をたくさん利用できます。

詳細は、C++ の基本機能に焦点を当てた Matt のビデオのこちらの箇所で紹介しています。

Visual Studio での作業に慣れている方なら、優れた IDE に期待される他の必須機能について気にされているのではないでしょうか。 Rider は IntelliJ プラットフォームをベースとしたフル機能搭載の IDE であり、それは VCS との統合、データベースツール、プラグインの広範なサポート、Vim のエミュレートや異なるクラウドベンダーとの統合において広範に使用されるプラグインが含まれていることを意味します。

最優先するのはパフォーマンス

Visual Studio による制限がない状態 (ReSharper による制限もない状態) で、IDE を1から開発するということは、パフォーマンスの実現に限界がないことを意味しています。 そして、私たちは可能な限り高いレベルのパフォーマンスを目指しています!

プロジェクトの初期インデックスの作成は高速に行われるようにデザインされており、ゲーム開発にインクリメンタルに更新していきます。 多くの場合は、(Engine コードではなく) ご自身のゲームファイルを使って作業を開始することを好まれるのではないでしょうか。 そこで、まず最初にそのファイルのインデックスを作成し、IDE のすべての機能を有効にしてから、Engine のソースコードのインデックス作成をバックグラウンドで実行します。

プレビューの使用中に重大なパフォーマンスの問題が発生する場合は、当社までご報告ください!

ブループリントに関する豊富な知識

JetBrains は常にコーディングに焦点を当て、もちろんコーディングを支援するスマートなサポートも提供いたします。 ブループリント (BP) は、当社の他のツールが支援する環境とは少し違った体験を提供しますが、ブループリント (BP) ファイルはこれらの(コーディング支援という)全体的な目標の達成を促進します。 BP ファイルはバイナリー形式で書かれ、通常は視覚的に編集されます。 それでも、これらのファイルにはゲーム開発で C++ を使用する箇所に参加する開発者にとって便利な情報がたくさん含まれており、Rider にそれを認識させる必要があると私たちは判断しました。

  • 派生 BP クラスが含まれている場合がありますが、C++ クラスに対して Find Usages を呼び出す場合や、エディターで C++ コードを読んで確認するときに便利です。
  • オーバーライドされたプロパティーの値が記載され、Unreal Editor 内で最近それに加えられた変更内容を確認できるのは便利です。
  • C++ コードから BP プロジェクトに移動すると便利かもしれません。

Rider はプロジェクトと Unreal Editor、さらにその両方のプラグインから BP ファイルを読み取り、そのすべての情報を抽出します。
派生されたブループリント

詳細は、ブループリントのサポートに焦点を当てた Matt のビデオのこちらの箇所でご紹介しています。

UE4 のリフレクションシステムに関する理解

ReSharper C++ にご満足のユーザーなら、既にこちらのアクションをご覧になっているのではないでしょうか。 当社の言語エンジンにとって、UE4 のリフレクションメカニズムは単にテキストパラメーターを持つマクロよりも非常に大きな働きをします。

  • 私たちはこれらのマクロが特別で大切なものであることを認識しているため、UnrealHeaderTool を実行する前でも正しく解析し、処理できるようにしています。
  • リフレクション指定子は、単なるテキストではなく、コード補完とドキュメントツールチップも機能するようになっています。
    リフレクションマクロドキュメント
  • UE4 のリフレクションマクロが欠落している、または間違って設定されている場合は、組み込みのコード解析により検出されます。
    マクロインスペクション

詳細は、Matt のビデオのこちらの箇所をご覧ください。

リモートプロシージャーコールのセマンティクスを正しく処理

パーサーを具体的に調整しなければ、UE4リモートプロシージャーコール (RPC) の関数により混乱してしまい、名前でマッチすることができなくなります。 そのために、Rider (および ReSharper C++) は、UFUNCTION 宣言ステートメントのClientServer、または NetMulticast キーワードによって UE4 の RPC を特定します。 また、(UFUNCTION 宣言ステートメントの WithValidation キーワードにより) Validation関数が生成されるべきがどうかも理解します。 実際の開発で、以下を活用できます。

  • 更新された Generate アクションにより、 _Validate と _Implementation 関数の両方、またはその時点で欠落している方を必要に応じて生成する。
  • ナビゲーションで両方の関数に対する提案を表示。
    RPC の関数
  • そして、名前の変更またはシグネチャーを変更するときに _Validate と _Implementation 関数の両方を更新できます。

実際の操作をご覧になりたい方は、 Matt がデモを行うこちらのビデオをご視聴ください。

UE4 の命名規則を適用

Rider が ReSharper C++ から取り入れたもう 1 つの機能に、UE4 の命名規則のサポートがあります。 これは Introduce Variable から getter および setter の生成にいたるすべてのアクションで使用できます。 同時に、Inconsistent UE4 naming(UE4 命名の非一貫性)インスペクションにより、規則に従っていない名前を検出し、クイックフィックスを提案します (結果として Rename リファクタリングがトリガーされます)。

HLSL と C#、JSON、および uproject/uplugin ダイアレクトを理解

Unreal Engine のプロジェクトで、C++ と BP 以外のものが必要になることはありませんか? ズバリその通りではないでしょうか!

ユーザーの皆さんは、ReSharper C++ 2020.1 で HLSL シェーダーファイルの初期言語サポートのプレゼンテーションをご覧になっているのではないかと思います。そこで朗報です、なんと同じサポートが Rider for Unreal Engine にも導入されました! HLSL ファイルを取り扱う際に、当社のツールをお使いいただくと以下のメリットがあります。

  • HLSL ファイルへの移動。
  • 構文のハイライトと構文エラー用のハイライト。
  • コードのセマンティック解析検査。
  • クイックフィックスを搭載した数種類の便利なインスペクション
  • リファクタリングは実験段階ですが、Rename、Inline Variable、Introduce Variable、Change Signature は既に多くのケースで機能しています。

詳細は、ビデオデモのこちらの関連する箇所をご覧ください。

Rider for Unreal Engine は、C# ビルドファイルとターゲットファイルのサポート、そして.uproject ファイルと .uplugin ファイルにおけるモジュール名の補完機能と検証機能がなければ Rider とは言えません。

独自のデバッガーを搭載

これには一番手こずってしまい、プレビューの開始も遅れてしまいました。 Microsoft のデバッガーは MS ツールの外では使用できないので、私たちは LLDB をベースとした独自のデバッガーを実装する必要がありました。 既に実際のプロジェクトを使ったテストを完了しています。数リリース前にこの特定のデバッガーを Windows プロジェクト用に導入していた CLion ユーザーがいたおかげで、とても助かりました。

Rider for Unreal Engine では、行ブレークポイント、ウォッチポイント、条件付きブレークポイントなどを設定できます。 デバッグセッション中には、evaluate expression (式の評価) や set values (値の設定) を使用することもできます。 NatVis ファイルに対応しているので、UE4.natvis を自動的に見つけて読み込み、Unreal Engine のデータ型を見やすく表示します。

Matt のビデオでデバッガーの実際の機能をご覧ください。 依然として開発の早期段階にありますので、パブリックプレビューの期間中に大幅な改善を加えていく予定にしています。

RiderSourceCodeAccess

Unreal Editor で Rider for Unreal Engine を IDE に選択するには、マーケットプレイスから RiderSourceCodeAccess plugin をダウンロードしてください。 (その使用方法の簡単な手順は GitHub でご覧ください)。 またバージョン 4.25 では設定が簡単になっています。 Rider が Unreal Editor によって自動的に認識され、互換性のあるすべてのバージョンが Unreal の設定にあるソースコードエディターのドロップダウンリストに一覧表示されます。

Rider for Unreal Engine: FAQ

Rider for Unreal Engine のパブリックプレビューは無料ですか?

facebook_1200x1200
はい、無料でご利用いただけます。 しかし、JetBrains のアカウント登録をして、ライセンスを取得していただく必要があります。 このライセンスは、Rider for Unreal Engine のパブリックプレビューでのみ有効となります。 通所の Rider リリースにはご利用いただけません。

このライセンスは 1 年間有効な個人用のサブスクリプションです。 この間に最終ステージを完了させて、正式にリリースできるよう努力しています。 商業目的としてもご使用いただけますが、それは自己責任とさせていただきます。

ライセンスはどのようにして取得できますか?

ライセンスの取得は、こちらのフォームにご記入ください。 ライセンスは自動的に作成され、お客様の JetBrains アカウントに追加されます。その後、その旨をメールで通知いたします。 ライセンスを有効にする手順は以下の通りです。

  1. メールの中のリンクを使ってアカウントとライセンスを有効にします。
  2. それが済んだら、JetBrains アカウントの認証情報を使って製品内で登録します。

私は Rider のライセンスを持っているのですが、 正式にリリースされる Rider for Unreal Engine を使用することはできますか?

はい! Rider for Unreal Engine は正式に JetBrains Rider IDE に含まれます。当社では同 Engine をゲーム開発者向けの主なオファリングとしています。

プレビューのビルドは誰が使用できるものですか?

Rider for Unreal Engine のパブリックプレビューは、どなたにでもご使用いただけます。 フォームにご記入いただければ、ビルドとライセンスが作成されますので、すぐに使用していただけます。

Rider for Unreal Engine を使って通常の C++ プロジェクト開発はできますか?

Rider for Unreal Engine では ReSharper C++ が提供するすべての C++ サポートをご利用いただけます。 なので、VS ソリューションをお持ちでしたら、Rider で開くことができます! ですが、今回のプレビューでは Unreal Engine とゲーム開発に主な焦点を当てています。 当社は今回のプレビューにたくさんの努力を注いできましたので、プレビューをご使用いただくユーザーの皆様から Unreal Engine 対するご意見をいただけることに期待しています。

Rider はクロスプラットフォームの IDE ですが、 UE4 のサポートは 3 つのすべてのプラットフォームでも使用できますか?

現時点で、Rider for Unreal Engine は Windows でしか動作しません。 今後、できれば最初のリリースまでに macOS と Linux でも使用できるようにする予定です。

Unreal Engine のプロジェクトを開始するには具体的なプロジェクトモデルが必要ですか?

Rider for Unreal Engine で .sln ファイルを開くだけで始めていただけます。 リリースまでには、Rider で .uproject もネイティブに使用できるようになり、.sln ファイルの生成ステップを省けるようになることを期待しています。

正式リリースはいつ頃になる予定ですか?

現時点では具体的な日付はありません。 パブリックプレビューをリリースしたばかりですので、できるだけ多くのフィードバックを集め、考慮していきたいと思います。 製品の成熟度が十分で、実稼働で広範に使用できる準備が整ったと判断する時点で、すべての機能を JetBrains Rider にマージします。 これは 2020 年の年内に実現できるかどうかは分かりませんが、今後集まるフィードバックの内容によります。

フィードバックはどこから提出すればいいですか?

非常に簡単です! いくつかオプションがあります。

  • Rider 向け UnrealLink プラグインと Unreal Editor 向け RiderLink プラグインは、ブループリントの統合や Rider と Unreal Editor 間の連携に使用されています。これらに関する 具体的な問題は GitHub に提出してください。
  • C++ と Unreal Engine のコードに関する問題は、ReSharper C++ の課題トラッカーに記録してください。
  • Rider 固有の問題は Rider トラッカーに提出してください。 チケットの送信先を間違っても、心配ありません。 私たちの方で適切な宛先に移動します。
  • 当社のサポートエンジニアや Rider for Unreal Engine の開発者へのメッセージは、rider-cpp-support@jetbrains.com までご送信ください。
  • Twitter でメンション (@JetBrainsRider) してください。 タグ #RiderForUnrealEngine を使ってツイートしていただければ幸いです。

ぜひ Rider for Unreal Engine をお試しください! 下のボタンをクリックしてフォームにご記入ください。

早期プレビューに参加する

Rider チームより
JetBrains
The Drive to Develop

投稿記事 Rider for Unreal Engine Public Preview Starts Now! は最初に .NET Tools Blogに掲載されました。