Repolode
mxgmn

mxgmn/WaveFunctionCollapse

Wave Function Collapseアルゴリズムで、入力例に似たビットマップやタイルマップをローカル生成するC#プログラム。

スター
25,410
フォーク
1,368
未解決の Issue
10
最終コミット
3 日前

これは何?

WaveFunctionCollapseは、1枚のサンプル画像またはタイルのセットから、新しいビットマップやタイルマップを生成します。出力に含まれるのは入力に現れるNxNピクセルのパターンだけなので、全体として新しいレイアウトを作りながら、局所的にはサンプルに似た結果になります。この名前は、可能な状態の重ね合わせが確定した状態へ収束するという考え方に由来しますが、アルゴリズムで使うのは実数値の係数であり、実際の量子力学に基づくものではありません。

アルゴリズムは、観測されていない領域のうちエントロピーが最も低いものを繰り返し選び、入力内のパターン頻度に従って確定した状態にし、その結果生じた制約を出力全体に伝播させます。あるセルで選択肢がすべてなくなると矛盾が発生して実行に失敗しますが、プロジェクトによると実際にはまれです。リポジトリには、ピクセルベースのサンプルを扱う重複モデルと、隣接ルールを持つタイルセット向けのシンプルなタイルモデルの両方が含まれています。また、タイルの隣接リストを短くする対称性システムも備えています。

このプロジェクトは.NET上で動作するコンソールアプリケーションで、samples.xmlで設定し、outputフォルダに出力を書き込みます。ゲームやピクセルアートにおけるプロシージャルなレベルやテクスチャの生成に広く使われており、ほかの言語への移植も多数あります。

主な機能

  • 01単一の入力画像に存在するNxNパターンだけを含むビットマップを生成します。
  • 02ピクセルサンプル向けの重複モデルと、タイルセット向けのシンプルなタイルモデルに対応しています。
  • 03最小エントロピーによる選択で、次に確定する領域を決めます。
  • 04隣接リストを小さくするタイル対称性システムを備えています。
  • 05samples.xmlで設定する.NETコンソールアプリケーションとして動作します。

ユースケース

  • 手作りのタイルセットからゲームのレベルやダンジョンのレイアウトを生成する。
  • サンプル画像に似たピクセルアートのマップやテクスチャを作成する。
  • デザイナーが制約を指定するプロシージャル生成のプロトタイプを作る。
  • Wave Function Collapseアルゴリズムを学習・教育する。

トピック

よくある質問

WaveFunctionCollapse とは?
Wave Function Collapseアルゴリズムで、入力例に似たビットマップやタイルマップをローカル生成するC#プログラム。 WaveFunctionCollapseは、1枚のサンプル画像またはタイルのセットから、新しいビットマップやタイルマップを生成します。出力に含まれるのは入力に現れるNxNピクセルのパターンだけなので、全体として新しいレイアウトを作りながら、局所的にはサンプルに似た結果になります。この名前は、可能な状態の重ね合わせが確定した状態へ収束するという考え方に由来しますが、アルゴリズムで使うのは実数値の係数であり、実際の量子力学に基づくものではありません。
WaveFunctionCollapse は無料で使えますか?ライセンスは?
WaveFunctionCollapse は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
WaveFunctionCollapse は今もメンテナンスされていますか?
活発にメンテナンス中。WaveFunctionCollapse の最終コミットは 2026年10月15日 です。
WaveFunctionCollapse は何に使えますか?
手作りのタイルセットからゲームのレベルやダンジョンのレイアウトを生成する。 サンプル画像に似たピクセルアートのマップやテクスチャを作成する。 デザイナーが制約を指定するプロシージャル生成のプロトタイプを作る。 Wave Function Collapseアルゴリズムを学習・教育する。
WaveFunctionCollapse はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/mxgmn/WaveFunctionCollapse

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト