Rider for Unreal Engine(EAP版)でRiderLinkプラグインを使う

Rider for Unreal Engine(EAP版)でRiderLinkプラグインがどういうものか、いまいちピンとこなかったので色々と試してみました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/80eff85a-8ec8-a61c-588b-992b2176216c.png)


#書くこと
RiderLinkプラグインの使い方

#書かないこと
UE4およびRider for Unreal Engineのインストール
Rider for Unreal Engine(EAP版)とUE4の連携
プラグインビルドのやり方及び取得

前回書いた記事、[Rider for Unreal EngineとUnreal Engine4.24を連携させる（EAP版）](https://qiita.com/YuukiOgino/items/a10d51c99f22c3c4558c)である程度は書いたので、興味があれば見てください。


#試した環境

以下の環境で試しています。

・Rider for Unreal Engine 2020.1.1(EAP版)
・UnrealEngine 4.24

OS:Windows 10 Home
GPU:NVIDIA® GeForce RTX™ 2080 Max-Q デザイン 8GB GDDR6
CPU:インテル® Core™ i7-9750H（2.6GHz / Turbo 4.5GHz / 6コア12スレッド）
メモリ:16GB（8GB ×2）DDR4

#RiderLinkプラグインの使い方
前回書いた記事、[Rider for Unreal EngineとUnreal Engine4.24を連携させる（EAP版）](https://qiita.com/YuukiOgino/items/a10d51c99f22c3c4558c)の「[UE4プラグインビルド](https://qiita.com/YuukiOgino/items/a10d51c99f22c3c4558c#ue4%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%83%93%E3%83%AB%E3%83%89)」でUE4側のプラグインソースがあるので、これを見てプラグインをビルドしてください。

そのため、この記事ではプラグインビルドのやり方は省略します。

※Rider for Unreal Engine側のUnrealLinkプラグインはデフォルトで有効になっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/3fb4c64f-a7c5-4269-fb53-920caa84a886.png)


##プラグインを有効化した場合

・プレイモードがRiderのエディター側（画像の赤枠部分）も使えるようになる
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/bbf5f163-f129-f626-c11a-c70efb0fc1d6.png)

Rider側で開いているレベルのデバッグプレイができるようになります。

通常はRider起動時にUE4側のエディターが起動されていれば自動的に有効化されます。
しかし、時々リンクに失敗して無効化される場合があるので、その時はビルド（金槌みたいなマーク）ボタンを押してエラーなく終われば有効化される時があるようです。

それでも完全にリンクが切れてしまった場合は、Rider経由でプロジェクトを起動する必要があるので、一度プロジェクトを閉じてから、右端にある再生ボタン（Run〇〇とツールが表示される部分）かデバッグボタン（虫マーク）を押してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/a8106013-0bbe-4a01-49a9-716a16e70003.png)
→完全にリンクが切れた場合は画像の通り、ストップボタンが無効化（灰色っぽい四角）されています。

以下の画像の通りにボタンが変化し、ストップボタン（赤い四角）が有効化されていればOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/365156c2-0851-41a5-4b95-92abc3bf49b3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/8dc6cd9a-6cde-1666-5c58-989fab063d7d.png)


・エディターログがRider側（画像の赤枠部分）に表示されるようになる。
![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/4bd2ecda-539d-aef7-2d21-976c709110fa.png)

エディターログ（UE4側ではアウトプットログで表示されるログ）がRiderで表示されるようになります。

##プラグイン無効化した場合
・ビルドしてもプレイモード関連（画像の赤枠部分）の部分が無効化されている
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/d4c5b3fa-f738-c521-2bf7-02d7fab9cddf.png)

・エディターログがRider側（画像の赤枠部分）表示されない
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/b9d85050-b371-6c51-616b-c9a4167ce89a.png)

#メリット
プラグインを軽く触った結果、いくつかのメリット、デメリットが判明しました。
まずはプラグインを使うメリット側から。

##エディター側でプレイモードの起動、設定ができるようになる
RiderLinkプラグインを使うことで、ビルド後にUE4エディターに戻ってプレイモード起動、という一手間がなくなります。

Riderでソースを修正した場合、ビルド後、再生ボタン（Start Unrealとツールが出るボタン）を押すだけで選択したプレイモードでデバッグプレイができるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/07637829-7be6-14bf-9b62-7318a0497ded.png)

プレイモードの設定もRiderで出来ます。歯車のマークをクリックすると設定項目が表示されます。

・プレイヤー数の設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/f6bc8381-c04c-f015-32d5-f16ca9f13b87.png)

・プレイヤーのスポーン位置
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/23c4d6ec-e445-b0a3-4377-237c7f06cca3.png)

・プレイモードの選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/7d2be985-3d9f-0972-21e9-1aff231756fc.png)

・Dedicated Serverを使用するか否か
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/4b03196d-69d5-a9d9-d6f4-0c5008ec9d49.png)


##スタンドアローン、VRプレビュー等、アウトプットログが表示されない、もしくは消えてしまうデバッグプレイで、Rider側でログが常に表示されるようになる。

地味ですが、これが非常に大きなメリットと感じています。
通常ではスタンドアローン、VRプレビューはアウトプットログが使用できませんが、RiderLinkプラグインを使うことで、Rider側で常にアウトプットログを拾うことができるようになります。

・スタンドアローンでUE4側のアウトプットログとRider側のUnrealEditerLog（下の部分）の表示の違い
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/fa5ce1d7-53b0-ab95-08d0-3847dae009c4.png)

特にVR開発ではデバッグプレイではアウトプットログが消えてしまうので、ログ表示に工夫が必要でしたが、RiderLinkプラグインを使うことで簡単にログを表示することが可能になりました。
便利！

#デメリット
当然ですが、デメリットもあります。

##EAP版はベータ版である

まだベータ版であるため、予期せぬ不具合がある可能性が高いです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/ce200f6d-fc23-5cd7-6b26-b40a5bfc41de.png)
→現状では「ビルドするたびにUnreal Editor Logが増えていく場合がある、そしてそれを消す手段がない」等

##ビルド時間が長くなる

また、エディターのログを共有している都合か、ビルドの時間が若干長いです。

・RiderLinkプラグインを無効化している時のビルド時間
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/0a70c21c-bebf-0996-6ffe-c0f13f1077af.png)

・有効化している時のビルド時間
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/67a966b0-9669-268a-c3bc-035d0ce0cbc6.png)

→プラグイン有効時に限りワーニングも出ているので、そのせいもあるかもです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104377/5bffc281-df80-c8a8-dc0d-2eb4a21c1f4c.png)


不安定な点を除けば、Rider for Unreal Engineを使う上でRiderLinkプラグインを使わない理由が上記以外見つかりませんでした。

#まとめ
RiderLinkプラグインはRiderでUnrealEngineを用いた開発をする場合、とても便利なプラグインです。
かゆいところに絶妙に手が届く機能なので、もし使う機会があればぜひ使いましょう。