古い PC でも VTuber になりたい !

Amazon AppStream 2.0 で動画配信環境を作ってみよう ! ~前編

2023-02-02T00:00:00.000Z
日常で楽しむクラウドテクノロジー

小林 大樹

みなさんこんにちは、ソリューションアーキテクトの小林です。

突然ですが、私は VTuber が大好きです。休日は推し VTuber の配信を追いかけ、グッズを買い集める日々を過ごしています。

※ VTuberとはなんぞや?という方は、builders.flash 1 月号の Amazon Polly に歌わせて VTuber デビューさせてみた をご一読ください !

不思議なもので、そういう生活を送っているとある日ふと思うわけです。

「自分も VTuber になってみたい・・・」と。

VTuber として動画を撮影するためには、以下の手順を踏めばよさそうです。

  1. Web カメラで自分の顔をトラッキングし、3D アバターを動かす
  2. 画面を録画・配信する


1 の機能については、Web カメラの入力をモーションデータに変換し、3D アバターを動かすことができる 3tene FREE というソフトウェアを使えば実現ができます。

※ この記事では個人の使用を想定して 3teneFREE V3 を紹介しています。ご利用になるときはソフトウェアの利用条件をご確認ください。

2 の機能は録画・配信ソフトウェアの OBS Studio が使えます。3tene FREE で 3D アバターを動かし、画面を OBS Studio でキャプチャすれば、VTuber として動画収録ができそうだとわかりました。

ですが、ここで壁が立ち塞がります。運が悪いことに、ふと思い立ったのがちょうど実家に帰省していたタイミングだったため、手元には 10 年モノの古いノート PC しかありません。

物は試しだ ! と、3D アバターを動かすために、 3tene FREE をインストールしましたが、スペックが低いため FPS (フレームレート) が 1 桁台しか出ません。カックカクです。(3tene の詳細については後ほど紹介します)

3tene 画面から引用

これではアバターを動かして動画撮影するなんて無理か・・・と諦めかけました。

しかし、ここはソリューションアーキテクトらしく、AWS のサービスを使ってなんとかしてみましょう !

スペックが高い端末が無いなら、AWS のリソースを使えばいいじゃない !

このクラウドレシピ (ハンズオン記事) を無料でお試しいただけます »

毎月提供されるクラウドレシピのアップデート情報とともに、クレジットコードを受け取ることができます。 


1. Amazon AppStream 2.0 を使ってみよう

1-1. AppStream 2.0 でなにができるのか

今回は、 3tene FREE と OBS Studio がサクサク動く環境を AWS 上に構築し、手元の古い Windows 端末から利用するのが最終目標です。そのためには、Amazon EC2 で GPU インスタンスを立てて、リモートデスクトップで接続したり、Amazon Workspaces でVDIを立ち上げたり、いろいろな手段があります。

ただ、あくまで利用したいのは 3tene FREE と OBS Studio であり、そのほかのデスクトップの機能は必要ありません。

そこで今回は Amazon AppStream 2.0 を使って環境を構築していきたいと思います。

でも、そもそも AppStream 2.0 がどんなサービスなのかご存知でしょうか ?

公式のドキュメントから引用すると、 “Amazon AppStream 2.0 はデスクトップアプリケーションに即座にアクセスできるようにする、完全マネージド型の非永続的アプリケーションおよびデスクトップストリーミングサービス” です。

デスクトップストリーミングとは何なのかというと、今回使いたい 3tene や OBS Studio のようなデスクトップアプリケーションを、SaaS のようにストリーミング配信することができる仕組みです。

また、AppStream 2.0 はマネージドかつ非永続型であるため、インスタンスの管理や環境の設定を気にすることなく、「アプリケーションを利用すること」に集中できるのが大きな魅力です。

つまり ! AppStream 2.0 を利用すると実家でも旅行先でも、ブラウザさえあれば、クラウド上の高スペックなマシンを使ってアプリケーションを動かすことができるのです ! (後述しますが、ブラウザだけでなく Windows 用のクライアントアプリケーションからも利用可能です)

こちらの画像は実際にブラウザから AppStream 2.0 を利用し、OBS Studio を操作している様子です。

3tene, OBS Studio 画面から引用
(クリックすると拡大します)

1-2. 作業の流れをおさえよう

AppStream 2.0 で配信環境を構築するにあたって、どんな作業をする必要があるのか最初にまとめます。

  1. Image Builder の作成
    AppStream 2.0 でどんなアプリケーションを配信するのかを設定していく際に、ベースとなるマシンイメージを作成する工程です。
  2. カスタムイメージの作成
    ベースとなるマシンイメージに対して、利用するアプリケーションの設定や、Windows環境自体の設定を行います
  3. Fleet の作成
    作成したカスタムイメージから、実際にストリーミングを行うインスタンスの起動設定を行います
  4. Stackの作成
    Fleet に紐づく形で、ユーザーがアクセスする際に適用されるポリシーや、ストレージの設定などを行います

以上の操作を行うことで、AppStream 2.0 を利用することが可能です。

今回は動画配信環境を題材にリソースを作成していきますが、「カスタムイメージの作成」部分で、イメージにインストールするアプリケーションを追加したり、OS の設定を変更することで、いろいろなユースケースに対応することができます。

それでは、早速はじめていきましょう !


2. Image Builder を作成する

まずは、Image Builder を作っていきます。

Image Builder は Amazon EC2 インスタンスがベースになっています。基本のマシンイメージに対して、ストリーミングしたいアプリケーションのインストールや、Windows の設定を行い、カスタムイメージを作成するために使用します。

マネジメントコンソールから AppStream 2.0 の画面を開き、「Get Started」をクリックしましょう。

クリックすると拡大します

Skip」をクリックします。

クリックすると拡大します

画面左ペインから「Images」を選択し、表示された Image builder タブをクリックします。

Launch Image builder」ボタンをクリックして、作成画面に遷移しましょう。

クリックすると拡大します

まずは、ベースとなるマシンイメージを選択しましょう。
今回は 3D モデルなどを扱うため、GPU を搭載したインスタンスの 1 つである Graphics Design Instance family に対応したイメージを選択して、「Next」をクリックします。

クリックすると拡大します

Image Builder に任意の名前を設定します。

クリックすると拡大します

Image Builder のインスタンスタイプ ( vCPU と メモリ の組み合わせのことです )を選択して、「Next」をクリックします。
※ 利用するアプリケーションの必要スペックなどに合わせて柔軟にスペックを変更することが可能です。

クリックすると拡大します

次は、ネットワークの設定です。OBS Studio や 3tene など、アプリケーションをインターネット経由でダウンロードするため、「Enable default internet access」にチェックを入れます。

加えて、Image Builder のストリーミングインスタンスが配置される VPC と サブネットを選択します。今回は簡単のために Default VPC を利用していますが、任意の VPC を利用することが可能です。

次のページで設定の確認を行い、「Launch Image builder」をクリックします。

クリックすると拡大します

Image Builder の作成には15分程度かかります、ステータス欄が Running に変わるまで待ちましょう。

作成が完了したら、カスタムイメージの作成を行なっていきます。

クリックすると拡大します


3. Image Builder を使ってカスタムイメージを作成する

3-1. Image Builder に接続する

では、先ほど作成した Image Builder に接続し、必要なアプリケーションのインストールをしていきましょう。

作成したイメージ名を選択し、「Connect」ボタンをクリックします。

クリックすると拡大します

ブラウザの新しいタブが開き、 Image Builder インスタンスの接続画面が表示されます。ここではログインオプションを選択することが可能です。

まずは、管理者権限で接続するため「Administrator」を選択します。

しばらく待つと、Windows Server のデスクトップが表示されますので、Firefox を起動しましょう。

クリックすると拡大します

3-2. アプリケーションをインストールする

ベースのマシンイメージに、利用するアプリケーションをインストールしていきます。

まずは、配信・録画ソフトウェアのOBS Studioです。起動した Firefox で OBS の公式ページ にアクセスし、インストーラをダウンロードします。
※ OBS Studio の OS 要件は Windows 10 / 11 となっており、AppStream 2.0 が利用する Windows Server での動作は保証されておりませんので、ご注意ください。

OBS Studio から引用
(クリックすると拡大します)

次に、3tene FREE もダウンロードしましょう。3tene は、 Web カメラから「顔の向き」や「まばたき」などの動きを取得するフェイストラッキングが機能があり、自分の顔の動きを 3D アバターに反映させることができます。
※ OBS Studio と同じく、3tene FREE も Windows Server での動作は保証されておりませんので、ご注意ください。


「これからVTuberを目指す方へ」

はい、僕です !!!

「3tene FREE V3」をクリックし、Windows 用のインストーラーをダウンロードしましょう。

ダウンロードが完了したら「Show all downloads」をクリックして、ダウンロードフォルダを開きます。

フォルダアイコンをクリックして、ダウンロードフォルダを開いたら、それぞれのアプリケーションをインストールしましょう。インストールフォルダなどはデフォルトのままで OK です。

3tene から引用
(クリックすると拡大します)

3-3. ストリーミングするアプリケーションの設定

ここまでの作業で、 Image Builder インスタンスに対して、ストリーミング対象の 2 つのアプリケーションをインストールすることができました。ただ、このままでは「どのアプリケーションを公開するか」の設定ができていません。

次は、ストリーミングするアプリケーションの設定をしていきましょう。

デスクトップから、「Image Assistant」を起動します。

Image Assistant を使って AppStream 2.0 で配信するアプリケーションを登録していきます。「Add App」をクリックしましょう。

配信したいアプリケーションの実行ファイルを選択します。まずは、OBS Studio を登録しましょう。

OBS Studio のインストール先フォルダ (デフォルトでは、C:\Program Files\obs-studio\bin\64bit) に移動し、「obs64」を選択して、「Open」をクリックします。

クリックすると拡大します

自動的に App Launch Settings 画面が開きます。ここでは、アプリケーションの名前やアイコンを設定することができます。Display Name が実行ファイル名の obs64 になっているので、わかりやすくするため OBS Studio に変更します。

Working Directory には OBS Studio の作業ディレクトリとして、 C:\Program Files\obs-studio\bin\64bit を設定します。

設定ができたら「Save」ボタンをクリックして、設定を保存しましょう。

クリックすると拡大します

以上で、 OBS Studio を追加することができました。同様の手順で、3tene の実行ファイルを追加していきます。

再度「Add App」をクリックし、ファイル選択画面を開きましょう。

OBS Studio と同様に、 実行ファイルを選択します。3tene のインストールフォルダ ( デフォルトでは、C:\Program Files\PLUSPLUS\3teneFREE) を開き、「3tene.exe」を選択して「Open」をクリックします。

App Launch Settings 画面が開くので、今回は特に変更せず「Save」をクリックします。

登録した 2 つのアプリケーションのアイコンが表示されていることを確認し、「Next」をクリックします。

クリックすると拡大します

Configure Apps ではアプリケーションや Windows のデフォルト設定を行うことができます。

Switch user」をクリックしましょう。

その後Template User」をクリックすると、Template User のデスクトップが開きます。ここで行った Windows の設定は共通設定として保存することが可能で、ストリーミングするアプリケーションに反映することができます。

クリックすると拡大します

今回は共通の設定は割愛しますので、Administrator 側に戻りましょう。

画面右上の「Admin Commands」をクリックし、「Switch User」を選択してください。

Administrator」をクリックして、管理者権限に戻ります。

クリックすると拡大します

先ほどは押せなかった、「Save settings」ボタンが有効化されているのでクリックしましょう。

これで、Template User で行った設定を保存することができます。

クリックすると拡大します

3-4. アプリケーションの動作確認

続いて、アプリケーションの動作確認を促されます。先ほど利用していた Administrator アカウントは、管理者権限を持っていました。

Switch User で、Test User アカウントに接続し、Administrator 権限でなくてもアプリケーションが正しく動作することを確認していきましょう。

Switch user」をクリックします。

クリックすると拡大します

Test User」をクリックし、ストリーミングアプリケーションを利用するエンドユーザーの権限で接続します。

クリックすると拡大します

デスクトップが開いたら、アプリケーションの検証を行います。

デスクトップのアイコンから開くのではなく、Image Assistant から起動する必要がありますので、まずはデスクトップの「Image Assistant」を起動します。

 

クリックすると拡大します

それぞれのアプリケーションを起動し、Test user 権限で問題なく動作するかを確認していきましょう。

OBS Studio、3tene が問題なく起動できれば OK です。
3tene では、右上の FPS (フレームレート)が 60 前後でていれば、かなり快適な状態です。

OBS Studio 画面から引用
(クリックすると拡大します)

3tene 画面から引用
(クリックすると拡大します)

以上で、Test user の権限でもアプリケーションが問題なく起動できることが確認できました。

それでは、「Switch User」をクリックして、Administrator 権限に戻りましょう。

クリックすると拡大します

テストが完了したので、 「Next」をクリックして次の設定に進みます。

クリックすると拡大します

3-5. アプリケーションの起動パフォーマンスを最適化する

次は、アプリケーションの最適化です。ここでは、Image Assistant からアプリケーションをひとつずつ実行し、起動の依存関係を確認することで、アプリケーションがすばやく起動するように、最適化を実行することができます。

Launch」ボタンをクリックしましょう。

クリックすると拡大します

すると、こちらのようなメッセージが表示され、その後で OBS Studio が起動します。
OBS Studio が完全に起動するまで待って、「Continue」をクリックしましょう。
※ 初回起動時のみメッセージが出たり、設定を行う必要があるアプリの場合、設定完了後に Continue をクリックします

OBS Studio 画面から引用
(クリックすると拡大します)

続いて 3tene が自動的に起動されるので、完全に起動したことを確認して「Continue」をクリックします。

以上で、アプリケーションの起動パフォーマンスの最適化は完了です。

3tene 画面から引用
(クリックすると拡大します)

3-6. カスタムイメージの作成

イメージ名やイメージの説明文を入力します。

作成したイメージに任意の名前をつけて、「Next」をクリックしましょう。

クリックすると拡大します

最後に「Disconnect and Create Image」をクリックします。

すると、リモートセッションが切断されて、イメージの作成が行われます。

クリックすると拡大します

マネジメントコンソールに戻り、AppStream 2.0 の「Image registry」タブを開きます。

先ほど作成したイメージの StatusPending になっているので、こちらが Available に変わるまでしばらく待ちましょう。(15 ~ 25 分ぐらいかかります)

クリックすると拡大します

Status が Available に変わったら、「Image builder」タブをクリックして、Image Builder インスタンスが Stopped となっていることを確認しましょう。
( Image Builderが起動している間、課金が発生してしまうため、停止していることを確認しています)

これで、Image Builder を使ったカスタムイメージの作成は完了です !

クリックすると拡大します


4. Fleet を作成する

続いて、このイメージを使ったアプリケーションのストリーミング環境を構築するため、フリートを作成していきます。

フリートは、ユーザーがアクセスするインスタンスの種類や、配置場所、Auto Scaling などの設定を行うための機能です。この設定に基づいて、ユーザーが実際に接続する仮想サーバーであるフリートインスタンスが起動します。

左ペインから「Fleets」を選択し、「Create fleet」ボタンをクリックします。

クリックすると拡大します

次に、フリートのタイプを選択します。

Always-On の場合は、フリートが AWS 上で常時稼働するため、AppStream 2.0 にすぐに接続し、アプリケーションを利用することができます。とても便利ですが、使用していないときも料金が発生してしまうため、たまにアプリケーションを利用する場合にはリソースがもったいないです。

On-Demand の場合は、アプリケーションを利用していないときにはフリートが停止しており、アプリケーションを利用する際にフリートが起動します。そのため、数分 (2-3 分程度 ) の起動待ち時間が発生するものの、コストを抑えながら AppStream 2.0 を利用することが可能です。
※ Elastic Fleet については、日本語環境未対応のため今回は割愛します。

ここでは On-Demand を選択して「Next」をクリックしましょう。

クリックすると拡大します

Name 欄にフリートの名前を入力します。

クリックすると拡大します

フリートのインスタンスタイプを選択します。

ここでは、「stream.graphics-design.xlarge」を選択して、「Next」をクリックしましょう。
※ スムーズに動作させるために、xlarge インスタンスタイプを選択しています。large でも動作はしますが、フェイストラッキングをする際にカクつきが目立ちしました。

クリックすると拡大します

利用するイメージを選択します。
先ほど作成したイメージを選択し、「Next」をクリックします。

クリックすると拡大します

フリートを配置する VPC を選択しましょう。
今回はデフォルトの VPC を選択し、サブネットは 2 つ以上を指定して、「Next」をクリックします。

その後表示される設定値を確認し、「Create fleet」をクリックします。

クリックすると拡大します

確認メッセージが表示されるため、チェックを入れて「Create」をクリックします。

クリックすると拡大します

Success のメッセージが表示されれば OK です。

フリートの Status 欄の表示が Starting から Running に変われば、プロビジョニングが完了です。プロビジョニングの完了までは 15 分ほどかかりますので、少し休憩しておきましょう。

クリックすると拡大します


5. Stack を作成する

次に行うのはスタックの作成です。スタックは、ユーザーがフリートインスタンスにアクセスするためのポリシーや、ストレージの設定を行うための機能です。

左ペインの Stacks を選択し、「Create Stack」をクリックします。

クリックすると拡大します

スタックの設定を行います。

Name 欄にスタックの名前を入力し、 Fleet 欄でプロビジョニング中のフリートを選択します。

クリックすると拡大します

Streaming Exprerience Settings では プロトコルを選択することができます。今回は動画の配信環境ということで、できるだけ遅延を少なくしたいため「UDP」を選択しましょう。そのほかの項目は Optional なので今回は割愛します。

画面下部の「Next」をクリックしてください。

クリックすると拡大します

次ページでは、ストレージの設定を行います。Home Folders の「Enable home folders」にチェックが入っていることを確認しましょう。ここにチェックを入れることで、Amazon S3 を永続ストレージとして使用することが可能です。(Google Drive や OneDrive を永続ストレージとして利用することもできます)

設定を確認して、「Next」をクリックします。

クリックすると拡大します

デフォルトの設定のまま、「Next」をクリックします。

クリックすると拡大します

設定値を確認し、問題なければ「Create Stack」をクリックします。

作成した Stack の Status 欄が Active に変わったら、スタックの作成は完了です。

これで、ユーザーはストリーミング環境にアクセスができるようになりました。

クリックすると拡大します

6 ~8 の手順は 後編 に続きます !


builders.flash メールメンバーへ登録することで
AWS のベストプラクティスを毎月無料でお試しいただけます

筆者プロフィール

小林 大樹
アマゾン ウェブ サービス ジャパン合同会社
ソリューションアーキテクト。

VTuber をこよなく愛するソリューションアーキテクト。普段は業種業界問わず、様々なお客様のプロダクト開発をサポートさせていただいております。悩みは推し VTuber が増えすぎて視聴時間を確保できないことです。

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する