Skip to content

Instantly share code, notes, and snippets.

@chigirits
Last active January 29, 2022 17:29
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save chigirits/55d6eed4396ed5da64878af2b43111ed to your computer and use it in GitHub Desktop.
Save chigirits/55d6eed4396ed5da64878af2b43111ed to your computer and use it in GitHub Desktop.

VRChatのスクショのFOVを調整するやつ

VRChatの標準カメラ(FOV=60)で撮影すると、周辺部がにゅ~んと伸びてしまいがちなので、それを調整するためのバッチファイルを書いてみました。

※2021年11月のアップデート以降、カメラのFOVが調整可能になりました。FOVがデフォルトから変更している状態で撮影した場合は正常に補正できませんのでご注意ください。

画像左:Before / 右:After

セットアップ手順

  1. 添付のバッチファイル vrcss-fov50.bat をダウンロードして適当な場所に置く(vrcss-fov50.bat の右側の Raw ボタンを右クリックしてリンク先を保存するか、ページ右上の Download ZIP からアーカイブをダウンロードして解凍)
  2. ImageMagick公式ダウンロードページ から ImageMagick-7.1.0-4-portable-Q16-x64.zip をダウンロードして解凍
  3. 解凍したフォルダを ImageMagick にリネームしてドキュメントフォルダ(C:\Users\xxxxx\Documents)の中またはお好みの場所に置く。ドキュメントフォルダの場所をカスタマイズしている場合や、別の場所に置いた場合は、バッチファイル3行目の %USERPROFILE%\Documents の部分を置き場所のパスに書き換える(変数の値がフォルダ内の convert.exe のパスを指すようにしてください)。
  4. バッチファイルの2行目にFOV設定があるので、必要に応じて調整する

使い方

  • 変換したい画像ファイルをバッチファイルに対してDnDすると、変換された画像が自動的に保存されます(ファイル名末尾が .fov50.png のようになります)
  • クリップボードに画像をコピーした状態でバッチファイルをダブルクリックして開くと、変換された画像がクリップボードに上書きされます(複数回実行すると効果がかかりすぎてしまうため注意)

注意点

  • アバターギミックとして組み込む拡張カメラやワールド設置カメラを用いて撮影した写真は、FOVが標準のものと異なる場合がありますので、正常に変換できないことがあります。
  • 中央部が膨張したようになるため、背景に直線を多く含む場合など、画像によっては適さないことがあります。

ライセンス

本バッチファイル自体のライセンスはCC0です。 ImageMagick のライセンス は別途ご確認ください。

@echo off
set FOV=50
set IMAGEMAGICK="%USERPROFILE%\Documents\ImageMagick\convert.EXE"
for /f "usebackq delims=" %%A in (`powershell -command "%FOV%/60"`) do set K=%%A
for /f "usebackq delims=" %%A in (`powershell -command "((%K%-%K%*%K%*%K%)/6).ToString('0.0000000')"`) do set K2=%%A
for /f "usebackq delims=" %%A in (`powershell -command "%K%.ToString('0.0000000')"`) do set K4=%%A
setlocal
if "%~1" == "" (
echo Converting image in clipboard
%IMAGEMAGICK% clipboard: -distort barrel "0 %K2% 0 %K4%" clipboard: || pause
) else (
for %%I in (%*) do call :convert %%I
pause
)
endlocal
exit /b
:convert
set INFILE="%~1"
set OUTFILE="%~d1%~p1%~n1.fov%FOV%%~x1"
echo IN: %INFILE%
echo OUT: %OUTFILE%
echo;
%IMAGEMAGICK% %INFILE% -distort barrel "0 %K2% 0 %K4%" %OUTFILE%
@aiya000
Copy link

aiya000 commented Jan 29, 2022

WSL上でしたかったから、コア部分をパクってみました ><
(zsh用)

$ fov=50 && k=$((fov / 60.0)) && k2=$(((k - k * k * k) / 6.0)) && convert -distort barrel "0 $k2 0 $k" input.png output.png

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment