Blender_bevy_components_wor.../docs/process.svg
Mark Moissette 528e13a250
feat(): Blueprints, crates, enhanced Blender tooling & more (#5)
* feat(bevy_gltf_components):
	* create crate 
	* added SystemSet (GltfComponentsSet) to run process_loaded_scenes (where components are injected)
	in a specific systemset & allow ordering other systems relative to it

* feat(bevy_gltf_blueprints): 
	* created crate
	* made the blueprint library path configurable
	* added BluePrintBundle helper
	* added SystemSet (GltfBlueprintsSet) for better system ordering
	* integrated into advanced demo

* feat(tools-blender-auto-export): 
	* renamed blender tool to gltf_auto_export
   	* rewritten auto_export
	* added blueprint / prefab support
		* creates scene with empties with BlueprintName components in the scene
		* export of the main scene now exports this scene instead of real main scene
		* changes collection stand in names in original scene & sets them back after export
			to have correctly named collection instance exports
		* also added an additional 'SpawnHere' component to not conflate BlueprintNames & spawning requests
   		* toggling & blueprint library output parameters added
   		* added correct handling/ restoring of saved selection when using blueprints

* feat(examples): 
	* added advanced example
	* general example renamed to "basic", and cleaned up

* feat(various): a lot of experiments with saving & loading etc

* chore(assets): updated blend & generated assets

* fix(examples-advanced): disabling hot reloading as it messes up scenes in experiments with save & loading

* docs(): 
	* added & fleshing out docs for the various crates & main README
	* added process doc image & tweaks to README
 	* added missing licence info where relevant
 	* fixed broken links
 	* clarified some aspects
 	* added updated screenshots where relevant
 	* added tweaks & improvements etc
2023-09-28 14:10:45 +02:00

882 lines
38 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg1"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
sodipodi:docname="process.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="0.72426347"
inkscape:cx="-439.06674"
inkscape:cy="597.15838"
inkscape:window-width="2560"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" />
<defs
id="defs1">
<marker
style="overflow:visible"
id="RoundedArrow"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Rounded arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.7)"
d="m -0.21114562,-4.1055728 6.42229122,3.21114561 a 1,1 90 0 1 0,1.78885438 L -0.21114562,4.1055728 A 1.236068,1.236068 31.717474 0 1 -2,3 v -6 a 1.236068,1.236068 148.28253 0 1 1.78885438,-1.1055728 z"
style="fill:context-stroke;fill-rule:evenodd;stroke:none"
id="path8" />
</marker>
<marker
style="overflow:visible"
id="ArrowWide"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path1" />
</marker>
</defs>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
id="rect77"
width="220.61754"
height="312.25241"
x="-4.5802779"
y="-3.4230094"
ry="4.6700392" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.309086;stroke-dasharray:none"
id="rect1"
width="201.30733"
height="72.947769"
x="4.9794211"
y="3.6587322"
ry="2.5855451" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583"
x="102.90446"
y="11.789397"
id="text1"><tspan
sodipodi:role="line"
id="tspan1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="102.90446"
y="11.789397">Original</tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.294902;stroke-dasharray:none"
id="rect6"
width="82.234131"
height="56.321247"
x="115.08189"
y="16.034706"
ry="5.4638991" />
<g
id="g16"
transform="translate(-90.659631,6.5443841)">
<rect
style="fill:none;stroke:#000000;stroke-width:0.307482;stroke-dasharray:none"
id="rect5"
width="89.355553"
height="56.348793"
x="104.23762"
y="9.3243046"
ry="5.4665713" />
<g
id="g15"
transform="translate(-8.7898623,-68.268248)"
style="fill:#efff81;fill-opacity:1">
<rect
style="fill:#efff81;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
id="rect7"
width="21.240173"
height="10.947481"
x="120.16953"
y="92.749634"
ry="1.0620492" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:#efff81;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="124.65015"
y="97.640045"
id="text7"><tspan
sodipodi:role="line"
id="tspan7"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="124.65015"
y="97.640045">Object A</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="124.65015"
y="101.76033"
id="tspan72">(unique)</tspan></text>
</g>
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583"
x="126.33414"
y="14.70156"
id="text8"><tspan
sodipodi:role="line"
id="tspan8"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="126.33414"
y="14.70156">Main Scene (world/level)</tspan></text>
<g
id="g14"
transform="translate(-15.875,-65.181456)"
style="fill:#81ffc7;fill-opacity:1">
<rect
style="fill:#81ffc7;fill-opacity:1;stroke:#000000;stroke-width:0.355848;stroke-dasharray:none"
id="rect8"
width="38.74361"
height="10.856215"
x="157.82838"
y="84.181671"
ry="1.0531952" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:#81ffc7;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="162.26337"
y="90.613953"
id="text9"><tspan
sodipodi:role="line"
id="tspan9"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="162.26337"
y="90.613953">Object B1 (instance)</tspan></text>
</g>
<g
id="g13"
transform="translate(-11.892453,-70.473123)">
<rect
style="fill:#81ffc7;fill-opacity:1;stroke:#000000;stroke-width:0.358688;stroke-dasharray:none"
id="rect9"
width="39.374626"
height="10.853376"
x="153.73479"
y="107.09112"
ry="1.0529197" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="158.16835"
y="113.52198"
id="text10"><tspan
sodipodi:role="line"
id="tspan10"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="158.16835"
y="113.52198">Object C0 (instance)</tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:2.11666, 0.264583;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
d="M 226.2693,25.28543 H 183.09695"
id="path16" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:2.11666, 0.264583;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
d="M 226.2693,42.010871 H 183.09695"
id="path17" />
<g
id="g17"
transform="translate(-11.892453,-56.675475)">
<rect
style="fill:#81ffc7;fill-opacity:1;stroke:#000000;stroke-width:0.358688;stroke-dasharray:none"
id="rect17"
width="39.374626"
height="10.853376"
x="153.73479"
y="107.09112"
ry="1.0529197" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:#000000;stroke:none;stroke-width:0.264583;stroke-dasharray:none;-inkscape-font-specification:Ubuntu;font-family:Ubuntu;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;fill-opacity:1"
x="158.16835"
y="113.52198"
id="text17"><tspan
sodipodi:role="line"
id="tspan17"
style="stroke-width:0.264583;-inkscape-font-specification:Ubuntu;font-family:Ubuntu;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;stroke:none;fill:#000000;fill-opacity:1"
x="158.16835"
y="113.52198">Object C1 (instance)</tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:2.11666, 0.264583;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
d="m 226.2693,42.010871 -42.64565,15.18405"
id="path18"
sodipodi:nodetypes="cc" />
</g>
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583"
x="145.92572"
y="22.124336"
id="text11"><tspan
sodipodi:role="line"
id="tspan11"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="145.92572"
y="22.124336">Library Scene</tspan></text>
<rect
style="fill:#ff9342;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
id="rect11"
width="56.246941"
height="10.784719"
x="138.19809"
y="26.06472"
ry="1.046259" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="142.59734"
y="32.46125"
id="text12"><tspan
sodipodi:role="line"
id="tspan12"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="142.59734"
y="32.46125">Object B: collection/ blueprint</tspan></text>
<g
id="g69"
transform="translate(0,-5.0567386)">
<rect
style="fill:#ff9342;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
id="rect12"
width="56.246941"
height="10.784719"
x="138.19809"
y="46.759216"
ry="1.046259" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="142.59734"
y="53.155746"
id="text13"><tspan
sodipodi:role="line"
id="tspan13"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="142.59734"
y="53.155746">Object C: collection/ blueprint</tspan></text>
</g>
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#RoundedArrow)"
d="m 108.69996,76.300286 v 9.304509"
id="path28"
sodipodi:nodetypes="cc" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.336158;stroke-dasharray:none"
id="rect28"
width="201.28026"
height="86.298004"
x="4.9929576"
y="91.43959"
ry="3.0587275" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:#000000;stroke:none;stroke-width:0.264583;fill-opacity:1"
x="97.815292"
y="99.943169"
id="text28"><tspan
sodipodi:role="line"
id="tspan28"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="97.815292"
y="99.943169">Transform Step</tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.320846;stroke-dasharray:none"
id="rect29"
width="82.208183"
height="66.687843"
x="115.09486"
y="106.46085"
ry="6.4695954" />
<g
id="g36"
transform="translate(-90.659631,96.957538)">
<rect
style="fill:none;stroke:#000000;stroke-width:0.336001;stroke-dasharray:none"
id="rect30"
width="89.327034"
height="67.307678"
x="104.25188"
y="9.3385649"
ry="6.5297275" />
<g
id="g31"
transform="translate(-8.7898623,-68.268248)"
style="fill:#efff81;fill-opacity:1">
<rect
style="fill:#efff81;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
id="rect31"
width="21.240173"
height="10.947481"
x="120.16953"
y="92.749634"
ry="1.0620492" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:#efff81;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="124.65015"
y="97.640045"
id="text31"><tspan
sodipodi:role="line"
id="tspan31"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="124.65015"
y="97.640045">Object A</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="124.65015"
y="101.76033"
id="tspan73">(unique)</tspan></text>
</g>
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583"
x="126.33414"
y="14.70156"
id="text32"><tspan
sodipodi:role="line"
id="tspan32"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="126.33414"
y="14.70156">Temporary Scene (world/level)</tspan></text>
<g
id="g33"
transform="translate(-19.939658,-65.832448)"
style="fill:#81ffc7;fill-opacity:1">
<rect
style="fill:#81ffc7;fill-opacity:1;stroke:#000000;stroke-width:0.505434;stroke-dasharray:none"
id="rect32"
width="52.860485"
height="16.052649"
x="157.90318"
y="84.256462"
ry="1.5573175" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:#81ffc7;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="162.26337"
y="90.613953"
id="text33"><tspan
sodipodi:role="line"
id="tspan33"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="162.26337"
y="90.613953">Object B1 (Empty)</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="162.26337"
y="94.734238"
id="tspan44">+ blueprintName(&quot;ObjectB&quot;)</tspan><tspan
sodipodi:role="line"
style="fill:#81ffc7;fill-opacity:1;stroke-width:0.264583"
x="162.26337"
y="98.854515"
id="tspan47"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none"
id="tspan78">+ spawnHere</tspan> </tspan></text>
</g>
<g
id="g34"
transform="translate(-15.528392,-70.796885)">
<rect
style="fill:#81ffc7;fill-opacity:1;stroke:#000000;stroke-width:0.528181;stroke-dasharray:none"
id="rect33"
width="51.925056"
height="17.845793"
x="153.81953"
y="107.17587"
ry="1.7312757" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="158.16835"
y="113.52198"
id="text34"><tspan
sodipodi:role="line"
id="tspan34"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="158.16835"
y="113.52198">Object C0 (Empty)</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="158.16835"
y="117.64227"
id="tspan45">+ blueprintName(&quot;ObjectC&quot;)</tspan><tspan
sodipodi:role="line"
style="stroke-width:0.264583"
x="158.16835"
y="121.76254"
id="tspan48"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none"
id="tspan79">+ spawnHere</tspan> </tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:2.11666, 0.264583;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
d="M 226.2693,25.28543 H 183.09695"
id="path34" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:2.11666, 0.264583;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
d="M 226.2693,42.010871 H 183.09695"
id="path35" />
<g
id="g35"
transform="translate(-15.952034,-50.670754)">
<rect
style="fill:#81ffc7;fill-opacity:1;stroke:#000000;stroke-width:0.526025;stroke-dasharray:none"
id="rect35"
width="52.478481"
height="17.513748"
x="153.81845"
y="107.17479"
ry="1.6990631" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="158.16835"
y="113.52198"
id="text35"><tspan
sodipodi:role="line"
id="tspan35"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="158.16835"
y="113.52198">Object C1 (Empty)</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="158.16835"
y="117.64227"
id="tspan46">+ blueprintName(&quot;ObjectC&quot;)</tspan><tspan
sodipodi:role="line"
style="stroke-width:0.264583"
x="158.16835"
y="121.76254"
id="tspan49"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none"
id="tspan80">+ spawnHere</tspan> </tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:2.11666, 0.264583;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
d="m 226.2693,42.010871 -42.64565,15.18405"
id="path36"
sodipodi:nodetypes="cc" />
</g>
<text
xml:space="preserve"
style="font-size:3.175px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="124.89855"
y="112.52866"
id="text36"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="124.89855"
y="112.52866"
id="tspan39">Determine used Collections to export</tspan></text>
<rect
style="fill:#ff9342;fill-opacity:1;stroke:#000000;stroke-width:0.32101;stroke-dasharray:none"
id="rect36"
width="56.190514"
height="15.891233"
x="138.2263"
y="116.5061"
ry="1.5416578" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="142.59734"
y="122.87442"
id="text37"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="142.59734"
y="122.87442"
id="tspan40">Object B</tspan><tspan
sodipodi:role="line"
style="stroke-width:0.264583"
x="142.59734"
y="126.84317"
id="tspan41" /></text>
<rect
style="fill:#ff9342;fill-opacity:1;stroke:#000000;stroke-width:0.321404;stroke-dasharray:none"
id="rect37"
width="56.190121"
height="15.930397"
x="138.2265"
y="134.55496"
ry="1.5454572" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="142.59734"
y="140.92308"
id="text38"><tspan
sodipodi:role="line"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="142.59734"
y="140.92308"
id="tspan42">Object C</tspan><tspan
sodipodi:role="line"
style="stroke-width:0.264583"
x="142.59734"
y="144.89183"
id="tspan43" /></text>
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#RoundedArrow)"
d="m 108.69996,177.9456 v 9.30451"
id="path49"
sodipodi:nodetypes="cc" />
<rect
style="fill:none;stroke:#000000;stroke-width:0.336158;stroke-dasharray:none"
id="rect49"
width="201.28026"
height="86.298004"
x="4.9929576"
y="193.0849"
ry="3.0587275" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:#000000;stroke:none;stroke-width:0.264583;fill-opacity:1"
x="106.60861"
y="201.20203"
id="text50"><tspan
sodipodi:role="line"
id="tspan50"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="106.60861"
y="201.20203">Result</tspan></text>
<rect
style="fill:none;stroke:#000000;stroke-width:0.272675;stroke-dasharray:none"
id="rect50"
width="82.256355"
height="48.138226"
x="115.07077"
y="207.5529"
ry="4.6700392" />
<g
id="g63"
transform="translate(-90.659631,198.60285)">
<g
id="g52"
transform="translate(-8.7898623,-68.268248)"
style="fill:#efff81;fill-opacity:1">
<rect
style="fill:#efff81;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
id="rect52"
width="21.240173"
height="10.947481"
x="120.16953"
y="92.749634"
ry="1.0620492" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:#efff81;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="124.65015"
y="97.110878"
id="text52"><tspan
sodipodi:role="line"
id="tspan52"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="124.65015"
y="97.110878">Entity A</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="124.65015"
y="101.23116"
id="tspan74">(unique)</tspan></text>
</g>
<rect
style="fill:none;stroke:#000000;stroke-width:0.336001;stroke-dasharray:none"
id="rect51"
width="89.327034"
height="67.307678"
x="104.25188"
y="9.3385649"
ry="6.5297275" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:#0090ff;fill-opacity:1;stroke:#0090ff;stroke-width:0.264583;stroke-opacity:1"
x="135.33"
y="14.70156"
id="text53"><tspan
sodipodi:role="line"
id="tspan53"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';fill:#0090ff;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="135.33"
y="14.70156">world/level.gltf</tspan></text>
<g
id="g56"
transform="translate(-19.939658,-65.832448)"
style="fill:#81ffc7;fill-opacity:1">
<rect
style="fill:#81ffc7;fill-opacity:1;stroke:#000000;stroke-width:0.505434;stroke-dasharray:none"
id="rect53"
width="52.860485"
height="16.052649"
x="157.90318"
y="84.256462"
ry="1.5573175" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:#81ffc7;fill-opacity:1;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="162.26337"
y="90.613953"
id="text56"><tspan
sodipodi:role="line"
id="tspan54"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="162.26337"
y="90.613953">Entity B1</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="162.26337"
y="94.734238"
id="tspan55">+ blueprintName(&quot;ObjectB&quot;)</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="162.26337"
y="98.854515"
id="tspan56">+ spawnHere </tspan></text>
</g>
<g
id="g59"
transform="translate(-15.528392,-70.796885)">
<rect
style="fill:#81ffc7;fill-opacity:1;stroke:#000000;stroke-width:0.528181;stroke-dasharray:none"
id="rect56"
width="51.925056"
height="17.845793"
x="153.81953"
y="107.17587"
ry="1.7312757" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="158.16835"
y="113.52198"
id="text59"><tspan
sodipodi:role="line"
id="tspan57"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="158.16835"
y="113.52198">Entity C0</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="158.16835"
y="117.64227"
id="tspan58">+ blueprintName(&quot;ObjectC&quot;)</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="158.16835"
y="121.76254"
id="tspan59">+ spawnHere </tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:2.11666, 0.264583;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
d="M 226.2693,25.28543 H 183.09695"
id="path59" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:2.11666, 0.264583;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
d="M 226.2693,42.010871 H 183.09695"
id="path60" />
<g
id="g62"
transform="translate(-15.952034,-50.670754)">
<rect
style="fill:#81ffc7;fill-opacity:1;stroke:#000000;stroke-width:0.526025;stroke-dasharray:none"
id="rect60"
width="52.478481"
height="17.513748"
x="153.81845"
y="107.17479"
ry="1.6990631" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="158.16835"
y="113.52198"
id="text62"><tspan
sodipodi:role="line"
id="tspan60"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="158.16835"
y="113.52198">Entity C1</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="158.16835"
y="117.64227"
id="tspan61">+ blueprintName(&quot;ObjectC&quot;)</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="158.16835"
y="121.76254"
id="tspan62">+ spawnHere </tspan></text>
</g>
<path
style="fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:2.11666, 0.264583;stroke-dashoffset:0;marker-end:url(#ArrowWide)"
d="m 226.2693,42.010871 -42.64565,15.18405"
id="path62"
sodipodi:nodetypes="cc" />
</g>
<text
xml:space="preserve"
style="font-size:3.175px;fill:#0090ff;fill-opacity:1;stroke:#0090ff;stroke-width:0.264583;stroke-opacity:1"
x="117.87988"
y="214.18282"
id="text63"><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Bold';fill:#0090ff;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1"
x="117.87988"
y="214.18282"
id="tspan63">Library of gltf files (one per Collection/Blueprint)</tspan></text>
<rect
style="fill:#ff9342;fill-opacity:1;stroke:#000000;stroke-width:0.32101;stroke-dasharray:none"
id="rect63"
width="56.190514"
height="15.891233"
x="138.2263"
y="218.15141"
ry="1.5416578" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="142.59734"
y="224.51973"
id="text66"><tspan
sodipodi:role="line"
id="tspan64"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="142.59734"
y="224.51973">Object B.gltf </tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="142.59734"
y="228.64001"
id="tspan65"> + blueprintName(&quot;ObjectB&quot;)</tspan><tspan
sodipodi:role="line"
style="stroke-width:0.264583"
x="142.59734"
y="232.60876"
id="tspan66" /></text>
<rect
style="fill:#ff9342;fill-opacity:1;stroke:#000000;stroke-width:0.321404;stroke-dasharray:none"
id="rect66"
width="56.190121"
height="15.930397"
x="138.2265"
y="236.20027"
ry="1.5454572" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="142.59734"
y="242.56839"
id="text69"><tspan
sodipodi:role="line"
id="tspan67"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="142.59734"
y="242.56839">Object C:.gltf</tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="142.59734"
y="246.68867"
id="tspan68"> + blueprintName(&quot;ObjectC&quot;)</tspan><tspan
sodipodi:role="line"
style="stroke-width:0.264583"
x="142.59734"
y="250.65742"
id="tspan69" /></text>
<g
id="g70"
transform="translate(0,11.775225)">
<rect
style="fill:#ff9342;fill-opacity:1;stroke:#000000;stroke-width:0.27923;stroke-dasharray:none"
id="rect69"
width="56.232292"
height="12.014979"
x="138.20541"
y="46.766541"
ry="1.1656103" />
<text
xml:space="preserve"
style="font-size:3.175px;fill:none;stroke:#000000;stroke-width:0.264583;stroke-dasharray:none"
x="142.59734"
y="52.097412"
id="text70"><tspan
sodipodi:role="line"
id="tspan70"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="142.59734"
y="52.097412">Object D: unused collection/ </tspan><tspan
sodipodi:role="line"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
x="142.59734"
y="56.217693"
id="tspan71">blueprint</tspan></text>
</g>
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#RoundedArrow)"
d="M 56.761407,72.285855 V 101.91653"
id="path74"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#RoundedArrow)"
d="m 56.761407,173.65448 v 29.63068"
id="path75"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#RoundedArrow)"
d="M 157.79469,72.285855 V 101.91653"
id="path76"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-dasharray:none;stroke-dashoffset:0;marker-end:url(#RoundedArrow)"
d="m 157.79469,173.40943 v 29.63068"
id="path77"
sodipodi:nodetypes="cc" />
</g>
</svg>