OBSを使ってゲーム実況画面にスコアなどを表示してみよう（その１）

:::note info
著作権情報　THE IDOLM@STER™& ©Bandai Namco Entertainment Inc.
:::

https://cinderella.idolmaster.jp/sl-stage/  

![THE iDOLM@STER Cinderella Girls_ Starlight Stage  [Master_Master+].gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/3ca07899-f7d2-5202-34cf-d5cd50a8a223.gif)

# OBSとは？
## Open Broadcaster Software

https://obsproject.com/ja

Youtubeなどでゲーム実況を行う定番のソフトウェアです。
今回はこのソフトウェアを使って面白いものを作りたいのでダウンロードしてインストールしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/6ecc7bdb-b718-7fea-68e7-a0347877b1a3.png)

上の画面のようにスマートフォンのゲームもキャプチャーデバイスなどを購入すれば追加することができます。

## 配信オーバーレイ
けれども少し画面が寂しい気がするので何か画面に要素を加えたいと思います。
一般的にそのようなものは「オーバレイ(Overlay)」と呼ばれています。
OBSでは動画や画像、ウェブページなどを追加することができます。

## OBSのウェブソース表示機能
ここではウェブページを表示させる機能についてもっと詳しく見てみましょう。
例えばYoutubeコメントを表示したいときは次のようにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/94057e44-2df6-8164-14d3-a36ab8a578bf.png)
上記画像の右上三つ点々があるところをクリックしてみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/18a976ab-ab94-84e7-996b-523a3ec22958.png)
チャットをポップアウトをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/0cb49a58-7684-9c58-5f35-20ca78244d9b.png)
するとこのようなポップアウトが表示されます。
上のアドレスバーの内容をコピーします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/d1e21ec1-ece5-e06f-3505-800000abc33d.png)
OBSを開きます。ソースを追加でブラウザを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/e0e30a67-7d3b-b6c1-1b2f-7788968ff85e.png)
OKボタンを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/72382d7e-8cad-4dfb-5682-61e8579732aa.png)
すると次のような画面が現れると思います。
URLの欄に先ほどコピーしたURLを追加してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/81239156-5a43-e2c7-c64f-a88c85d922f4.png)
今回は実況をスタートしていないのでエラー画面が出ます。
生放送をしている最中の場合は、正しく表示されます。
カスタムCSSという箇所で独自のCSSをウェブページに適応することができます。

## Youtube Data API
YoutubeはYoutube Data APIという機能を提供しています。
APIというものはパソコンでデータなどをわかりやすい形で提供したり、サービスを提供する機能のような少し難しい言葉です。
今回、この機能は使いませんが、このAPIというものを利用すると先ほどの生放送中のコメント欄のURLを手作業ではなく自動的に取得したり、コメントを取得したりできます。

:::note info
https://github.com/obsproject/obs-websocket
:::

## 自分のパソコンの保存されているWEBページも表示できる
メモ帳を起動します。
下をコピーして、名前を付けて保存。「index.html」という名前で保存します。

```html index.html
<html><head></head><body>こんにちわ世界</body></html>
```

ではそれを開いてみましょう。ダブルクリックすると次のような画面が表示されるはずです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/03f2b2aa-c213-b8ce-d1df-dab21268385d.png)

こんにちは世界、hello worldというのはプログラミング言語のチュートリアルなどでよく使われる言葉で特に意味はありません。好きな言葉に変えたりして遊んでみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/143f6de2-dff1-86da-e22b-5c108c8b999b.png)
OBSのブラウザをダブルクリックしてローカルファイルという箇所を一回クリックします。
するとチェックのようなマークが付きます、そして参照をクリックするとファイルを選択する画面が現れるので先ほど作成した「index.html」を選択してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/026ba90d-c156-a12b-c864-730d31f48007.png)

あれ？何も表示されていませんね。けれども安心してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/ae12f970-08d2-8975-2a5a-f283f34b8465.png)
ソース追加から色ソースを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/c0184769-e5cd-97b4-8447-9b82ffec305b.png)
OKを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/099cd4bc-6c30-d14f-0b74-87458228fc9b.png)
色ソースをクリックしたら下にドラッグして次のように順番を変えましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/dcd785f5-1e85-d4f2-13ea-23069a4e6be5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/df9b3832-355b-3e50-6b10-db2738793c3d.png)
何か表示されていますね。

小さく見えないので拡大してみます。(これはパソコンの画面の大きさによってこうなったりならなかったりするので拡大は必要ない場合もあります)

## パソコンと日本語
![https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_423236_3b56f309-1f99-3e80-515a-34bcffb5f9c8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/f1aa9034-9428-3028-f738-c029b36229cd.jpeg)
おっと！なんか変な文字列が表示されていますね。何故でしょうか？
とりあえず保存した「index.html」をメモ帳で再度開きましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/b6bcfd39-f336-ecb8-9a37-9f8b43313fe4.png)
ファイル＞名前を付けて保存を選びます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/9e9459ba-00ed-9136-28d1-af7a034c91b2.png)
エンコードという下矢印のついているところをクリックしてANSIというものを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/eddc2033-f42a-1c23-a7c2-4b832da15a1c.png)
再度保存します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/6cad3899-764c-256b-f7e9-cb442d5302c2.png)
ソースからブラウザを選択し。現在のページのキャッシュを更新を押してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/dbe6a264-7888-cef5-33ed-4567185f0158.png)
きちんと表示されています。
何故こんなことが起きたのでしょうか？
実はパソコンで日本語を扱うときには注意が必要なことがあるのです。

## 不思議な文字列！？
ウェブブラウザを開きます。「こんにちわ世界」と検索してみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/7cda517f-45b7-06e6-bfe8-69262c97c2d1.png)

すると下のような画面が出てきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/73730972-b78e-baed-00f5-cfdd0ba6145d.png)

それではメモ帳を開いて、上のアドレスバーをコピーして貼り付けてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/58c28767-e149-feb3-a390-ce1580eeb162.png)

```HTTP URI.ENCODING
https://www.google.com/search?q=%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E4%B8%96%E7%95%8C
```
不思議な文字列が現れましたね。

パソコンとインターネットは英語を話す国で作られました。
英語はAからZとその小文字、数字、記号だけです。
日本語はひらがな、かたかな、漢字があります。
その昔、パソコンのメモリやハードディスクの容量がすごく小さいとき、日本語を扱うことはすごく難しかったのです。
その名残でパソコンは基本的に英語は扱うのが得意だけど、日本語を扱うのは少し苦手で注意が必要なのです。

# 開発環境を整えよう
## Visual Studio Codeのインストール
今まではメモ帳を使用してきました。けれども何か面白いことをしようとするとメモ帳では少し物足りなくって来ます。
そこでメモ帳をグレードアップしたようなアプリを入れてみましょう。今回はVisual Studio Codeというアプリを使用します。

https://azure.microsoft.com/ja-jp/products/visual-studio-code

上のリンクのアプリをダウンロードしてインストールしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/5cb8f635-978e-bf13-9e6a-084f86f2216a.png)
最初は英語なのでわかりにくいので左の四角形が４つあって右の四角形が少し離れているボタンを押して検索ボックスに「Japanese Language Pack for Visual Studio Code」と入れて拡張機能をインストールします。再起動しましょう。日本語化されているはずです。

## pythonのインストール
pythonというのはわかりやすくいろいろなことができます。例えばWEBページ操作を自動化、すごく大きなデータをグラフにまとめたり、機械学習など様々な用途に使用されています。
色々な人が使っているので同じような用途で使用したい場合、その人の書いたコードを参考にして自分の思い通りのものに書き換えたり、便利な機能を詰め込んだパッケージというものが利用できたりします。

https://www.python.org/

上記リンクのアプリをダウンロードしてインストールしてください。

## node.jsのインストール
node.jsというのはWEBページやスマートフォンアプリなどを作る際に便利なアプリです。
すごく格好のいいデザインのウェブページが簡単につくれます。
その昔WEBページはhtmlやcssといったもので記述していました。しかし例えばカッコいいデザインを作るには一から作る必要がありました。
このアプリではそういったカッコいいデザインが部品として利用でき、内容もカスタマイズすることができます。
この部品化という言葉は最近のアプリ開発では大事な言葉なのでできれば覚えておいてください。

https://nodejs.org/en/

上記リンクのアプリをダウンロードしてインストールしてください。

## github desktopのインストール
アプリ開発のときにはバージョン管理というものを使用します。
これは例えば修正したけど昔直した不具合が再発したなどの時に変更を消したり、とある修正のいいところだけを選択して反映できるアプリです。
コミットという機能がありそこに日本語でコメントを残すことができます。
例えば「ADD:ここは何々を修正しました。」などです。
一人で開発するときにも便利ですが、チームなどでいろいろな人と開発するとき、同じ個所をそれぞれ別の修正をしてしてしまうと混乱しますよね。そうなったときにも自動的に不一致を検出してくれたりしてくれる優れものです。

まずはgithubに登録しましょう。

https://github.co.jp/

その次にgithub desktopをインストールします。

https://desktop.github.com/download/

上記リンクのアプリをダウンロードしてインストールしてください。
使い慣れるまではなるべく頻繁にコミットメッセージを書いてコミットすることをお勧めします。

## PowerShellの設定
**難しいです。わからない場合はスキップしてください**

https://apps.microsoft.com/detail/9n0dx20hk701?cid=msft_web_chart&hl=ja-jp&gl=JP

まず上記リンクのアプリをダウンロードしてインストールしてください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/ba3e8396-30cb-85ca-0ed7-7f841689bef6.png)
Windows PowerShellを右クリックして管理者として実行を押します。

起動したら次のコマンドを実行します。
```powershell Set-ExecutionPolicy.ps1
Set-ExecutionPolicy RemoteSigned
```

おうちのパソコンのセキュリティの設定によってはこのコマンドが実行できない。そもそも管理者として実行をすることができないことがあると思います。その際はそのパソコンを管理している人にお願いしてください。できない場合はあきらめてもいいです。

## .*envのインストール
**難しいです。わからない場合はスキップしてください**
プログラミング言語アプリには便利な機能を詰め込んだパッケージというものがあることは上で述べました。
そのパッケージは実は最新のプログラミング言語アプリのバージョンでは動かないことがあります。
その時どうしましょう？そんな時に便利なのがこのアプリです。

# プロジェクトを保存するときの注意点
それでは実際に面白いものを作ってみましょう。
ただし保存する場所は少し注意しましょう。
慣れるまでは**日本語や英語でも空白や記号などを含めるのはなるべく避ける**ことをお勧めします。

* 良くない例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/01a0da72-03b1-552a-a10b-2e63f7fb3d47.png)

* 良い例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/6563c956-1196-e18d-8758-f264808ae94e.png)

これはパスというものが例えば日本語や英語でも空白や記号がある場合はパソコンが別の命令と勘違いしてしまうことがあるからです。パソコンが日本語を扱うのが苦手であるという特徴がここにも表れてきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/9ad1cb3c-8ae8-cd27-e468-4304a64f376b.png)
これはフルパスというものにも言えるので理想はすべて英語で空白や記号がない状態をお勧めします。

# githubでレポジトリを作成してクローンする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/05bfe0c5-5188-4db2-0a9b-4ab8002fdfeb.png)
ダッシューボードでNEWをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/21be21df-e729-1fe6-17ce-50ff365526a7.png)

PublicとPrivateはそのレポジトリが他人に見えるか見えないかを制御しています。
最初の段階ではPrivateレポジトリで練習することをお勧めします。

Create repositoryをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/daa45a2b-702e-41a8-f1e8-b07d26182476.png)

画面縦中央の青色の箇所のSet up in Desktopをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/fa596878-9a18-7648-4805-25f1b98ed220.png)

レポジトリをクローンします。
Local Pathに空白や日本語がないことを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/782c6daf-9a46-c2ff-d130-ae363f54b5b6.png)

.gitフォルダが作成されていれば成功です。

# vs codeでフォルダを開く
codeのファイル＞ワークスペースを名前を付けて保存を押します。
適当な名前を付けて(私はHOGEとしました)、適当な場所に保存します。
そのあとフォルダを開くで先ほどクローンしたフォルダを選択します。

# .gitignoreで見られては困るファイルを管理対象外にする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/137ed88e-8246-e6cd-7c29-e848de185c09.png)
ここで.gitignoreの説明をします。これは例えばパスワードを設定しているファイルなどを管理対象外にする設定です。
ソース管理でファイルを右クリックすることで設定できます。

:::note alert
管理対象外になるということはファイル削除などを行っても復元はできないということになります。
大事なファイルは誤って削除したりしないように注意しましょう。
:::


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/9eae38cc-c88d-db84-7e24-675d4d21f880.png)

このように薄く表示されるようになれば成功です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/1a87abb1-8a27-50f7-daa4-fdd433cb34b6.png)

# コミットしてみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/ea8a3781-ce57-2f3e-0b84-b1fe0e8119a8.png)
コミットはゲームでいうセーブポイントのようなものです。後で見返したときにわかりやすい文章を書くことが大切です。

:::note info
Github Copilotというサービスを購入すると右上のぴかぴかマークをクリックすると勝手に作ってくれて便利です。
https://github.com/features/copilot
:::


# Reactプロジェクトを作成して実行する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/e0291b72-9aff-fe56-9bad-7c85528fcce4.png)
ターミナルを起動します。

以下を実行します。
```powershell init.ps1
npx create-react-app front --template typescript
```
npx create-react-app [アプリの名前] --template typescript
という構成です。アプリの名前(今回はfrontという名前にしました。)以外はおまじないと考えましょう。

生成が成功したら以下のコマンドを実行します。
```powershell カレントディレクトリ変更.ps1
cd front
```
cdコマンドはカレントディレクトリの変更を行います。

https://learn.microsoft.com/ja-jp/powershell/scripting/samples/managing-current-location?view=powershell-7.4

```powershell reactアプリ起動.ps1
npm start
```

以下の画面がデフォルトのブラウザで立ち上がれば成功です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/259df075-74d0-899e-0ae3-fc92eb45ee73.png)

ブラウザのアドレスバーに注目してください。
「localhost:3000」と表示されているはずです。

# OBSのブラウザで「localhost:3000」を表示させる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/de0ad133-3a65-4b55-109a-ac77895468c5.png)
アドレスをコピーしURL欄に「 http://localhost:3000/ 」とコピペします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/30988ccc-cf57-6f86-bc49-f86a71898e65.png)
表示されていることを確認します。

この実行中のアプリはブラウザなどのタブを閉じても実行したままになっています。
終了するにはコントロールキーとCを同時押しします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/7cbcebd8-0911-981d-bc7e-7abc36de303c.png)
こうなれば終了できています。OBSには表示が続いていますが、これはキャッシュクリアすれば消えます。

# Pythonでのサーバアプリ生成と起動
ワークスペースのルートディレクトリでターミナルを開きます。
```powershell python仮想環境を作る.ps1
python -m venv .venv
```
**ここからの作業は慎重に行ってください**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/1924abcf-6a6b-103b-1ca8-06305342a44c.png)
.venv/Scriptsを右クリック。ターミナルを開きます。
```powershell 仮想環境に入る.ps1
.\activate
```
すると次のようになっているはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/bd7df604-3aa3-a35c-0bfb-47784bf06a19.png)
このようになっていない場合、以下のコマンドはグローバルの環境に変更を加えるので**落ち着いて(.venv)が先頭に表示されているか必ず確認してください。**
```powershell パッケージをインストール.ps1
pip install alembic
pip install fastapi
pip install "uvicorn[standard]"
```
(.venv)にインストールされたパッケージリストを書きだしてから仮想環境から抜けます。
```powershell パッケージリストを書き出して仮想環境から抜ける.ps1
pip freeze > ..\..\requirements.txt
deactivate
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/eaa6c8fe-a8d3-f232-a8eb-6822b63f93e2.png)
このように**今度は(.venv)が先頭から消えていることを確認してください。**

:::note info
なんか難しいと感じたら
Python Environment Managerという拡張機能があります。お試しあれ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/1bbb59cc-4f8b-09c4-7722-0ac9ffb9b5f4.png)
:::

## FastApiアプリを作る
次のディレクトリ構造になるようにbackフォルダの下にappフォルダを作ってmain.pyファイルを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/94c51bdf-fe76-e6cb-f3ba-add953417227.png)


main.pyに公式ドキュメントのサンプルをコピペします。
```python back\app\main.py
from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}
```

## デフォルトのPython実行ファイルを指定してあげる
すると画面上ではこうなっています。この状態では実行できません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/9c207c70-1823-f8c3-b280-3edb65e93983.png)

問題を解決しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/9989c6a4-be74-b3a6-b04d-e5b572180af4.png)
ウインドウ右下のここをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/89bbe7dd-752d-1a20-1186-96e44d8eff17.png)
おすすめをクリック

ただこのやり方はGUI操作なので操作をミスったときの場合を考えてcodeの設定を変えちゃいましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/09b2bd01-d502-734f-8010-4df5ed49e9e3.png)

ワークスペースのルートディレクトリに.vscodeフォルダを作ってsettings.jsonファイルを作成します。次の内容をコピペして保存してください。

```json .vscode/settings.json
{
    "python.defaultInterpreterPath": "${workspaceFolder}/.venv/Scripts/python.exe"
}
```

そうすればGUI操作を例えばこのようにミスったとき、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/abe5d5c3-b687-f311-cfcb-3522ce067bbb.png)
この歯車みたいなのを押すと修正することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/5937f803-54d8-0b14-b717-310fe79182c8.png)

## .gitignoreにフォルダごと入れてあげる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/60a74a84-7c01-4667-706f-a5f21e491c99.png)

```config .gitignore
パスワードとか漏れちゃいけないもの.env
hoge.code-workspace
.vscode
```

## FastApiを起動する
appフォルダを右クリックしてターミナルを開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/6f867507-6e72-0025-c533-8a07978037c9.png)

公式ドキュメントに通りにコマンドをコピペします。
```powershell ホットリロード.ps1
uvicorn main:app --reload
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/24970177-6321-c105-e154-eab0a72ec22e.png)
こんな感じになれば成功です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/368ef1fd-a39f-26c4-cfae-0bbe5725afda.png)
コントロールキーを押しながらこのURLっぽいのをクリックすればデフォルトのブラウザで次のような画面が出てくるはずです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/5b3ecab9-a040-f5a0-97b5-2ba23035eb9a.png)

ブラウザのアドレスバーに以下のアドレスを入力します。
```http URI.docs
http://127.0.0.1:8000/docs
```

こんな画面が出てきます。しばらく遊びましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/b636e367-f798-f02e-151e-228c561c57f0.png)

ブラウザのアドレスバーに以下のアドレスを入力します。
```http URI.redocs
http://127.0.0.1:8000/redocs
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/19f4a4ad-a0bb-bc83-9b8e-b362343de9f7.png)
とりあえずダウンロードは押してしまう癖があります。押しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/423236/ddc40b2d-aebf-73ad-7db3-d9b44a4a57dc.png)
こんなファイルがダウンロードできました。何かに使えるといいんですけどね。例えばAPIからフロントのコードとか、逆にフロントからAPIコードとかを自動的に作成できれば、すごく便利なんじゃないかなとは思います。
今回は使わないので削除しちゃいましょう。

# 準備は整いました、さあ大海原に漕ぎ出しましょう！
これでプロジェクトのひな型は作成できました。
ここからは自由にFastApi、Reactを使ってあなたの自由な発想で面白いものを作ってみましょう。

恐らくつまづくであろう箇所に関して補助的なドキュメントはおいておきますね。
* CORSについて

https://developer.mozilla.org/ja/docs/Web/HTTP/CORS

https://fastapi.tiangolo.com/ja/tutorial/cors/#corsmiddleware

https://qiita.com/game4967/items/87e8a514a0a96e4b48e2


* 今回使用したソースコードは以下においてあります

https://github.com/Magiqych/FastAPI-React


明日投稿予定の[OBSを使ってゲーム実況画面にスコアなどを表示してみよう(その2)](https://qiita.com/Magiqych/private/1e65b7b884e425af6959)ではより実践的な内容について解説します。
興味があれば読んでみてくださいね。