Procedural Generation Grid - User Manual
Page 1

PROCEDURAL GENERATION GRID
LƯỚI TẠO THỦ TỤC
USER MANUAL
HƯỚNG DẪN SỬ DỤNG
About Procedural Generation Grid
Giới thiệu về lưới tạo thủ tục
- Procedural Generation Grid is a system which uses grids to define fields and paths
for procedural generation algorithms. I recommend checking the tutorials!
- Lưới tạo thủ tục là hệ thống sử dụng lưới để xác định các trường và đường dẫn
cho các thuật toán tạo thủ tục. Tôi khuyên bạn nên kiểm tra các hướng dẫn!
- System is designed to be flexible and able to generate very various and complex
objects/places. Have full control on the procedural generation logic!
- Hệ thống được thiết kế linh hoạt và có khả năng tạo ra rất đa dạng và phức tạp
đồ vật/địa điểm. Có toàn quyền kiểm soát logic tạo thủ tục!
- It can be used to generate procedurally whole game levels at runtime or for editor
use to quickly paint levels for speed up level design process.
- Nó có thể được sử dụng để tạo toàn bộ cấp độ trò chơi theo thủ tục trong thời gian chạy hoặc cho trình chỉnh sửa
sử dụng để nhanh chóng vẽ các cấp độ nhằm tăng tốc quá trình thiết kế cấp độ.
- System is using something like visual scripting, so you don’t need to know how to code (but
you can still take benefits out of it) you just need to plan logics for your needs.
- Hệ thống đang sử dụng một thứ gì đó giống như kịch bản trực quan, vì vậy bạn không cần biết cách viết mã (nhưng
bạn vẫn có thể nhận được lợi ích từ nó), bạn chỉ cần lập kế hoạch logic cho nhu cầu của mình.
- Procedural Generation Grid is right now in Beta Stage so, many features may
change, new features will come and some small elements are not fully finished but
the developmental stage is completed enough to be functional in many cases.
- Lưới tạo thủ tục hiện đang ở Giai đoạn Beta nên nhiều tính năng có thể
thay đổi, các tính năng mới sẽ xuất hiện và một số yếu tố nhỏ chưa được hoàn thiện đầy đủ nhưng
giai đoạn phát triển đã được hoàn thành đủ để có thể hoạt động được trong nhiều trường hợp.
- Package is providing additional packages for randomly placing smaller objects in
physical space using Unity’s collision system (Object Stamper and Pipe Generator)
- Gói đang cung cấp các gói bổ sung để đặt ngẫu nhiên các vật thể nhỏ hơn vào
không gian vật lý sử dụng hệ thống va chạm của Unity (Object Stamper và Pipe Generator)
- Package is not dedicated to generating giant worlds (it still can work like that), it’s
focusing on smaller detailed areas like room interior with furniture, tunnels with
many elements, presets for painting modular walls etc.
- Gói này không dành riêng cho việc tạo ra các thế giới khổng lồ (nó vẫn có thể hoạt động như vậy), đó là
tập trung vào các khu vực chi tiết nhỏ hơn như nội thất phòng với đồ nội thất, đường hầm với
nhiều yếu tố, cài đặt trước để sơn các bức tường mô-đun, v.v.
Contact and other links you will find in Readme.txt file
Liên hệ và các liên kết khác bạn sẽ tìm thấy trong tệp Readme.txt
Page 2
Index
chỉ mục
1: The Procedural Grid Generation System:
- Grid Generation Process (3)
- Field Setups/Presets (4)
- Field Designer Window (5-8)
1: Hệ thống tạo lưới theo thủ tục:
- Quy trình phát điện lưới (3)
- Thiết lập trường/Cài đặt sẵn (4)
- Cửa sổ thiết kế hiện trường (5-8)
2: Designing Your Field Setup:
- Your first Field Setup (9-10)
- Workflow hints (10)
- Optimizing Generation Duration (11)
2: Thiết kế thiết lập trường của bạn:
- Thiết lập trường đầu tiên của bạn (10-9)
- Gợi ý quy trình làm việc (10)
- Tối ưu hóa thời lượng thế hệ (11)
3: Using many Field Setups:
- Build Plan (12)
- Example Generating Components Descriptions (1)
3: Sử dụng nhiều Thiết lập trường:
- Kế hoạch xây dựng (12)
- Ví dụ tạo mô tả thành phần (1)
4: Additionals:
- Objects Stamper (13)
- Objects Multi Emitter (13)
- Pipe Generator (13)
- Checker Field Framework (13)
4: Bổ sung:
- Máy đóng dấu đồ vật (13)
- Đối tượng Multi Emitter (13)
- Máy tạo ống (13)
- Khung trường kiểm tra (13)
5: Advanced Specification:
- Global Rules (14)
- Field Setup Commands (14)
- Field Setup Variables (14)
- Injecting (14)
5: Đặc điểm kỹ thuật nâng cao:
- Quy tắc toàn cầu (14)
- Lệnh thiết lập trường (14)
- Biến thiết lập trường (14)
- Tiêm chích (14)
6: Coding Custom Spawn Rules (15-16)
6: Mã hóa quy tắc sinh sản tùy chỉnh (15-16)
7: Build Planner and Node Graph (17-24)
-
Build Planner (18)
-
Field Planner (19-20)
-
Node Graph (21-22)
-
Build Planner Executor (23)
-
Field Setup Compositions (24)
7: Công cụ lập kế hoạch xây dựng và biểu đồ nút (17-24)
-
Lập kế hoạch xây dựng (18)
-
Người lập kế hoạch hiện trường (19-20)
-
Đồ thị nút (21-22)
-
Người thực hiện kế hoạch xây dựng (23)
-
Thành phần thiết lập trường (24)
Page 3
1: The Procedural Grid Generation System
1: Hệ thống tạo lưới theo thủ tục

Grid Generation Process (Field Setups
):
Quy trình tạo lưới (Thiết lập trường
):
Before working with Procedural Generation Grid you need to know what are the
fundamentals of its logic.
Trước khi làm việc với Lưới tạo thủ tục, bạn cần biết những gì
logic cơ bản của nó.
System runs spawning rules for every cell of the grid provided by the user.
Hệ thống chạy các quy tắc sinh sản cho mọi ô của lưới do người dùng cung cấp.

The order of provided grid cells modificators (
) is very important!
Thứ tự của các bộ sửa đổi ô lưới được cung cấp (
) là rất quan trọng!
For example: when you want to align some furniture underneath the walls, first you
need to spawn walls. Furniture requires information where and how are placed walls,
this information will appear after calling wall spawning modificators.
Ví dụ: khi bạn muốn sắp xếp một số đồ đạc bên dưới bức tường, trước tiên bạn
cần sinh ra các bức tường. Đồ nội thất yêu cầu thông tin về vị trí và cách thức đặt các bức tường,
thông tin này sẽ xuất hiện sau khi gọi các công cụ sửa đổi sinh sản trên tường.
When you want to create more complex architecture then sometimes logic can get
more complicated, keep that in mind.
Khi bạn muốn tạo ra kiến trúc phức tạp hơn thì đôi khi logic có thể đạt được
phức tạp hơn, hãy ghi nhớ điều đó.

Field Setup
is the main asset type of the whole package, it contains groups
Thiết lập trường
là loại tài sản chính của toàn bộ gói, nó chứa các nhóm


(packs
) of grid modificators
which are spawning or removing objects
generated on grid.
You can group modificators, you can find it very useful. As example: you can make a
(gói
) của bộ điều chỉnh lưới
đang sinh sản hoặc loại bỏ các đối tượng
được tạo ra trên lưới.
Bạn có thể nhóm các công cụ sửa đổi, bạn có thể thấy nó rất hữu ích. Ví dụ: bạn có thể thực hiện một


group
of field modificators
which spawns the whole interior room with props
inside. You can do separated Groups of Modificators, one with base interior spawn
like: walls, floors, ceiling etc. other group with light lamps, or other cosmetics and
another Modificators Group with props like furniture, debris etc.
Then in Field Setup you can freely assign groups to be executed, for example group
of walls as first, then run cosmetics group and in the end select your props
modificators group.
nhóm
của bộ điều chỉnh trường
tạo ra toàn bộ căn phòng bên trong với các đạo cụ
bên trong. Bạn có thể thực hiện các Nhóm Công cụ sửa đổi riêng biệt, một nhóm có nội thất cơ bản sinh sản
như: tường, sàn, trần, v.v. nhóm khác có đèn chiếu sáng, hoặc các loại mỹ phẩm và đồ trang trí khác
một Nhóm Modificators khác với các đạo cụ như đồ nội thất, mảnh vụn, v.v.
Sau đó, trong Thiết lập trường, bạn có thể tự do chỉ định các nhóm sẽ được thực thi, ví dụ như nhóm
đầu tiên là các bức tường, sau đó chạy nhóm mỹ phẩm và cuối cùng chọn đạo cụ của bạn
nhóm sửa đổi.
Field Modificators can have variant files, variants can be created using the “V” button
which you can find in Field Designer Window or Inspector window of Modificators
Pack. Variant means that Field Modificator is using all rules of parent Field
Modificator but can change prefabs setted inside it, so you don’t need to set up rules
multiple times when you just need to change the look of some walls as an example.
Công cụ sửa đổi trường có thể có các tệp biến thể, các biến thể có thể được tạo bằng nút “V”
mà bạn có thể tìm thấy trong Cửa sổ thiết kế trường hoặc cửa sổ Thanh tra của Bộ sửa đổi
Đóng gói. Biến thể có nghĩa là Công cụ sửa đổi trường đang sử dụng tất cả các quy tắc của Trường cha
Công cụ sửa đổi nhưng có thể thay đổi các prefab được đặt bên trong nó nên bạn không cần thiết lập quy tắc
nhiều lần khi bạn chỉ cần thay đổi diện mạo của một số bức tường làm ví dụ.
Procedural Generation Grid system is not generating game objects during cell
checking/spawn rule execution process, it spawns them at the end, all spawn data
is contained within additional classes which are used after all Field Setup’s rules are
computed.
You can watch the fundamentals tutorials here.
Hệ thống Lưới tạo thủ tục không tạo đối tượng trò chơi trong ô
Quá trình thực thi quy tắc kiểm tra/sinh sản, nó sẽ sinh ra chúng ở cuối, tất cả dữ liệu sinh ra
được chứa trong các lớp bổ sung được sử dụng sau khi tất cả các quy tắc của Thiết lập trường được thực hiện
tính toán.
Bạn có thể xem hướng dẫn cơ bản tại đây.
Page 4
Field Setups/Presets:
Thiết lập trường/Cài đặt trước:
Package offers preset structure which can help you a lot.
Take a quick look on relations between different instances:
Gói cung cấp cấu trúc cài sẵn có thể giúp bạn rất nhiều.
Hãy xem nhanh mối quan hệ giữa các trường hợp khác nhau:

Page 5
In most cases you will use Field Designer Window which you can open through
“Window->FImpossible Creations->Level Design->Grid Field Designer”
Trong hầu hết các trường hợp, bạn sẽ sử dụng Cửa sổ thiết kế trường mà bạn có thể mở thông qua
“Cửa sổ->Sáng tạo không thể thực hiện được->Thiết kế cấp độ->Trình thiết kế trường lưới”
Field Setup is the root of what is spawned on the provided grid.
Thiết lập trường là gốc của những gì được sinh ra trên lưới được cung cấp.

Field Designer Window is dedicated to focus on spawning logics, not on
creating gameplay shaped grid. Debug grid visible when the Field
Designer Window is opened will disappear and be forgotten after closing
the window. You should edit Field Setup files only through Field Designer Window
(it opens automatically when double-click on Field Setup File)
Cửa sổ thiết kế trường được dành riêng để tập trung vào logic sinh sản, không phải trên
tạo lưới hình trò chơi. Lưới gỡ lỗi hiển thị khi Trường
Cửa sổ thiết kế được mở sẽ biến mất và bị lãng quên sau khi đóng
cửa sổ. Bạn chỉ nên chỉnh sửa các tệp Thiết lập trường thông qua Cửa sổ thiết kế trường
(nó tự động mở khi nhấp đúp vào Tệp thiết lập trường)
Page 6
Scene Preview Settings:
Configure how you want preview grid generation on gizmos or with spawning prefabs
on the scene (slower).
Cài đặt xem trước cảnh:
Định cấu hình cách bạn muốn tạo lưới xem trước trên gizmos hoặc với các prefab sinh sản
tại hiện trường (chậm hơn).
(Repose is changing position of Field Designer after scripts compilation)
(Repose là thay đổi vị trí của Field Designer sau khi biên dịch tập lệnh)
Test Generating Settings:
Configure on what grids you want to
test your spawning logics, you can
simply generate random scaled
rectangle grids, or paint on scene grid
as you like or generate branched
tunnels.
Cài đặt tạo thử nghiệm:
Định cấu hình trên lưới bạn muốn
kiểm tra logic sinh sản của bạn, bạn có thể
chỉ cần tạo tỷ lệ ngẫu nhiên
lưới hình chữ nhật hoặc vẽ trên lưới cảnh
tùy thích hoặc tạo phân nhánh
đường hầm.


Grid will be generated each time you change any
rule through the inspector window if “Auto
Spawn” is enabled or you can trigger it with
“Generating Buttons” lower in the Field Designer
window.
Lưới sẽ được tạo mỗi khi bạn thay đổi bất kỳ
quy tắc thông qua cửa sổ thanh tra nếu “Tự động
Spawn” được kích hoạt hoặc bạn có thể kích hoạt nó bằng
“Tạo nút” thấp hơn trong Trình thiết kế trường
cửa sổ.
Field Setup Parameters:
Thông số thiết lập trường:

Configure field to objects you will spawn on
grid, it’s best to fit CellSize to floor/wall tiles
(but you can make it smaller and spawn floor/wall tiles
with grid scaleUp features - advanced)
Định cấu hình trường cho các đối tượng bạn sẽ sinh ra
lưới, tốt nhất nên lắp CellSize vào gạch lát sàn/tường
(nhưng bạn có thể làm cho nó nhỏ hơn và tạo ra gạch lát sàn/tường
với các tính năng của quy mô lưới - nâng cao)

Cell Instructions Commands can be used when
the grid on which Field Setup is used provides
additional data on which cells commands should
be used. It’s really useful for making doors / door
holes etc. but can also be used for many other
things.
Hướng dẫn di động Các lệnh có thể được sử dụng khi
lưới mà Thiết lập trường được sử dụng cung cấp
dữ liệu bổ sung về lệnh ô nào sẽ
được sử dụng. Nó thực sự hữu ích cho việc làm cửa/cửa ra vào
lỗ, v.v. nhưng cũng có thể được sử dụng cho nhiều mục đích khác
mọi thứ.
Field Variables can be used for controlling some rules
parameters from FiledSetup level or through injecting
(described later)
Some rules parameters have possibility to be used by
Field Variable, you can identify them by a half white
dot which must be pressed to assign variable:
Biến trường có thể được sử dụng để kiểm soát một số quy tắc
các tham số từ cấp FiledSetup hoặc thông qua việc tiêm
(mô tả sau)
Một số tham số quy tắc có khả năng được sử dụng bởi
Biến trường, bạn có thể xác định chúng bằng một nửa màu trắng
dấu chấm phải được nhấn để gán biến:

Page 7
To work with a field designer you must create a FieldSetup file inside your project
directory, the best place them in a new directory since you probably will create a few
of them later.
Để làm việc với nhà thiết kế trường, bạn phải tạo tệp FieldSetup bên trong dự án của mình
thư mục, tốt nhất hãy đặt chúng vào một thư mục mới vì bạn có thể sẽ tạo một vài thư mục
của họ sau này.

After creating the FieldSetup preset file you will see the “Modification
Packs” list. (FieldSetup is created with a root (built-in) modificators pack but can
use multiple other packs in a shared way)
Sau khi tạo tệp cài sẵn FieldSetup, bạn sẽ thấy tùy chọn “Sửa đổi
Danh sách gói. (FieldSetup được tạo bằng gói sửa đổi gốc (tích hợp) nhưng có thể
sử dụng nhiều gói khác theo cách chung)
Inside the box below there are displayed Field Modificators which are inside
currently selected Modificators Pack.
Bên trong hộp bên dưới có các Công cụ sửa đổi trường được hiển thị bên trong
Gói sửa đổi hiện được chọn.
After creating the preset there is just a root modification pack and no Field
Modificators.
Sau khi tạo cài đặt trước, chỉ có gói sửa đổi gốc và không có Trường
Công cụ sửa đổi.
To know what are the buttons on the right, just enter on them inside the Unity
Editor and a tooltip will appear.
Để biết các nút bên phải là gì, chỉ cần nhập chúng vào Unity
Trình chỉnh sửa và chú giải công cụ sẽ xuất hiện.

Now you can start adding Field Modificators by pressing the “+” button.
Bây giờ bạn có thể bắt đầu thêm Công cụ sửa đổi trường bằng cách nhấn nút “+”.
Page 8

You can keep Field Modificators inside Modificators Pack (in root pack then
also inside FieldSetup without creating additional file inside project directory)
In most cases you will use “IN” button to create a new FieldModificator
and put it automatically inside ModificatorsPack.
With toggle on the left you will quickly disable / enable Modificator, very
helpful when designing rules.
With “˄” and “˅” buttons you will change order of modificators which is
very important, since each modificator have only access to field state on
modificators executed before it.
To know what other buttons are doing, just enter on them inside Unity Editor
and tooltip will appear.
Bạn có thể giữ Bộ sửa đổi trường bên trong Gói Bộ sửa đổi (trong gói gốc thì
cũng trong FieldSetup mà không tạo tệp bổ sung trong thư mục dự án)
Trong hầu hết các trường hợp, bạn sẽ sử dụng nút “IN” để tạo FieldModificator mới
và đặt nó tự động bên trong ModificatorsPack.
Với nút bật/tắt ở bên trái, bạn sẽ nhanh chóng tắt/bật Công cụ sửa đổi, rất
hữu ích khi thiết kế các quy tắc.
Với các nút “˄” và “˅”, bạn sẽ thay đổi thứ tự các từ bổ nghĩa
rất quan trọng, vì mỗi bộ sửa đổi chỉ có quyền truy cập vào trạng thái trường trên
các công cụ sửa đổi được thực hiện trước nó.
Để biết các nút khác đang làm gì, chỉ cần nhập chúng vào Unity Editor
và chú giải công cụ sẽ xuất hiện.
When you have modificators, just hit buttons on the left “[0]”, “[1]” etc.
to display Field Modification inside the inspector window.
Clicking on these buttons with the right mouse button will display additional options
for duplicate modificator, export copy or variant.
Khi bạn có các công cụ sửa đổi, chỉ cần nhấn các nút ở bên trái “[0]”, “[1]”, v.v.
để hiển thị Sửa đổi trường bên trong cửa sổ thanh tra.
Nhấp vào các nút này bằng nút chuột phải sẽ hiển thị các tùy chọn bổ sung
để sửa đổi trùng lặp, xuất bản sao hoặc biến thể.
Page 9
2: Designing Your Field Setup
2: Thiết kế thiết lập trường của bạn
Your first field setup:
Open Field Designer Window and create a Field Setup preset using the “New” button.
Unfold “Built-in Field’s Mods” to display Field’s modificators list.
Hit “+” button to add a new field in list, hit “IN” to generate a new Modificator inside
Field Setup’s asset file.
Hit the “0” button or double click on the Modificator field to display it’s options.
Thiết lập trường đầu tiên của bạn:
Mở Cửa sổ thiết kế trường và tạo cài đặt trước Thiết lập trường bằng nút “Mới”.
Mở “Các chế độ của Trường tích hợp” để hiển thị danh sách các công cụ sửa đổi của Trường.
Nhấn nút “+” để thêm trường mới vào danh sách, nhấn “IN” để tạo Công cụ sửa đổi mới bên trong
Tệp tài sản của Thiết lập trường.
Nhấn nút “0” hoặc nhấp đúp vào trường Công cụ sửa đổi để hiển thị các tùy chọn của nó.
Field Spawners:
Inside the Field Modificator window you can assign prefabs for spawning.
Hit the “Add Spawner” button and select the prefab you want to generate.
Without any rule setted, the spawner will generate selected prefabs on every
cell of the provided grid.
Now you can add rules to define how your objects should be generated.
Field spawners can have assigned tags for rules to detect wanted objects on
cells, you can assign multiple tags by using “,” commas like
Prop,Lamp,OnCeiling. Tag assigned to FieldModificator will be applied to all
spawners within.
I recommend checking the second part of the main tutorial playlist.
Người sinh sản trên hiện trường:
Bên trong cửa sổ Công cụ sửa đổi trường, bạn có thể chỉ định các prefab để sinh sản.
Nhấn nút “Thêm Spawner” và chọn prefab bạn muốn tạo.
Nếu không thiết lập bất kỳ quy tắc nào, người sinh sản sẽ tạo các prefab đã chọn trên mỗi
ô của lưới được cung cấp.
Bây giờ bạn có thể thêm quy tắc để xác định cách tạo đối tượng của mình.
Người sinh sản tại hiện trường có thể gán thẻ cho các quy tắc để phát hiện các đối tượng mong muốn trên
các ô, bạn có thể gán nhiều thẻ bằng cách sử dụng dấu phẩy “,” như
Chống đỡ, đèn, trần nhà. Thẻ được gán cho FieldModificator sẽ được áp dụng cho tất cả
sinh sản bên trong.
Tôi khuyên bạn nên kiểm tra phần thứ hai của danh sách hướng dẫn chính.
Field Rules:
When you hit “Add Rule” button you will see different categories to choose
from. You will find rules for moving/rotating spawned objects, for allowing to
generate in certain conditions or more complex rules which are doing many
things at once.
Each rule contains description which can be displayed when you enter on it’s
header inside inspector window (after adding it to spawner)
Quy tắc trường:
Khi nhấn nút “Thêm quy tắc”, bạn sẽ thấy các danh mục khác nhau để chọn
từ. Bạn sẽ tìm thấy các quy tắc để di chuyển/xoay các đối tượng được sinh ra, để cho phép
tạo ra trong những điều kiện nhất định hoặc các quy tắc phức tạp hơn đang thực hiện nhiều
mọi thứ cùng một lúc.
Mỗi quy tắc chứa mô tả có thể được hiển thị khi bạn nhập vào đó
tiêu đề bên trong cửa sổ thanh tra (sau khi thêm nó vào spawner)
You can reverse/negate rule logics, which is pretty important, sometimes you
might want to get opposite effect from some rule, then just click ‘#’ button to
negate rule logic. This feature is very useful and it’s worth remembering.
Bạn có thể đảo ngược/phủ nhận logic quy tắc, điều này khá quan trọng, đôi khi bạn
có thể muốn có được hiệu ứng ngược lại từ một số quy tắc, sau đó chỉ cần nhấp vào nút '#' để
logic quy tắc phủ định. Tính năng này rất hữu ích và đáng ghi nhớ.
You can do the same with tags, adding “!” before tag name will make rules
affect every tag excluding ones with “!”.
Example: “!Floor,!Ceiling” so all spawns without Floor and Ceiling tag will be
gathered by rule algorithm.
Bạn có thể làm tương tự với thẻ, thêm “!” trước tên thẻ sẽ đưa ra quy tắc
ảnh hưởng đến mọi thẻ ngoại trừ những thẻ có “!”.
Ví dụ: “!Floor,!Ceiling” nên tất cả các lần xuất hiện không có thẻ Tầng và Trần sẽ bị
được thu thập bằng thuật toán quy tắc.
Page 10
Short description for each Rules Category:
Mô tả ngắn gọn cho từng Danh mục Quy tắc:
Transforming: Rules which change only position, rotation or scale.
Quick Solutions: More complex rules with algorithms which replaces usage of
multiple other rules to get desired effect with just one rule.
Placement: Checking conditions related to cells placement on grid.
Other: Just helper decorators, not changing anything in grid.
Modelling: Rules related to changing generated objects appearance etc.
Field And Grid: Rules related to field variables, other fields, grid size etc.
Count: Rules which are limiting count of spawned objects.
Collision: Rules related with collision check (procedural generation grid is
using mostly bounding box collision, no raycasting)
Cells: Rules which are modifying other cells, like removing spawns, preventing
generating for selected ones etc.
Chuyển đổi: Các quy tắc chỉ thay đổi vị trí, góc quay hoặc tỷ lệ.
Giải pháp nhanh: Các quy tắc phức tạp hơn với các thuật toán thay thế việc sử dụng
nhiều quy tắc khác để có được hiệu quả mong muốn chỉ với một quy tắc.
Vị trí: Kiểm tra các điều kiện liên quan đến vị trí ô trên lưới.
Khác: Chỉ là công cụ trang trí trợ giúp, không thay đổi bất kỳ thứ gì trong lưới.
Mô hình hóa: Các quy tắc liên quan đến việc thay đổi diện mạo của đối tượng được tạo, v.v.
Trường và lưới: Các quy tắc liên quan đến biến trường, trường khác, kích thước lưới, v.v.
Đếm: Quy tắc giới hạn số lượng đối tượng được sinh ra.
Va chạm: Các quy tắc liên quan đến kiểm tra va chạm (lưới tạo thủ tục được
chủ yếu sử dụng va chạm hộp giới hạn, không truyền tia)
Ô: Các quy tắc đang sửa đổi các ô khác, như loại bỏ sinh sản, ngăn chặn
tạo cho những cái được chọn, v.v.
Setting up props:
For a more practical presentation on how to set up props on your grid check the
tutorial videos on Youtube.
Here are some tips: when you want to set some debris on the floor, use just
randomized positioning with Transforming rules, separate spawns with
Placement->Cell Distance rules using debris spawner name and in addition use
Count->Spawning Probability to avoid too many objects. Also don’t forget to set “Cell
Check Mode” of spawner to random for additional randomization.
If you want to generate wardrobes or other furniture, use Full Transforming->Get
Coordinates and gather coordinates from walls, adjust positioning and rotation plus
add similar count limits / distance separation like with debris.
If you want to generate groups of objects like a pile of card boxes, prepare a “Multi
Spawn Emitter” component and create a prefab out of it then spawn it in a similar
way like wardrobes.
If you want to generate multiple objects in one cell, like narrow shelves, try using
Quick Solutions->Sub Spawner to generate additional objects in the same cell but
with other customized rules.
If your model's origin/pivot is not starting in center/middle but in corners, you can
adjust it with some special nodes, check this tutorial for more info.
Thiết lập đạo cụ:
Để có phần trình bày thực tế hơn về cách thiết lập các đạo cụ trên lưới của bạn, hãy kiểm tra
video hướng dẫn trên Youtube.
Sau đây là một số mẹo: khi bạn muốn rải rác xuống sàn, chỉ cần sử dụng
định vị ngẫu nhiên với các quy tắc Chuyển đổi, sinh sản riêng biệt với
Vị trí->Quy tắc khoảng cách ô sử dụng tên người sinh ra mảnh vụn và ngoài ra còn sử dụng
Đếm->Xác suất sinh sản để tránh quá nhiều đối tượng. Ngoài ra, đừng quên đặt “Ô
Kiểm tra Chế độ” của người sinh sản thành ngẫu nhiên để có thêm sự ngẫu nhiên.
Nếu bạn muốn tạo tủ quần áo hoặc đồ nội thất khác, hãy sử dụng Full Transforming->Get
Tọa độ và thu thập tọa độ từ các bức tường, điều chỉnh vị trí và xoay cộng
thêm giới hạn số lượng/phân cách khoảng cách tương tự như với các mảnh vụn.
Nếu bạn muốn tạo các nhóm đối tượng như một chồng hộp đựng thẻ, hãy chuẩn bị “Đa
Spawn Emitter” và tạo một prefab từ nó rồi sinh ra nó theo cách tương tự
giống như tủ quần áo.
Nếu bạn muốn tạo nhiều đối tượng trong một ô, chẳng hạn như các giá hẹp, hãy thử sử dụng
Giải pháp nhanh->Sub Spawner để tạo các đối tượng bổ sung trong cùng một ô nhưng
với các quy tắc tùy chỉnh khác.
Nếu điểm gốc/trục của mô hình của bạn không bắt đầu ở giữa/giữa mà ở các góc, bạn có thể
điều chỉnh nó bằng một số nút đặc biệt, hãy xem hướng dẫn này để biết thêm thông tin.
Complex Cases:
If you want to create curved walls with your levels or for example floors with leaks
on texture aligned to walls, use the power of Quick Solutions->Wall Placer and Floor
Placer components.
Trường hợp phức tạp:
Nếu bạn muốn tạo các bức tường cong theo cấp độ của mình hoặc ví dụ như các tầng bị rò rỉ
trên kết cấu được căn chỉnh theo tường, hãy sử dụng sức mạnh của Giải pháp nhanh->Wall Placer and Floor
Các thành phần của máy đặt.
Page 11

If you want to replace walls with damaged
versions every few wall segments, you can
use Full Transforming->Get Coordinates to
align with other wall, then Cells->Remove in
position to remove previous wall and replace it
with damaged version, then use similar
conditions like debris in previous manual
section, to spawn them every few segments.
In case you want to create a giant underground tunnel and cover small objects with
it, you can try using a scaled grids feature.
Nếu bạn muốn thay thế những bức tường bị hư hỏng
phiên bản cứ sau vài đoạn tường, bạn có thể
sử dụng Chuyển đổi hoàn toàn->Nhận tọa độ để
căn chỉnh với bức tường khác, sau đó chọn Ô->Xóa vào
vị trí để loại bỏ bức tường trước đó và thay thế nó
với phiên bản bị hỏng thì sử dụng tương tự
các điều kiện như mảnh vụn trong hướng dẫn trước
phần, để sinh ra chúng sau mỗi vài phân đoạn.
Trong trường hợp bạn muốn tạo một đường hầm khổng lồ dưới lòng đất và che phủ các vật thể nhỏ bằng
nó, bạn có thể thử sử dụng tính năng lưới tỷ lệ.
You can switch scaled grid for spawner with the toggle next to “Cell Check Mode”
Use Grid Painting to see how it works.
Bạn có thể chuyển đổi lưới tỷ lệ cho người sinh sản bằng nút chuyển đổi bên cạnh “Chế độ kiểm tra ô”
Sử dụng Grid Painting để xem nó hoạt động như thế nào.
Common Logic Rules Nodes:
Most commonly used nodes are:
Full Transforming -> Get Coordinates
Quick Solutions -> Wall Placer, Floor Placer
Placement -> Distance to other, Check Cell Neighbours, If Cell Contains Tag
Count -> Spawning Probability
Cells -> Remove in Position
Các nút quy tắc logic chung:
Các nút được sử dụng phổ biến nhất là:
Chuyển đổi hoàn toàn -> Nhận tọa độ
Giải pháp nhanh -> Máy rải tường, Máy rải sàn
Vị trí -> Khoảng cách đến ô khác, Kiểm tra các ô lân cận, nếu ô chứa thẻ
Đếm -> Xác suất sinh sản
Ô -> Xóa ở vị trí
Optimizing:
If your generating process takes too long, you can optimize it a bit with
approach like follows:
Using “Cell Check Mode” called “Total Random” is not optimal, it’s shuffling all
grid cells, when you use Modificator on a large grid it’s better to use other cell
check modes.
Tối ưu hóa:
Nếu quá trình tạo của bạn mất quá nhiều thời gian, bạn có thể tối ưu hóa nó một chút bằng
cách tiếp cận như sau:
Sử dụng “Chế độ kiểm tra ô” gọi là “Tổng ngẫu nhiên” không tối ưu, nó xáo trộn tất cả
các ô lưới, khi bạn sử dụng Công cụ sửa đổi trên một lưới lớn, tốt hơn hết bạn nên sử dụng ô khác
kiểm tra các chế độ
It's best to set simplest logics as first in spawner, if the first simple check is
not allowed to spawn then the rest logics are ignored and will not cause CPU
overhead.
Tốt nhất nên đặt logic đơn giản nhất làm đầu tiên trong spawner, nếu kiểm tra đơn giản đầu tiên là
không được phép sinh ra thì các logic còn lại sẽ bị bỏ qua và sẽ không gây ra CPU
trên cao.
Simple logic nodes have “Lightweight” suffix in tooltip when you enter node's
header title.
Các nút logic đơn giản có hậu tố “Lightweight” trong chú giải công cụ khi bạn nhập thông tin của nút
tiêu đề tiêu đề.
Page 12
3: Using Many Field Setups
3: Sử dụng nhiều thiết lập trường
Build Plan (Legacy - Check BUILD PLANNER for new approach):
Build Plan can be filled with customized settings for multiple Field Setups.
It can be used by other components to generate multiple grids.
You can prepare Field Setups for generating whole rooms like guest room, bathroom,
kitchen etc. and use other components to generate them in the wanted setup.
Kế hoạch xây dựng (Cũ - Kiểm tra BUILD PLANNER để biết cách tiếp cận mới):
Kế hoạch xây dựng có thể chứa đầy các cài đặt tùy chỉnh cho nhiều Thiết lập hiện trường.
Nó có thể được sử dụng bởi các thành phần khác để tạo ra nhiều lưới.
Bạn có thể chuẩn bị Thiết lập trường để tạo toàn bộ các phòng như phòng khách, phòng tắm,
nhà bếp, v.v. và sử dụng các thành phần khác để tạo ra chúng trong thiết lập mong muốn.
Check example scenes of generating dungeon game, which is using build plan to
generate key room, boss room etc. restrict their position to be near exit doors etc.
Kiểm tra các cảnh ví dụ về việc tạo trò chơi ngục tối đang sử dụng kế hoạch xây dựng để
tạo phòng chìa khóa, phòng sếp, v.v. hạn chế vị trí của họ ở gần cửa thoát hiểm, v.v.
Also check this tutorial video for some more explanations.
Ngoài ra, hãy kiểm tra video hướng dẫn này để biết thêm một số giải thích.
Example Generating Components (Legacy):
Ví dụ về tạo thành phần (cũ):
Building Plan Generator (randomized generating): It's an old component which was
made at the alpha stage of this package. It’s not using the newest “CheckerField”
framework but can be found useful for some users. It’s trying to generate corridors
and rooms out of the provided room inside the Build Plan preset.
Facility Generator (randomized generating): It’s similar to BuildinPlanGenerator but
uses a “CheckerField” framework which supports rotating non-rectangular room
shapes to fit them to generated corridors and rooms.
Grid Painter (manual level design): It’s component which allows to paint cells on
scene, paint command guides very useful to set up doors between other Grid
Painters.
MiniCityGenerator (randomized generating): Simple component to generate roads
and buildings around them.
RectangleOfFieldsGenerator (controlled generating): Generates multiple FieldSetups
within a custom rectangle shape, useful when generating house buildings with
rooms inside them.
SimpleDungeonGenerator (randomized generating): Very similar to Building Plan
Generator and Facility Generator but with some different rules.
SimpleFieldGenerator (randomized generating): Simple code example of generating
objects with provided FieldSetup preset.
Trình tạo kế hoạch xây dựng (tạo ngẫu nhiên): Đây là một thành phần cũ đã được
được thực hiện ở giai đoạn alpha của gói này. Nó không sử dụng “CheckerField” mới nhất
framework nhưng có thể thấy hữu ích đối với một số người dùng. Nó đang cố gắng tạo ra hành lang
và các phòng ngoài phòng được cung cấp bên trong cài đặt trước của Kế hoạch xây dựng.
Trình tạo cơ sở (tạo ngẫu nhiên): Tương tự như BuildinPlanGenerator nhưng
sử dụng khung “CheckerField” hỗ trợ xoay phòng không phải hình chữ nhật
hình dạng để phù hợp với chúng với các hành lang và phòng được tạo ra.
Grid Painter (thiết kế ở cấp độ thủ công): Là thành phần cho phép vẽ các ô trên
scene, hướng dẫn lệnh vẽ rất hữu ích để thiết lập các cửa giữa các Grid khác
Họa sĩ.
MiniCityGenerator (tạo ngẫu nhiên): Thành phần đơn giản để tạo đường
và các tòa nhà xung quanh chúng.
RectangleOfFieldsGenerator (tạo có kiểm soát): Tạo nhiều FieldSetup
trong một hình chữ nhật tùy chỉnh, hữu ích khi tạo các tòa nhà với
những căn phòng bên trong chúng.
SimpleDungeonGenerator (tạo ngẫu nhiên): Rất giống với Building Plan
Máy phát điện và Máy phát điện cơ sở nhưng có một số quy tắc khác nhau.
SimpleFieldGenerator (tạo ngẫu nhiên): Ví dụ mã đơn giản về việc tạo
các đối tượng có cài đặt trước FieldSetup được cung cấp.
Page 13

4: Additionals
4: Bổ sung
Object Stamper:
Object Stamper is a component which can spawn objects on ground using
raycasting with randomization. There can be random prefabs and each can have its
own probability level to be chosen to spawn.
Add the ObjectsStampEmitter component and create a Stamper Preset using the
“New” button, open the preset and add prefabs through the inspector window.
Adjust random position/rotation/scale settings and raycasting settings.
Check restrictions and overlapping configuration to spawn objects according to your
needs. Now you can hit the “Randomize Preview” button to see ghost gizmos of
target object to spawn, you can create object with this component as prefab and use
with PGG or place around the scene to spawn randomized objects with raycasted
placement.
Máy đóng dấu đối tượng:
Object Stamper là một thành phần có thể sinh ra các vật thể trên mặt đất bằng cách sử dụng
raycasting với sự ngẫu nhiên. Có thể có các nhà lắp ghép ngẫu nhiên và mỗi nhà có thể có
mức độ xác suất riêng được chọn để sinh sản.
Thêm thành phần ObjectsStampEmitter và tạo Cài đặt sẵn Stamper bằng cách sử dụng
Nút “Mới”, mở cài đặt trước và thêm nhà lắp ghép thông qua cửa sổ thanh tra.
Điều chỉnh cài đặt vị trí/xoay/tỷ lệ ngẫu nhiên và cài đặt truyền tia.
Kiểm tra các hạn chế và cấu hình chồng chéo để sinh ra các đối tượng theo sở thích của bạn
nhu cầu. Bây giờ bạn có thể nhấn nút “Xem trước ngẫu nhiên” để xem các nội dung ma quái của
đối tượng mục tiêu để sinh ra, bạn có thể tạo đối tượng với thành phần này dưới dạng prefab và sử dụng
bằng PGG hoặc đặt xung quanh hiện trường để sinh ra các vật thể ngẫu nhiên với khả năng truyền tia
vị trí.
Object Multi Emitter:
It’s using an Object Stamper preset or multiple presets to spawn multiple objects in
configured areas. It is really useful when you want to generate piles of objects or
objects on wardrobes, tables.
It can make generated spaces much more fulfilled.
Đối tượng đa phát:
Nó sử dụng một cài đặt trước của Object Stamper hoặc nhiều cài đặt trước để tạo ra nhiều đối tượng trong
các khu vực được cấu hình. Nó thực sự hữu ích khi bạn muốn tạo ra nhiều đối tượng hoặc
đồ vật trên tủ, bàn.
Nó có thể làm cho không gian được tạo ra trở nên trọn vẹn hơn nhiều.
Pipe Generator:
Component which uses modules of any shape to generate path towards target or
random position. Modules must be prepared, meaning must have defined points to
which other modules can join with target out rotation at target point.
It can make generated spaces much more interesting.
Máy phát điện ống:
Thành phần sử dụng các mô-đun có hình dạng bất kỳ để tạo đường dẫn tới mục tiêu hoặc
vị trí ngẫu nhiên. Các mô-đun phải được chuẩn bị, nghĩa là phải có điểm xác định để
mà các mô-đun khác có thể tham gia bằng cách xoay mục tiêu ra khỏi điểm mục tiêu.
Nó có thể làm cho không gian được tạo ra thú vị hơn nhiều.
Checker Field Framework (for programmers):
Checker Field classes are providing workflow for generating grids.
This framework is easy generating custom build plans by auto cell-path generating,
quick cell collision checking, snapping cells or groups of cells from one to another.
Check example generator components commented code lines for more.
Khung trường kiểm tra (dành cho lập trình viên):
Các lớp Trường kiểm tra đang cung cấp quy trình làm việc để tạo lưới.
Khung này dễ dàng tạo các kế hoạch xây dựng tùy chỉnh bằng cách tự động tạo đường dẫn ô,
kiểm tra xung đột ô nhanh chóng, chụp các ô hoặc nhóm ô từ cái này sang cái khác.
Kiểm tra các dòng mã nhận xét của các thành phần trình tạo ví dụ để biết thêm.
Page 14
5: Advanced Specification:
5: Đặc điểm kỹ thuật nâng cao:
Global Rules:
Some rules have option to be
setted as global (“G” button)
When enabled, all spawners in Field
Modificator will have this rule
applied. Also when execution order matters, global rules setted lower will be
queued to be executed after all other rules in spawner, global rules on the top
will be queued to be executed before all other rules.
Quy tắc toàn cầu:
Một số quy tắc có tùy chọn để được
được đặt là nút chung (nút “G”)
Khi được bật, tất cả người sinh sản trong Trường
Người sửa đổi sẽ có quy tắc này
áp dụng. Ngoài ra, khi thứ tự thực hiện có vấn đề, các quy tắc chung được đặt ở mức thấp hơn sẽ
xếp hàng để được thực thi sau tất cả các quy tắc khác trong spawner, quy tắc chung ở trên cùng
sẽ được xếp hàng đợi để được thực thi trước tất cả các quy tắc khác.


Field Setup Commands:
Field setup can have assigned
Instruction Commands definitions which
can be used by Grid Painter and custom
coded grid generators to create door
holes in walls by replacing wall model
with doorhole wall model. You can also use commands to just spawn
additional objects on the grid like painting fences etc. This Cell Instructions
opens many new possibilities for designing your Field Setup.
Lệnh thiết lập trường:
Thiết lập trường có thể được chỉ định
Hướng dẫn Định nghĩa các lệnh mà
có thể được sử dụng bởi Grid Painter và tùy chỉnh
máy phát điện lưới được mã hóa để tạo ra cửa
lỗ trên tường bằng cách thay thế mô hình tường
với mô hình tường lỗ cửa. Bạn cũng có thể sử dụng các lệnh để sinh ra
các đối tượng bổ sung trên lưới như sơn hàng rào, v.v. Hướng dẫn ô này
mở ra nhiều khả năng mới cho việc thiết kế Thiết lập trường của bạn.

Field Setup Variables:
Field Variables can be used by spawn rules to
change their parameters.
In most cases you would like to use field variables when injecting modificators
to other field setups.
Các biến thiết lập trường:
Biến trường có thể được sử dụng theo quy tắc sinh sản để
thay đổi các thông số của chúng.
Trong hầu hết các trường hợp, bạn muốn sử dụng các biến trường khi chèn các công cụ sửa đổi
đến các thiết lập trường khác.

Injecting:
Injecting means running Field Modificator / Group
of them as addition to Field Setup without adding
them to the Field Setup preset file.
Tiêm:
Tiêm có nghĩa là chạy Công cụ sửa đổi trường/Nhóm
trong số chúng dưới dạng bổ sung cho Thiết lập trường mà không cần thêm
chúng vào tệp cài sẵn Thiết lập trường.
For example: you have Field Modificator which spawns enemies, you want to inject enemies spawner
to some rooms, but in room A you want to have a lot of enemies and in room B just a few of them. You
can use the Distance Check rule for setting spacing between enemies and assign to it Field Variable
(assigning? -> bottom of page 6) then override variables with the injecting field and change the field's
variable value up or down. (To assign variable modificator must be child of Field Setup with needed
variables)
Ví dụ: bạn có Công cụ sửa đổi trường sinh ra kẻ thù, bạn muốn tiêm kẻ thù vào kẻ thù
đến một số phòng, nhưng ở phòng A bạn muốn có nhiều kẻ thù và ở phòng B chỉ có một vài kẻ thù. bạn
có thể sử dụng quy tắc Kiểm tra khoảng cách để thiết lập khoảng cách giữa các kẻ thù và gán cho nó Biến trường
(gán? -> cuối trang 6) sau đó ghi đè các biến bằng trường tiêm và thay đổi trường
giá trị biến lên hoặc xuống. (Để gán công cụ sửa đổi biến phải là con của Thiết lập trường với các yêu cầu cần thiết
biến)
Page 15

6: Coding Custom Spawn Rules
6: Mã hóa quy tắc sinh sản tùy chỉnh
If you want to code custom rule to be used in your Field Modificator Spawner, go to:
Right mouse button somewhere inside project directory -> Create -> Scroll and find
FImpossible Creations -> Procedural Generation -> Scripting Templates -> Choose
Template, name it and open automatically creates .cs file.
(If you use Assembly Definitions this file must be created in PGG’s directory or
directory with Assembly Definition referencing to PGG assembly)
Nếu bạn muốn mã hóa quy tắc tùy chỉnh để sử dụng trong Trình sửa đổi trường của mình, hãy truy cập:
Nút chuột phải ở đâu đó trong thư mục dự án -> Tạo -> Cuộn và tìm
Những sáng tạo không thể thực hiện được -> Tạo thủ tục -> Mẫu tập lệnh -> Chọn
Mẫu, đặt tên và mở sẽ tự động tạo tệp .cs.
(Nếu bạn sử dụng Định nghĩa hội, tệp này phải được tạo trong thư mục của PGG hoặc
thư mục có Định nghĩa hội tham chiếu đến hội PGG)
Right away you can add your rule inside spawners under category “Custom”
You can change it by setting a different namespace for the class file.
Each spawn rule must have at least one visible public variable to avoid GUI errors!
Ngay lập tức, bạn có thể thêm quy tắc của mình vào các trình sinh sản trong danh mục “Tùy chỉnh”
Bạn có thể thay đổi nó bằng cách đặt một không gian tên khác cho tệp lớp.
Mỗi quy tắc sinh sản phải có ít nhất một biến công khai hiển thị để tránh lỗi GUI!
Now depending on what your rule will do, you will have access to the current state of
the grid, to the spawn data grid is attempting to generate, Field Setup file when you
override right methods.
Bây giờ tùy thuộc vào quy tắc của bạn sẽ làm gì, bạn sẽ có quyền truy cập vào trạng thái hiện tại của
lưới, vào lưới dữ liệu sinh sản đang cố gắng tạo, tệp Thiết lập trường khi bạn
ghi đè các phương pháp đúng.
You should choose correct EProcedureType for your rule:
Procedure - Conditions + changing spawn properties
Rule - Conditions for spawning (override just CheckRuleOn() )
Event - Just changing spawns properties (override just CellInfluence() )
OnConditionsMet - Will be executed at the end only when all conditions are met
Coded - Running CheckRule and OnConditionsMet to give wide variety access
Bạn nên chọn đúng loại EProcedureType cho quy tắc của mình:
Quy trình - Điều kiện + thay đổi thuộc tính sinh sản
Quy tắc - Điều kiện sinh sản (chỉ ghi đè CheckRuleOn() )
Sự kiện - Chỉ thay đổi thuộc tính sinh sản (chỉ ghi đè CellInfluence() )
OnConditionsMet - Sẽ chỉ được thực thi ở cuối khi tất cả các điều kiện được đáp ứng
Đã mã hóa - Chạy CheckRule và OnConditionsMet để cung cấp quyền truy cập đa dạng
And override right methods:
CheckRuleOn() Executed on every cell until conditions are met
Use variable CellAllow to make rule allow or disallow spawn
CellInfluence() Executed only once when occupied cell is known after running all rule
checks
OnConditionsMetAction() Executed at the end of all rules if all conditions met
Và ghi đè các phương pháp đúng:
CheckRuleOn() Được thực thi trên mọi ô cho đến khi đáp ứng điều kiện
Sử dụng biến CellAllow để tạo quy tắc cho phép hoặc không cho phép sinh sản
CellInfluence() Chỉ được thực hiện một lần khi biết ô bị chiếm dụng sau khi chạy tất cả quy tắc
séc
OnConditionsMetAction() Được thực thi ở cuối tất cả các quy tắc nếu tất cả các điều kiện đều đáp ứng
Check code of other rules to get acquainted with grid logic.
I suggest checking simpler ones at first, like SR_PushPosition,
SR_SpawningPropability.
Kiểm tra mã của các quy tắc khác để làm quen với logic lưới.
Tôi khuyên bạn nên kiểm tra những cái đơn giản hơn lúc đầu, như SR_PushPosition,
SR_Khả năng sinh sản.
Optional: To support
accessing spawns of scaled
grid’s cells you can use code
like this:
Tùy chọn: Để hỗ trợ
truy cập vào các vùng sinh sản có quy mô
các ô của lưới bạn có thể sử dụng mã
như thế này:

Page 16
but if you don’t need scaled grid support you can use method like:
cell.GetSpawnsJustInsideCell()
Optional: To support Field Setup variables, you must add
public SpawnerVariableHelper VariableHandlerName; below your rule’s variable, it
will create this half-dot on the left of the property inside the inspector window.
Then you can use it in code like: VariableHandlerName.GetValue(defaultValue);
to make an effect in the rule algorithm, but you need to do one more thing to make all
of that work.
You need to override GetVariables() method and return your variable handlers in it.
You can use quick method if you need to use just one field variable handler in your
rule: return VariableHandlerName.GetListedVariable();
nhưng nếu bạn không cần hỗ trợ lưới theo tỷ lệ, bạn có thể sử dụng phương pháp như:
cell.GetSpawnsJustInsideCell()
Tùy chọn: Để hỗ trợ các biến Thiết lập trường, bạn phải thêm
public SpawnerVariableHelper VariableHandlerName; bên dưới biến quy tắc của bạn, nó
sẽ tạo nửa dấu chấm này ở bên trái thuộc tính bên trong cửa sổ thanh tra.
Sau đó, bạn có thể sử dụng nó trong mã như: VariableHandlerName.GetValue(defaultValue);
để tạo hiệu ứng trong thuật toán quy tắc, nhưng bạn cần phải làm một điều nữa để thực hiện tất cả
của công việc đó.
Bạn cần ghi đè phương thức GetVariables() và trả về các trình xử lý biến của bạn trong đó.
Bạn có thể sử dụng phương pháp nhanh nếu bạn chỉ cần sử dụng một trình xử lý biến trường trong
quy tắc: trả về VariableHandlerName.GetListedVariable();
Page 17

7: Build Planner
(and Node Graph)
7: Lập kế hoạch xây dựng
(và đồ thị nút)
The Build Planner is in the early stage of development and it will be successfully
updated with new features until the end of the beta stage of the procedural
generation grid package.
Công cụ lập kế hoạch xây dựng đang ở giai đoạn phát triển ban đầu và sẽ thành công
được cập nhật các tính năng mới cho đến khi kết thúc giai đoạn beta của quy trình
gói lưới thế hệ.
Build Planner is defining areas to spawn objects and is providing guides for special
spawning like doorway cells etc.
Công cụ lập kế hoạch xây dựng đang xác định các khu vực để sinh ra các đối tượng và cung cấp hướng dẫn cho các đối tượng đặc biệt
sinh sản như các tế bào ô cửa, v.v.
In the future versions, Build Planner node graph will be enough to replace all of the
current generator scripts like “Facility Generator”, “Dungeon Generator” etc. which
will become deprecated (but still available in the “PGG Legacy Coded Generators”
unitypackage)
Trong các phiên bản tương lai, biểu đồ nút của Công cụ lập kế hoạch xây dựng sẽ đủ để thay thế tất cả
các tập lệnh của trình tạo hiện tại như “Trình tạo cơ sở”, “Trình tạo ngục tối”, v.v.
sẽ không còn được dùng nữa (nhưng vẫn có sẵn trong “Trình tạo mã kế thừa PGG”
gói thống nhất)

With a prepared Build Planner Preset
you need a game object on the scene with
Build Planner Executor component which you use for gameplay / editor usage.
Với cài đặt trước Công cụ lập kế hoạch xây dựng đã được chuẩn bị sẵn
bạn cần một đối tượng trò chơi tại hiện trường với
Xây dựng thành phần Planner Executor mà bạn sử dụng để chơi trò chơi/trình chỉnh sửa.
To start working with Build Planner, go to Window -> Fimpossible Creations -> PGG
Build Planner (Build Layout)
Để bắt đầu làm việc với Build Planner, hãy đi tới Window -> Fimpossible Creations -> PGG
Công cụ lập kế hoạch xây dựng (Bố cục xây dựng)

With the build planner window you will
quickly preview your work and prepare
how many grids you want to generate,
Với cửa sổ kế hoạch xây dựng, bạn sẽ
nhanh chóng xem trước công việc của bạn và chuẩn bị
bạn muốn tạo bao nhiêu lưới,

using Field Planners
.
sử dụng Công cụ lập kế hoạch hiện trường
.
Prepare the main variables for every
Chuẩn bị các biến chính cho mỗi

field planner’s node graph
.
biểu đồ nút của người lập kế hoạch trường
.
You will also define order of the field
planners (it works in the similar way as
Bạn cũng sẽ xác định thứ tự của trường
người lập kế hoạch (nó hoạt động theo cách tương tự như

with field modificators
in the field
với bộ sửa đổi trường
trong lĩnh vực này

setups
)
thiết lập
)
The preview of build planner is visible on the scene center, it’s good to use it on the
empty scene in your project. If your scene view camera is far from preview position,
the camera button will appear next to the “Preview Settings” bookmark.
Bản xem trước của công cụ lập kế hoạch xây dựng hiển thị ở trung tâm khung cảnh, bạn nên sử dụng nó trên
cảnh trống trong dự án của bạn. Nếu camera xem cảnh của bạn ở xa vị trí xem trước,
nút camera sẽ xuất hiện bên cạnh dấu trang “Cài đặt xem trước”.

When you select the Field Planner
the new window will open in which you will
prepare a field / grid to generate and place on the build plan layout.
Khi bạn chọn Công cụ lập kế hoạch hiện trường
cửa sổ mới sẽ mở ra trong đó bạn sẽ
chuẩn bị một trường / lưới để tạo và đặt trên bố cục kế hoạch xây dựng.
Page 18

First foldout of the Field Planner is “Field Planner Preparation”
Bản in đầu tiên của Công cụ lập kế hoạch hiện trường là “Chuẩn bị cho Công cụ lập kế hoạch hiện trường”
There you define type of the field
planner (right now only ‘Field
Planner’ type is available, in the
future there will be more)
Ở đó bạn xác định loại trường
người lập kế hoạch (hiện tại chỉ có ‘Field
Loại Planner có sẵn, trong
tương lai sẽ có nhiều hơn)

You can select the default Field
Setup which will be automatically
chosen later, in the build planner
executor component on the game
scene.
Bạn có thể chọn Trường mặc định
Thiết lập sẽ được tự động
được chọn sau, trong bản kế hoạch xây dựng
thành phần thực thi trên trò chơi
cảnh.
You can define how many instances of the field planner should appear on the build
plan. Instances are like duplicates / copies, it requires node graph logics prepared for
use of multiple instances.
Expose instance count will make instance count editable later in the build planner
executor component on the game scene.
Bạn có thể xác định số lượng phiên bản của trình lập kế hoạch hiện trường sẽ xuất hiện trên bản dựng
kế hoạch. Các trường hợp giống như các bản sao/bản sao, nó yêu cầu logic biểu đồ nút được chuẩn bị cho
sử dụng nhiều trường hợp.
Số lượng phiên bản hiển thị sẽ giúp số lượng phiên bản có thể chỉnh sửa sau này trong trình lập kế hoạch xây dựng
thành phần thực thi trên bối cảnh trò chơi.
Preview Cell Size is the scale of a single cell of target grid area. Right now it’s
recommended to use field setups of the same cell size but in the future support for
different scaled grids will be improved.
Kích thước ô xem trước là tỷ lệ của một ô trong vùng lưới mục tiêu. Ngay bây giờ nó là
được khuyến nghị sử dụng các thiết lập trường có cùng kích thước ô nhưng trong tương lai sẽ hỗ trợ cho
lưới tỷ lệ khác nhau sẽ được cải thiện.
Round to scale will automatically round position of the field to not be fractioned,
when cell size is 2 then position x = 2.4 will be rounded to 2.0
It can be helpful when designing some types of the build layout.
Làm tròn theo tỷ lệ sẽ tự động làm tròn vị trí của trường để không bị phân số,
khi kích thước ô là 2 thì vị trí x = 2,4 sẽ được làm tròn thành 2,0
Nó có thể hữu ích khi thiết kế một số loại bố cục xây dựng.
Finally you can define variables which will be used by the node graph and will be
visible and editable later in the build planner executor component.
Cuối cùng, bạn có thể xác định các biến sẽ được biểu đồ nút sử dụng và sẽ được
hiển thị và có thể chỉnh sửa sau này trong thành phần thực thi kế hoạch xây dựng.
Useful tips for the variables:
Lời khuyên hữu ích cho các biến:
When you set type “number”, “int” there will appear a toggle which will make the variable appear later
in the build planner executor as the field setup command selector.
Khi bạn đặt loại “number”, “int” sẽ xuất hiện một nút chuyển đổi để biến xuất hiện sau
trong trình thực thi kế hoạch xây dựng làm bộ chọn lệnh thiết lập trường.


Page 19
When you use the Vector3 position you can enable handles toggles to display helpful
gizmos on the scene, or choose some transform position to drive your node graph
logic!
Khi bạn sử dụng vị trí Vector3, bạn có thể bật các nút điều khiển để hiển thị hữu ích
gizmos tại hiện trường hoặc chọn một số vị trí biến đổi để điều khiển biểu đồ nút của bạn
logic!


Second Foldout is “Field Initial Shape”
Lần gấp thứ hai là “Hình dạng ban đầu của trường”


There you define the starting
shape for your field planner
which is generated with the
chosen algorithm. There few
algorithms are provided but in
the future versions there will be
more and you will be able to
code your own initial shape
generator algorithm.
Ở đó bạn xác định sự bắt đầu
hình dạng cho người lập kế hoạch lĩnh vực của bạn
được tạo ra với
thuật toán đã chọn. Có rất ít
các thuật toán được cung cấp nhưng trong
các phiên bản tương lai sẽ có
nhiều hơn nữa và bạn sẽ có thể
mã hóa hình dạng ban đầu của riêng bạn
thuật toán máy phát điện.
In some cases you will not need any shape because you can generate it with the
node graph. As example: you will not need initial shape if you will use some field
planner just to generate a path-finder connection between two field planners.
Trong một số trường hợp, bạn sẽ không cần bất kỳ hình dạng nào vì bạn có thể tạo nó bằng
đồ thị nút. Ví dụ: bạn sẽ không cần hình dạng ban đầu nếu bạn sử dụng một số trường
người lập kế hoạch chỉ để tạo kết nối tìm đường giữa hai người lập kế hoạch hiện trường.
You can toggle “Expose Detection Shape” to make it editable later in the build
planner executor component.
Bạn có thể chuyển đổi “Hình dạng phát hiện phơi sáng” để có thể chỉnh sửa nó sau này trong bản dựng
thành phần thực thi kế hoạch.
Page 20

And the last part is node graph section
Và phần cuối cùng là phần biểu đồ nút
There you can display a node graph and work with it, or open the same graph in the
separated window if you will.
Every Field Planner owns two graphs. “First Procedures” and “Post Procedures”.
Ở đó bạn có thể hiển thị biểu đồ nút và làm việc với nó hoặc mở cùng một biểu đồ trong
cửa sổ tách biệt nếu bạn muốn.
Mỗi Công cụ lập kế hoạch hiện trường đều sở hữu hai biểu đồ. “Thủ tục đầu tiên” và “Thủ tục sau”.

First Procedures graphs are called as ordered in the Build Planner Preset
It’s dedicated to execute here main layout placement logics.
Các biểu đồ Quy trình đầu tiên được gọi theo thứ tự trong Cài đặt sẵn của Công cụ lập kế hoạch xây dựng
Nó được dành riêng để thực thi logic vị trí bố cục chính ở đây.
Post Procedures are called again as ordered in Build Planner Preset, but called after
all graphs in First Procedures done their job. So Post Procedures are dedicated for
creating final relations between field planners, when the whole layout is prepared and
defined. When you know where each of the rooms will be placed, you can define
relations like preventing spawning windows between rooms on opposite sides etc.
Quy trình đăng được gọi lại theo thứ tự trong Cài đặt sẵn của Công cụ lập kế hoạch xây dựng, nhưng được gọi sau
tất cả các biểu đồ trong Quy trình đầu tiên đã hoàn thành công việc của chúng. Vì vậy thủ tục đăng bài được dành riêng cho
tạo mối quan hệ cuối cùng giữa những người lập kế hoạch hiện trường, khi toàn bộ bố cục được chuẩn bị và
được xác định. Khi bạn biết vị trí của từng phòng, bạn có thể xác định
các mối quan hệ như ngăn chặn các cửa sổ sinh sản giữa các phòng ở phía đối diện, v.v.
The GUI element next to “Post Procedures” is just a shortcut for switching between
field planners stored in the build planner preset.
Phần tử GUI bên cạnh “Thủ tục đăng bài” chỉ là một phím tắt để chuyển đổi giữa
công cụ lập kế hoạch hiện trường được lưu trữ trong cài đặt trước của công cụ lập kế hoạch xây dựng.
Page 21
The Field Planner Node Graph:
Biểu đồ nút của Công cụ lập kế hoạch hiện trường:
With a node graph you will define where grid areas will be placed.
You can generate additional shapes from one point to another and join/subtract cells
of grids, prepare cells instructions to be added into grids, and design it to your
project requirements.
Với biểu đồ nút, bạn sẽ xác định nơi sẽ đặt các vùng lưới.
Bạn có thể tạo các hình dạng bổ sung từ điểm này đến điểm khác và nối/trừ các ô
của lưới, chuẩn bị các hướng dẫn ô để thêm vào lưới và thiết kế nó cho phù hợp với nhu cầu của bạn.
yêu cầu của dự án.
In the future updates this documentation for node graphs will expand.
Trong các bản cập nhật trong tương lai, tài liệu này về biểu đồ nút sẽ mở rộng.

Node graph starts its logic with
the “Procedures Start” node
which needs to be connected
with some other node.
Biểu đồ nút bắt đầu logic của nó với
nút “Bắt đầu thủ tục”
cần kết nối
với một số nút khác.
When node is triggered, it runs its
coded logic, reads values from
connected ports and uses them.
Khi nút được kích hoạt, nó sẽ chạy
logic được mã hóa, đọc các giá trị từ
các cổng được kết nối và sử dụng chúng.
When a node finishes its job the
trigger signal moves forward to
the next connected node until
there is no connection to the next
node in the graph.
Khi một nút hoàn thành công việc của nó
tín hiệu kích hoạt di chuyển về phía trước
nút được kết nối tiếp theo cho đến khi
không có kết nối nào với phần tiếp theo
nút trong biểu đồ.

Some of the nodes contain arrow blocks on the top and
on the bottom, that means this is “Execution Node” and
it will call its main logic when some trigger connection
reaches it.
Một số nút chứa các khối mũi tên ở trên cùng và
ở phía dưới, điều đó có nghĩa đây là “Nút thực thi” và
nó sẽ gọi logic chính của nó khi một số kết nối kích hoạt
đạt được nó.

Nodes with ports only will compute their
logics when some of the execution nodes
call them during the generating build layout
preview process.
Các nút chỉ có cổng sẽ tính toán
logic khi một số nút thực thi
gọi họ trong quá trình tạo bố cục bản dựng
quá trình xem trước.
When connecting some ports you can see different values in the node than it will be
computed, when graph logics will reach the port (preview needs to be triggered)
values will be refreshed.
Khi kết nối một số cổng, bạn có thể thấy các giá trị khác nhau trong nút.
được tính toán, khi logic biểu đồ sẽ đến cổng (cần kích hoạt bản xem trước)
các giá trị sẽ được làm mới.
Page 22
Graph is expanding its cavas in the right-down direction, meaning it will increase its
size automatically when you put some nodes near to the low or right edge of view.
Đồ thị đang mở rộng cavas của nó theo hướng từ phải xuống, có nghĩa là nó sẽ tăng
tự động kích thước khi bạn đặt một số nút gần cạnh dưới hoặc cạnh phải của chế độ xem.

When the plugin will reach the ending stage of
the BETA there will be provided description for
each graph node. For now you must rely on the
examples and provided tooltips on the node
header / parameter fields.
Khi plugin sẽ đạt đến giai đoạn kết thúc của
BETA sẽ được cung cấp mô tả cho
mỗi nút đồ thị. Hiện tại bạn phải dựa vào
ví dụ và chú giải công cụ được cung cấp trên nút
trường tiêu đề/tham số.
Many of the nodes have the unfold option ▲ when you click on it, it will display more
advanced options of the node.
Nhiều nút có tùy chọn mở ra ▲ khi bạn nhấp vào nó, nó sẽ hiển thị thêm
các tùy chọn nâng cao của nút.
Function Nodes:
Các nút chức năng:
Function nodes are groups of coded
nodes condensed into one simple node
which can be used in the field planner
graphs or inside another function nodes.
Function nodes are identified with “(f)” in
header name, quick double clicking left
mouse button will open function node
graph. (there is also option for it when
hitting right mouse button on the node in
node graph)
Các nút chức năng là các nhóm được mã hóa
các nút ngưng tụ thành một nút đơn giản
có thể được sử dụng trong công cụ lập kế hoạch hiện trường
đồ thị hoặc bên trong các nút chức năng khác.
Các nút chức năng được xác định bằng “(f)” trong
tên tiêu đề, nhấp đúp nhanh vào bên trái
nút chuột sẽ mở nút chức năng
đồ thị. (cũng có tùy chọn cho nó khi
nhấn nút chuột phải vào nút trong
đồ thị nút)

You can create new function node by hitting right mouse button on some node on
any graph and choosing “Create Custom Function (f) Node” option or by clicking
right mouse button in the project browser and going to Create->Fimpossible
Creations->Procedural Generation->Create Build Planner Function Node
Bạn có thể tạo nút chức năng mới bằng cách nhấn nút chuột phải vào một số nút trên
bất kỳ biểu đồ nào và chọn tùy chọn “Tạo nút chức năng tùy chỉnh (f)” hoặc bằng cách nhấp vào
nút chuột phải trong trình duyệt dự án và đi tới Tạo->Fimpossible
Sáng tạo->Tạo thủ tục->Tạo nút chức năng của Công cụ lập kế hoạch xây dựng
Function nodes can use nodes which planner graphs can’t use.
These are “Input”, “Parameter” and “Output” nodes, which will appear on the node
drawer of the prepared function node.
Các nút chức năng có thể sử dụng các nút mà biểu đồ kế hoạch không thể sử dụng.
Đây là các nút “Đầu vào”, “Tham số” và “Đầu ra”, sẽ xuất hiện trên nút
ngăn kéo của nút chức năng đã chuẩn bị.

Hitting the
icon will allow you to change the name of the port display name.
(you can do it also through inspector window which will appear when selecting node)
Beware for changing node count/names/types after adding one of them to the other
node graphs, the function node refresh will be improved in the future versions!
Đánh vào
biểu tượng sẽ cho phép bạn thay đổi tên của tên hiển thị cổng.
(bạn cũng có thể thực hiện điều đó thông qua cửa sổ thanh tra sẽ xuất hiện khi chọn nút)
Cẩn thận với việc thay đổi số lượng/tên/loại nút sau khi thêm một trong số chúng vào nút kia
đồ thị nút, việc làm mới nút chức năng sẽ được cải thiện trong các phiên bản tương lai!
Page 23
Node Graph Tips:
Mẹo đồ thị nút:
Node Graph offers some shortcuts.
If you keep pushing the ‘A’ button on your keyboard and hit the left mouse button on
the grid canvas, a math “Add” node will be created. When you keep pressing the “1”
number key, there will be a value node. There are prepared many shortcuts for
different keys you can check (it will be described in the manual when beta stage of
the package will be reaching end)
Node Graph cung cấp một số phím tắt.
Nếu bạn tiếp tục nhấn nút 'A' trên bàn phím và nhấn nút chuột trái vào
trên khung vẽ lưới, nút “Thêm” toán học sẽ được tạo. Khi bạn tiếp tục nhấn phím “1”
phím số thì sẽ có nút giá trị. Đã chuẩn bị sẵn nhiều phím tắt cho
các khóa khác nhau mà bạn có thể kiểm tra (nó sẽ được mô tả trong hướng dẫn sử dụng khi giai đoạn beta của
gói hàng sẽ kết thúc)
Pressing the ‘R’ key on your keyboard and hitting the middle mouse button will trigger
Build Planner Window refresh, you can also double click the middle mouse button to
do the same.
Nhấn phím 'R' trên bàn phím và nhấn nút chuột giữa sẽ kích hoạt
Làm mới Cửa sổ Build Planner, bạn cũng có thể nhấp đúp vào nút chuột giữa để
làm tương tự.
Build Planner Executor:
Người thực thi kế hoạch xây dựng:
Build Planner Executor is a component which you should add to the new empty game
object. Generated structures will be setted as child objects of the executor object in
the scene hierarchy and generated in its space, so you can freely move / rotate the
executor object on the scene.
Build Planner Executor là một thành phần mà bạn nên thêm vào trò chơi trống mới
đối tượng. Các cấu trúc được tạo sẽ được đặt làm đối tượng con của đối tượng thực thi trong
phân cấp cảnh và được tạo trong không gian của nó, do đó bạn có thể tự do di chuyển/xoay
đối tượng thi hành án tại hiện trường.
Build Planner Executor will create
GUI accommodated with the build
planner preset names, variables
and field planners names /
variables / preparation.
Người thực thi công cụ lập kế hoạch xây dựng sẽ tạo
GUI phù hợp với bản dựng
tên đặt trước của người lập kế hoạch, các biến
và tên người lập kế hoạch hiện trường /
biến/sự chuẩn bị.

Build Planner Executor is
generating objects using Grid
Painters. So when you hit
“Generate Objects” all generated
areas will be accessible for
debugging, further editing and free
moving/rotating on the scene.
Người thực thi kế hoạch xây dựng là
tạo đối tượng bằng Grid
Họa sĩ. Vì vậy khi bạn đánh
“Tạo đối tượng” tất cả được tạo
các khu vực sẽ có thể tiếp cận được
gỡ lỗi, chỉnh sửa thêm và miễn phí
di chuyển/xoay trên hiện trường.
Executor is generating build planner preset logics with changed cell size as the
Field Setups grid cell sizes so the result can look different than with the Build
Planner Window preview if “Preview Cell Size” is different!
Người thực thi đang tạo các logic đặt trước của công cụ lập kế hoạch xây dựng với kích thước ô đã thay đổi làm
Thiết lập trường kích thước ô lưới để kết quả có thể trông khác so với Bản dựng
Xem trước cửa sổ Planner nếu “Kích thước ô xem trước” khác!
Page 24
Field Setup Compositions:
Thành phần thiết lập trường:
When spawning objects with Build Planner Executor or Grid Painters now you have
the possibility to alternatively compose the Field Setups.
Khi sinh ra các đối tượng bằng Build Planner Executor hoặc Grid Painters bây giờ bạn có
khả năng soạn thảo các Thiết lập trường theo cách khác.
You can easily replace spawned prefabs with new chosen ones, replace some
parameters / variables or disable modificators/packs individually.
Bạn có thể dễ dàng thay thế các prefab được sinh ra bằng những prefab mới được chọn, thay thế một số
tham số/biến hoặc vô hiệu hóa các bộ sửa đổi/gói riêng lẻ.

Page 25
In the future the manual will expand more!
Trong tương lai hướng dẫn sẽ mở rộng hơn nữa!
If you like this package please visit my asset store page for more or
write a review for this asset ;)
Nếu bạn thích gói này, vui lòng truy cập trang cửa hàng tài sản của tôi để biết thêm hoặc
viết đánh giá cho tài sản này;)