「初心者」プロジェクションマッピングの練習

# 初めに
プロジェクションマッピングをやってみたい！
何を使ってどんなソフト使えば良いのかわからない。


# マッピングソフト
プロジェクションマッピングについて調べてみたところ、さまざまなソフトが見つかりました。
その中で、最もメジャーでチュートリアル動画が公開されているものを選びたいと考えました。
調べた結果、特に分かりやすかったソフトが「MadMapper」でした。
チュートリアル動画は「ぎまパパチャンネル」がとても分かりやすく、理解しやすかったです！

https://www.youtube.com/@gimapapa

プロジェクションマッピング 作り方の再生リスト

https://www.youtube.com/watch?v=USxcetEf48U&list=PLXOlajfvHfUSS6peXR6YDgcisBJNM3cmS


# 今回の制約
マッピングソフトとして「MadMapper」を使用することが決定しましたが、今回のプロジェクションにはいくつかの制約があります。
プロジェクションする元の映像は別のアプリケーションで作成されており、MadMapperに取り込むためには何らかの方法で映像を入力する必要があります。

MadMapperは、他のアプリケーションからのメモリ間映像共有プロトコルである[Spout(windows)](https://spout.zeal.co/)や[syphon(Mac)](https://syphon.github.io/)に対応しています。
しかし、今回の映像元アプリケーションはこれらに対応していないため、そのまま取り込むことができません。

そのため、映像元の画面をキャプチャしてMadMapperに入力する方法を検討する必要があります。

# 画面キャプチャソフト


アプリの画面のみをソフトへ送信することを条件に、さまざまな候補を調査・検証しました。  

- **[XSplit VCam](https://www.xsplit.com/ja)**  
  無料版を使用できますが、60日後には購入が必要になります。  

- **[ManyCam](https://manycam.com/?lang=ja)**  
  無料版では会社のロゴが表示されてしまうため、実用が難しい。  

- **ゲームバー（Windows）**  
  操作が複雑で、スクリプトによる制御ができないため運用が困難。  

- **[NDI Tools](https://tricaster.jp/ndi-central/ndi-tools/)**  
  画面全体や一部のキャプチャは可能ですが、アプリのウィンドウのみを送信する機能がありません。  

- **[OBS Studio](https://obsproject.com/ja)**  
  条件に適した機能を備えていますが、手動操作が必要となります。  

これらの検証結果から、**OBS Studio**を使用し、アプリをコマンドラインから制御できるかどうかを試してみることにしました。  

# 映像の流し込みの流れ

映像（アプリ）→obs studio（Virtural Camera）→Madmapper
って感じでプロジェクションをします！

# コマンドライン
obs studio のコマンドラインは[これを参考に](https://sugiyamatatsuya.com/obs-studio%E3%82%92%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%A7%E5%AE%9F%E8%A1%8C/)これでまずは、Virtural Cameraがon状態で起動は出来そう。
先ほどのサイトにもかいてあるけど。obs Stadioをコマンドラインで起動する際にはフルパスで
動かすと下記のエラーが出る。なのでexeのある所に移動してから動かさないといけない。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37068/68452dab-c4d9-e348-aacb-cb09ebb96c2b.png)

MadMapperについては、exeとプロジェクトファイルのパスを渡せば出来ました。
```
@echo off

REM MadMapperのパス
set MADMAPPER_PATH="C:\Program Files\MadMapper 5.6.6\MadMapper.exe"
REM MadMapperのプロジェクトパス
set PROJECT_PATH="C:\test.mad"  


REM OBS Stuidoのexeのパスに移動して起動
cd "C:\Program Files\obs-studio\bin\64bit"
start /min "" obs64.exe --startvirtualcam

REM MadMapperをプロジェクトとともに起動
start "" %MADMAPPER_PATH% %PROJECT_PATH%

exit

```
# MadMapperの設定

MadMapperについては、プロジェクションの設定したあとOutputの先を
Full Screen Modeにしないと行けないんのですが設定は

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37068/ca3f98be-c1a9-a208-5890-589a6760ed7e.png)

Tool→PreferencesのStartupの
Fullscreen when opening a project at startup
にチェック入れてついでに最小化で起動して欲しいので
Always Minimize at startup
にもチェック入れておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37068/60879623-b0fb-ca30-136c-d64bd5ce82ea.png)


# 最後に
MadMapperの設定等々「ぎまパパチャンネル」のyoutube見れば出来ますし
マスクのの方法もポチポチとすればできます

こんな感じで家のキッチンでプロジェクション出来ています。

https://x.com/kumi0708/status/1881952785706664437

MadMapperで台形補正の設定して
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37068/f3b7816f-58db-98ff-b60d-3f2cfc112caa.png)

何もしないと今感じで表示されてしまうのを
![2025-01-22_15-22-08_958.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37068/ac9c363d-74c7-9bab-bd0a-6a1f694894b1.png)

ばっちり綺麗に台形補正
![2025-01-22_15-20-04_753.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37068/8bbdcb12-ba68-acd1-a399-b8decfbafe68.png)