
【NeosVR】Headless Client用の管理アプリを作っている話
あいさつ
どうも、いもっちです。
私はNoesVRでは雑談メインでモデリング講習会の講師や初心者案内をしてることが多いです。
また、NeosInfraTeamとしても活動?をしています。
はじめに
皆さんはHeadlessを運用時に
「コマンド入力するのが大変」
「コマンド忘れた・・・」
そう思ったこと、1度はありますよね?
「NHCC」を使えば簡単にHeadlessを操作できちゃいますよ!

この記事はこんな方向けです。
Headless Clientを運用中
Headless Clientの運用に興味あり
Windowsユーザー
※Headless Clientを使用するためには、
NeosVRのpatron12$以上のコースで
支援する必要があります。
皆さん、こういう経験はないでしょうか?
1.【課題】やりたいことまでの手続が長い
セッションのワールド名を変えよう
↓
「Worlds」で対象のセッションを探す
↓
「focus ~」で対象のセッションにフォーカスする
↓
「name HogeFugaWorld」でワールド名変更

2.【課題】コマンドの引数が分からない
アクセスレベルをフレ+にしよう
↓
「accessLevel 」のあとなんだっけ?

3.【課題】再起動がしたくても通知手段がない
Headlessを再起動しよう
↓
あっ、まだセッションにユーザーがいるね
↓
NeosVR起動して入って直接声かけにいこう
4.【課題】常時起動時のマシンパフォーマンス悪化
JPチュートリアルを常設しておこう
↓
ユーザーが居ないのにのメモリ使用量が高いままだ!
そういった経験ありますよね?
私はあります!
ここから本題です。
先程のHeadless運用時の問題を解決する(かもしれない)ちょっと便利なツールの紹介です。
今回紹介するのは、
「NeosVR Headless Client Control」
というアプリです。

名前が長いので「NHCC」と呼んでいます。
このアプリを使えばコマンドを意識せずに
画面上の操作だけでHeadlessClientを操作することができます!
※CUIのGUI化ですね。
冒頭の4つの課題から「NHCC」を使った場合どうなるでしょうか?
1.【解決】やりたいことまでの手続が長い
「HOME」にある「アクティブセッションリスト」の「セッション名」を直接編集すればOK!

2.【解決】コマンドの引数が分からない
「HOME」タブ
↓
「アクティブセッションリスト」
↓
「アクセスレベル」
プルダウンから選べばOK!
※「新規ワールド作成」なども同様にプルダウンから選ぶだけでOK!

3.【解決】再起動がしたくても通知手段がない
「再起動通知」ボタンをクリックすればOK!
※全セッションに再起動が行われる旨のボイスメッセージが送信され、セッション名が「n分後に再起動」のように変更されていき、クリックから5分後に自動再起動します。


4.【解決】常時起動時のマシンパフォーマンス悪化
「日次再起動」や「高負荷時」の自動再起動設定をしておけばOK!
※例えば・・・
日次再起動は、2021/12/25 5:00 などを設定しておけばその日時に
再起動通知とHeadlessClientの再起動が行われます。
高負荷時時は、CPU使用率が70%の以上の状態が15分以上経過した場合に
アクティブユーザーが0人であれば再起動のような設定ができます。

+.【解決】他にもNHCCではこういうことができます。
全てのコマンドを画面操作で代替
フレンドリクエストの一括承認
起動用のConfigの切替
CPUやメモリの簡易パフォーマンスモニタ
高負荷時にユーザーへの通知
NeosVRアップデート時の自動更新
NeosVRの起動引数設定
メッセージ送信などを行った際にユーザー名の記憶
アクティブユーザー数の合計表示
kiyomaruさん管理のZabbixとの連携(アクティブユーザー数など)
不使用アセットやキャッシュの自動削除
フレンドリストの取得
またConfig作成機能を開発中だったりします。
いかがでしょうか?
HeadlessClientの標準機能に加えて、便利な機能を追加しています。
入手先は?
ここまで見ていただいて、「NHCCちょっと使ってみようかな」と
思っていただけましたら、こちらよりダウンロードすることができます。https://github.com/imotchi1214/imotchi_Public/releases
起動方法と基本操作について。
1.ダウンロードしたZipファイルを解凍し、
デスクトップなど任意の場所に設置して起動してください。
※「Program Files(x86)」などのフォルダで書き込み権限が制限されている場合は正常に動作しません。
2.起動すると以下のような画面が表示されます。

3.赤色の部分にHeadlessのNeos.exeのファイルパスを入力します。
※初期値としてSteamが規定するインストール先を設定しています。
移動やSteamのインストール先設定を変更していなければ編集は不要です。

4.「起動時のConfig」の近くにある「...」ボタンを押すと「HDLConfig」フォルダの指定ができます。
指定したフォルダに起動Configを好きな名前で配置してください。

私は複数のHDL端末からアクセスするためにOneDriveフォルダにしています。
5.「起動時のConfig」のプルダウンをクリックして先程設置したConfigファイルを選択しましょう。

6.「HDL起動」ボタンをクリックで起動します。

NeosVRからの出力が「コンソール」に表示されます。
しばらく待ちましょう。
7.「HOME」タブの「アクティブセッションリスト」の「♺」のようなボタンをクリックすると開いているセッションの一覧が表示されます。

8.「HOME」タブの「アクティブセッションリスト」の「人数」
または「現在」をクリックすると、
セッションにいるユーザーが「コンソール」に表示されます。

9.「HOME」タブの「アクティブセッションリスト」の任意の「セッション名」のセルを選択し、F2またはダブルクリックで直接編集することができます。

10.「HDL終了」をクリックするとHeadless Clientがshutdownされ終了します。

起動方法と基本操作については、以上です。
この記事は紹介記事なので細かい操作説明などは別でしたいと思います。
質問やバグ報告など
全体的にバグが多いです。
また、ドキュメントもまだ未作成になります。
そのため、お気軽に質問やバグ報告してください。
報告先は
・GitHub Issue
・Twitter
・NeosVR内で直接
などなんでも可能です。
ぜひお気軽に質問してください。
また、要望などあれば言っていただけるとなるべく対応したいと思います。
最後に
NeosVRは自由度が高いことで、多彩な楽しみ方ができて
最高ですよね。
それでは、よきNeosVRライフを・・・!

また、NHCCと連携できるツールも同階層に用意しています。
2021/12/26 10:10 上記フォルダの内容が古いままだったので更新しました。
おまけ
作成経緯
2021年6月くらいからHeadlessClientの運用を始めました。
1~2週間してコマンド入力が煩わしくなり、GUIアプリケーションを探しましたが見つかりませんでした。そこで、Windows Formsと.net VBの経験があったことから自作することにしました。
私のHeadless環境の紹介


上のノートは検証機ですが、デスクトップモードならNeosが普通に動作します。持ち運びNeosVR!
HeadlessPC性能
[JP]いもっちHDL1
・O S :Windows11 Home
・CPU :Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
・RAM :64 GB(DDR4 2400MHz 32GB x2)
・DISK:INTEL SSDSC2CT240A4
[JP]いもっちHDL2
・O S :Windows11 Home
・CPU :Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
・RAM :32 GB(DDR4 2133MHz 8GB x4)
・DISK:INTEL SSDSC2CT240A4
[JP]いもっちHDL3
・O S :Windows10 Home
・CPU :Intel(R) Core(TM) i9-11900F CPU @ 2.50GHz(TB:5.2GHz)
・RAM :64 GB(DDR4 3200MHz 32GB x2)
・DISK:Samsung SSD 970 EVO Plus 2TB
※臨時マシン
ネットワーク:
・ダウンロード:約700 Mbps
・アップロード:約500 Mbps
