Windows 10 など標準で利用できる PowerShell を用いて、作成した空のフォルダに、Git リモートリポジトリからのクローン、 GitHub に公開されているリポジトリからの Git サブモジュールの配置、シンボリックリンクの作成、zip のダウンロード・展開・移動、不要なファイルなどの削除の一連の処理を管理者権限で行い、 GodotEngine4 用のプロジェクトを自動的に構築するスクリプト例と結果を紹介します。

※ Windows PowerShell PSVersion 5.1.19041.6093 を使用します。
※バッチ、スクリプトは自己責任でご使用ください。
スクリプト例
以下のバッチファイルで、管理者権限で後述する setup.ps1 PowerShell スクリプトを実行します。
PowerShell スクリプトをダブルクリックで実行する方法がわからないので、バッチファイルを経由します。
参照:Powershellを楽に実行してもらうには #PowerShell – Qiita
REM 文字化けやコメントの「を」の誤認を防ぐため Shift-JIS CRLF で保存してください。
@echo off
REM 管理者かどうか判定し、違うなら再起動(管理者として)
net session >nul 2>&1
if %errorLevel% neq 0 (
echo 管理者権限で再実行します...
powershell -Command "Start-Process '%~f0' -Verb runAs"
exit /b
)
echo 管理者として実行されています。
echo setup.ps1 を実行しています…
powershell -NoProfile -ExecutionPolicy Unrestricted -File "%~dp0setup.ps1"
echo 完了しました!
pause > nul
exit
以下は、 Git リモートリポジトリや GitHub などのインターネットのサイトからダウンロードして、GodotEngine4 用の自身のプロジェクトを、自動的に構築する PowerShell スクリプトの例です。
処理の説明はコメントを参照してください。
git clone によるクローン元のリモートリポジトリは PC 内(例では G:\Dev\remotes\godot\SakuraCrowdGodotLib)を指していますが、これを GitHub で公開しているリポジトリなどに変更すれば、インターネットが利用できるさまざまな環境で使えると思います。
最後の行の Install-GodotGitPlugin は、その直前に定義した同じ名前の関数を呼び出しています。
関数にしたのは、スコープを分けて、パスを格納する変数をローカルで扱うためです。
# クローンを作成する空のフォルダを作成します。
Write-Host "Creating Project Folder..."
$projectDir = "$PSScriptRoot\project"
if (-Not (Test-Path $projectDir)) {
New-Item -Path $projectDir -ItemType Directory | Out-Null
}
# リモートリポジトリからクローンを作成します。
Write-Host "git clone..."
git clone G:\Dev\remotes\godot\SakuraCrowdGodotLib $projectDir
# クローンを作成したフォルダに移動します。
Set-Location $projectDir
# サブモジュールを取得します。
Write-Host "git submodule init/update..."
git submodule init
git submodule update
# シンボリックリンクの設定を有効にします。
Write-Host "git config --local core.symlinks true..."
git config --local core.symlinks true
# シンボリックリンクを個別に作成します。(クローン時の同名のファイルは削除してから行います)
Write-Host "creating symbolic link..."
Remove-Item -Path "addons\gut" -Force
git checkout --force main -- addons/gut
# GitHub の Releases ページで公開されているアドオンをダウンロード・解凍・配置します。
## godot-git-plugin-v3.1.1
Write-Host "installing godot-git-plugin-v3.1.1 ..."
function Install-GodotGitPlugin{
Write-Host " downloading..."
$addonsPath = Join-Path -Path $projectDir -ChildPath "addons"
# 指定した URL から zip ファイルをダウンロードして、指定したフォルダに保存します。
# 指定したフォルダがない場合は作成します。
$zipURL = "https://github.com/godotengine/godot-git-plugin/releases/download/v3.1.1/godot-git-plugin-v3.1.1.zip"
$zipFileName = "godot-git-plugin-v3.1.1"
$zipFileNameExt = $zipFileName + ".zip"
try {
Invoke-WebRequest -Uri $zipURL -OutFile $zipFileNameExt
} catch {
Write-Host " error!: download failed"
throw "Download failed for $zipURL"
}
if (-Not (Test-Path -Path $addonsPath)) {
New-Item -ItemType Directory -Path $addonsPath | Out-Null
}
Write-Host " expanding archive..."
# zip ファイルを解凍します。
$expandArchivePath = Join-Path -Path $projectDir -ChildPath $zipFileNameExt
Expand-Archive -Path $expandArchivePath -DestinationPath $addonsPath -Force
Write-Host " move plugin folder..."
# 解凍した中から必要なフォルダ($pluginPath)をプロジェクトの addons\ に配置します。
$pluginPath = Join-Path -Path $zipFileName -ChildPath "addons\godot-git-plugin"
$moveSrcPath = Join-Path -Path $addonsPath -ChildPath $pluginPath
$moveDstPath = Join-Path -Path $addonsPath -ChildPath "godot-git-plugin"
Move-Item -Path $moveSrcPath -Destination $moveDstPath -Force
Write-Host " delete plugin zip folder..."
# 解凍した不要な部分のフォルダを削除します。
$removePath = Join-Path -Path $addonsPath -ChildPath $zipFileName
Remove-Item -Path $removePath -Recurse -Force
# 解凍元の zip ファイルを削除します。
Remove-Item -Path $expandArchivePath -Force
}
Install-GodotGitPlugin
上記のスクリプトでは、GodotEngine4 エディタ上で Git 管理を行うアドオン godot-git-plugin v3.1.1 の zip ファイルを GitHub のリポジトリの Releases ページからダウンロードします。
スクリプトの実行と結果
PowerShell のファイルを .ps1 拡張子で保存したものをバッチファイルから呼び出して実行します。
run_setup.bat をダブルクリックで起動すると、管理者権限で起動するかを UAC (ユーザアカウント制御)の画面で尋ねられるので同意して進めると、setup.ps1 が管理者権限で呼び出されます。
管理者権限は、チェックアウト時に Git でシンボリックリンクを作成するために必要です。

Invoke-WebRequest コマンドレットで、zip ファイルをダウンロードする際には、青色のメッセージ欄が表示されました。

数秒で処理が完了しました。何かキーを押すとコマンドプロンプトは閉じます。

C:\Windows\system32>REM 文字化けやコメントの「を」の誤認を防ぐため Shift-JIS CRLF で保存してください。
管理者として実行されています。 setup.ps1 を実行しています… Creating Project Folder... git clone... Cloning into 'G:\Dev\Godot4GD\SakuraCrowd\tmp\5\project'... done.
git submodule init/update...
Submodule 'third_party/Gut' (https://github.com/sakura-crowd/Gut.git) registered for path 'third_party/Gut'
Cloning into 'G:/Dev/Godot4GD/SakuraCrowd/tmp/5/project/third_party/Gut'...
Submodule path 'third_party/Gut': checked out '5043bfe1f3bc6e32ba3dd181ee8b99fe088c70a4'
git config --local core.symlinks true...
creating symbolic link...
installing godot-git-plugin-v3.1.1 ...
downloading...
expanding archive...
move plugin folder...
delete plugin zip folder...
完了しました!
処理ごとの関連記事
以下は、前述したバッチ、スクリプトの処理に関する記事です。
作成されたプロジェクトフォルダの確認
スクリプトを実行すると project フォルダが同じフォルダ内に作成されています。

作成された project フォルダ内に、リモートリポジトリのプロジェクトフォルダの構成がクローンされています。

外部のリポジトリをも、プロジェクト内にサブモジュールとして配置されています。

そのサブモジュールのアドオン用のフォルダへのシンボリックリンクも、作成されています。
シンボリックリンクの作成は、リンク先がないと失敗してただのファイルとして作成されるので、リンク先であるサブモジュールを取得したあとに、その前に作成が失敗した同名のファイルを削除してから再びチェックアウトして、シンボリックリンクとして作成しています。
※シンボリックリンクは管理者権限がないと作成できません。

コマンドプロンプトの dir コマンドで SYMLINKD と表示され、シンボリックリンクであることを確認できます。
シンボリックリンクの名前(例では gut)のあとには [] 内にリンク先の相対パスも表示されています。
Microsoft Windows [Version 10.0.19045.6216]
(c) Microsoft Corporation. All rights reserved.
G:\Dev\Godot4GD\SakuraCrowd\tmp\5\project\addons>dir
ドライブ G のボリューム ラベルは ボリューム です
ボリューム シリアル番号は 9691-AE5E です
G:\Dev\Godot4GD\SakuraCrowd\tmp\5\project\addons のディレクトリ
2025/08/23 11:57 <DIR> .
2025/08/23 11:57 <DIR> ..
2025/08/23 11:57 <DIR> godot-git-plugin
2025/08/23 11:57 <SYMLINKD> gut [..\third_party\Gut\addons\gut]
0 個のファイル 0 バイト
4 個のディレクトリ 2,402,432,716,800 バイトの空き領域
G:\Dev\Godot4GD\SakuraCrowd\tmp\5\project\addons>
ダウンロードした zip ファイルも展開されて、必要なアドオンの部分が addons フォルダに配置されました。

まとめ
Windows 10 など標準で利用できる PowerShell を用いて、作成した空のフォルダに、Git リモートリポジトリからのクローン、 GitHub に公開されているリポジトリからの Git サブモジュールの配置、シンボリックリンクの作成、zip のダウンロード・展開・移動、不要なファイルなどの削除の一連の処理を管理者権限で行い、 GodotEngine4 用のプロジェクトを自動的に構築するスクリプト例と結果を紹介します。
参照サイト Thank You!
- PowerShell とは – PowerShell | Microsoft Learn
- Powershellを楽に実行してもらうには #PowerShell – Qiita
- Git
- Git – サブモジュール
- Godot Engine – 無料でオープンソースの2D・3Dゲームエンジン
- GitHub Japan | GitHub
- Release Godot VCS Git Plugin v3.1.1 · godotengine/godot-git-plugin
記事一覧 → Compota-Soft-Press
コメント