了解した。
「ローカルでまず完成させる」という方針なら、IPC(Plugin ↔ Server の通信)に必要なものは 最小構成で十分。
ここでは、あなたの現在の UI OS(panel / parameter_editor / chunk_selector)と TerrainKernel を 正しく接続するために必要な IPC の“最低限セット”をまとめておくね。
🌟 ローカル完成に必要な IPC は「たった 1 つ」
結論から言うと、ローカルで動かすだけなら必要なのはこれだけ:
✔ RemoteEvent: GenerateChunk
Plugin → Server に対して:
chunkId と params を送る
これだけで Planet Generator は動く。
🟦 必要な IPC の構造(最小構成)
📌 ReplicatedStorage
ReplicatedStorage
└── TerrainIPC (Folder)
└── GenerateChunk (RemoteEvent)
📌 Plugin 側(panel.lua)
IPC.GenerateChunk:Fire(chunkId, params)
📌 Server 側(TerrainKernel)
local IPC = game.ReplicatedStorage:WaitForChild("TerrainIPC")
local GenerateChunk = IPC:WaitForChild("GenerateChunk")
GenerateChunk.OnServerEvent:Connect(function(player, chunkId, params)
TerrainKernel.Generate(chunkId, params)
end)
これで Plugin → Server の単方向通信が成立する。
🟩 では、逆方向(Server → Plugin)は必要か?
ローカルで動かすだけなら 不要。
理由:
- Plugin は Studio 内で動く
- Server はゲーム内で動く
- Plugin はゲームをプレイしていない
- よって Plugin にイベントを返しても受け取れない
つまり、Server → Plugin の通信は Roblox では基本的に不可能。
だから、必要なのは Plugin → Server の一方向だけ。
🟧 追加で必要になる可能性がある IPC(将来用)
ローカル完成後、もし次の機能を追加したくなったら IPC を増やす。
① 生成完了通知(Server → Client → Plugin)
Plugin に「生成完了」を知らせたい場合は、
Plugin ではなく プレイヤーの LocalScript を経由する必要がある。
(これはローカル完成後に考えれば OK)
② プレビュー画像の送信
Chunk のミニマップを Plugin に返したい場合は
プレイヤーの LocalScript を経由して Plugin に渡す必要がある。
(これも後で良い)
③ Planet 全体の HeightMap を送る
これも Plugin には直接送れないので、
プレイヤーを経由する必要がある。
🟦 今の段階で必要な IPC はこれだけ
| 用途 | 必要? | 種類 |
|---|---|---|
| Plugin → Server(生成命令) | 必要 | RemoteEvent |
| Server → Plugin(完了通知) | 不要 | 不可(プレイヤー経由のみ) |
| データ返送(HeightMap など) | 不要 | 不可(プレイヤー経由のみ) |
つまり:
✔ 今は「GenerateChunk」だけあれば完成できる
✔ 追加 IPC は後で必要になったら作ればいい
🟩 靖さんのプロジェクトに合わせた最小 IPC 実装例
ReplicatedStorage/TerrainIPC/init.lua(ModuleScript)
local IPC = {}
IPC.GenerateChunk = script:WaitForChild("GenerateChunk")
return IPC
ReplicatedStorage/TerrainIPC/GenerateChunk(RemoteEvent)
panel.lua
IPC.GenerateChunk:Fire(self.selectedChunk, self.currentParams)
ServerScriptService/TerrainKernel
local IPC = game.ReplicatedStorage.TerrainIPC
IPC.GenerateChunk.OnServerEvent:Connect(function(player, chunkId, params)
TerrainKernel.Generate(chunkId, params)
end)
🔥 あなたへ(まとめ)
今回、ローカルでひとまず完成の方向にいきたい。
IPCで何か必要なものはありますか。
✔ 必要なのは「GenerateChunk」だけ
✔ Plugin → Server の一方向通信だけで動く
✔ Server → Plugin の通信は Roblox 仕様上できない
✔ 追加 IPC は後で必要になったら作ればいい
これでローカル版は完成できる。
次はどこを進める?
- TerrainKernel.Generate の仕様を整理する
- params(PlanetParameters)の構造を決める
- ChunkSpace の生成フローを設計する
- HeightSpace / BiomeSpace の接続を作る
どれでも一緒に進められるよ。