Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
7215b3f
drop-target: Add new animation component.
freezy Apr 24, 2025
85c7cb7
debug: Add keyboard mapper.
freezy Apr 25, 2025
83a6ab8
physics: Fix comparision bugs.
freezy Apr 26, 2025
6cb9853
physics: Fix triangulation bug.
freezy Apr 27, 2025
56d2b15
kicker: Cache playfield transform.
freezy Apr 28, 2025
7b100dd
ball: Don't draw debug gizmo without direction.
freezy Apr 29, 2025
554eb02
fix: Check for prefab before generating coil IDs.
freezy Apr 29, 2025
0693a9c
cam: Adjust parameters and drop touch support.
freezy Apr 30, 2025
8721d26
cam: Add lock target.
freezy May 2, 2025
8e55683
cam: Implement ball lock without smoothing
freezy May 2, 2025
c5a0cda
cam: Make it smoother during lock
freezy May 2, 2025
04cada8
cam: Latest changes.
freezy May 4, 2025
ee66fee
cam: Add target lock.
freezy May 10, 2025
fb1e67a
assets: Change thumb format to webp and round corners via UI.
freezy May 11, 2025
bbe2610
game: Add event components.
freezy May 12, 2025
388fab3
assetlib: Add support for moving assets to different library.
freezy May 17, 2025
cb17d05
assetlib: Be more strict when allowing to drag assets to other library.
freezy May 18, 2025
420fd43
assetlib: Fix variation thumb reference.
freezy May 24, 2025
3970c7d
assetlib: Fix variation instantiation when no playfield component is …
freezy May 24, 2025
0b86f9f
assetbrowser: Add support for moving assets across libraries.
freezy Jun 1, 2025
cde583b
assetbrowser: Fix thumb width.
freezy Jun 4, 2025
53e885a
assetbrowser: Add tool to clean up wrongly linked assets.
freezy Jun 6, 2025
ddab9f9
doc: Add note to PNG compression.
freezy Jun 6, 2025
2e8e406
assetbrowser: Fix directory guid after creating new folder.
freezy Jun 6, 2025
c1ce1b9
assetbrowser: Add entire object position and rotation to thumb cam op…
freezy Jun 15, 2025
f5fe7a1
assetbrowser: Add decal variations to edit view and thumbnail generat…
freezy Jun 15, 2025
a6058f6
assetbrowser: First version of decals selector in read-only view.
freezy Jun 15, 2025
ca0aa97
assetbrowser: Split decal previews into a new line for each decal.
freezy Jun 15, 2025
2dd2cdb
assetbrowser: Only show decal names when listing decals, since materi…
freezy Jun 15, 2025
fb9e40c
assetbrowser: Hide material combination with same name.
freezy Jun 15, 2025
b0a0868
assetbrowser: Fix minor UI issues.
freezy Jun 16, 2025
210b5ae
assetbrowser: Add material defaults.
freezy Jun 18, 2025
18507cb
assetbrowser: Add combination rules.
freezy Jun 20, 2025
a7b78ea
assetbrowser: Group obj/slot into target, replace tuples with real cl…
freezy Jun 21, 2025
6682629
assetbrowser: Add group by option.
freezy Jun 28, 2025
ec66509
assetbrowser: Properly group decals variations.
freezy Jun 28, 2025
2040c63
assetbrowser: Fix listing of decal variations.
freezy Jun 28, 2025
0c72874
assetbrowser: Cleanup and don't show original under decal variations.
freezy Jun 29, 2025
45f413d
assetbrowser: More cleanup.
freezy Jun 29, 2025
76a32ed
assetbrowser: Fix displayed variation names.
freezy Jun 29, 2025
2c0cd5b
assetbrowser: Fix selection button text.
freezy Jun 29, 2025
a041e5f
assetbrowser: Fix NPE.
freezy Jul 7, 2025
7b4a004
gates: Make z-low more flexible.
freezy Jul 25, 2025
a175364
anim: Add offset to lever animation, refactor gate and lever animatio…
freezy Aug 14, 2025
189b09f
trigger: Always collide between 0 and height, and fix drag point heig…
freezy Aug 15, 2025
abb11eb
switch-animation: Fix clamp.
freezy Aug 15, 2025
2dc1f9f
animation: Make value provider generic.
freezy Aug 16, 2025
9257ba9
spinner: Add mass and make animation more flexible.
freezy Aug 17, 2025
583021a
animation: Make base class more generic.
freezy Aug 17, 2025
67171f9
fix: Messed up refactoring.
freezy Aug 17, 2025
9288b5b
animation: Make emitter value generic.
freezy Aug 17, 2025
6d0ebaf
animation: Move bumper animation code to component.
freezy Aug 17, 2025
694bfb1
animation: Move flipper animation code to component.
freezy Aug 17, 2025
fe0dae5
animation: Move drop target animation code to component.
freezy Aug 17, 2025
b020d73
animation: Move hit target animation code to component.
freezy Aug 17, 2025
2b443c0
animation: Move hit plunger animation code to component.
freezy Aug 17, 2025
8c42e3f
animation: Move trigger animation code to component.
freezy Aug 17, 2025
edec147
physics: Remove transform references and only keep ball components.
freezy Aug 17, 2025
a189bbd
fix: Minor errors.
freezy Aug 20, 2025
fafdc7b
fix: Emitter proxy.
freezy Aug 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!181963792 &2655988077585873504
Preset:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Mid Distance (less)
m_TargetType:
m_NativeTypeID: 4
m_ManagedTypePPtr: {fileID: 0}
m_ManagedTypeFallback:
m_Properties:
- target: {fileID: 0}
propertyPath: m_LocalRotation.x
value: 0.27781588
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_LocalRotation.y
value: 0.36497167
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_LocalRotation.z
value: -0.1150751
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_LocalRotation.w
value: 0.8811196
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_LocalPosition.x
value: -0.0819
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_LocalPosition.y
value: 0.1051
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_LocalPosition.z
value: -0.0819
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_LocalScale.x
value: 1
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_LocalScale.y
value: 1
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_LocalScale.z
value: 1
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_ConstrainProportionsScale
value: 0
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_LocalEulerAnglesHint.x
value: 35
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_LocalEulerAnglesHint.y
value: 45
objectReference: {fileID: 0}
- target: {fileID: 0}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_ExcludedProperties: []
m_CoupledType:
m_NativeTypeID: 0
m_ManagedTypePPtr: {fileID: 0}
m_ManagedTypeFallback:
m_CoupledProperties: []

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Dot Matrix Display (SRP)
m_Shader: {fileID: -6465566751694194690, guid: 3dfbd2115636a284d89d71fdefd9b4d2,
type: 3}
m_Shader: {fileID: -6465566751694194690, guid: 3dfbd2115636a284d89d71fdefd9b4d2, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
Expand Down Expand Up @@ -197,6 +196,7 @@ Material:
- _DoubleSidedGIMode: 0
- _DoubleSidedNormalMode: 1
- _DstBlend: 0
- _DstBlend2: 0
- _EmissiveColorMode: 1
- _EmissiveExposureWeight: 1
- _EmissiveIntensity: 1
Expand All @@ -205,6 +205,7 @@ Material:
- _EnableFogOnTransparent: 1
- _EnableGeometricSpecularAA: 0
- _EnergyConservingSpecularColor: 1
- _ExcludeFromTUAndAA: 0
- _HeightAmplitude: 0.02
- _HeightCenter: 0.5
- _HeightMapParametrization: 0
Expand All @@ -220,6 +221,7 @@ Material:
- _IridescenceThickness: 1
- _LinkDetailsWithBase: 1
- _MaterialID: 1
- _MaterialTypeMask: 2
- _Metallic: 0
- _MetallicRemapMax: 1
- _MetallicRemapMin: 0
Expand All @@ -231,6 +233,9 @@ Material:
- _PPDMinSamples: 5
- _PPDPrimitiveLength: 1
- _PPDPrimitiveWidth: 1
- _PerPixelSorting: 0
- _QueueControl: -1
- _QueueOffset: 0
- _RayTracing: 0
- _ReceivesSSR: 1
- _ReceivesSSRTransparent: 0
Expand All @@ -250,10 +255,10 @@ Material:
- _StencilRefGBuffer: 10
- _StencilRefMV: 40
- _StencilWriteMask: 6
- _StencilWriteMaskDepth: 8
- _StencilWriteMaskDepth: 9
- _StencilWriteMaskDistortionVec: 4
- _StencilWriteMaskGBuffer: 14
- _StencilWriteMaskMV: 40
- _StencilWriteMaskGBuffer: 15
- _StencilWriteMaskMV: 41
- _SubsurfaceMask: 1
- _SupportDecals: 1
- _SurfaceType: 0
Expand Down Expand Up @@ -287,8 +292,7 @@ Material:
- __SkewAngle: 0
m_Colors:
- Color_754dade2513142578632eb55adb8f59b: {r: 1, g: 0.36865607, b: 0, a: 0}
- Color_a1cf9b5e0df34a8c907984367d220f54: {r: 0.25471696, g: 0.25471696, b: 0.25471696,
a: 0}
- Color_a1cf9b5e0df34a8c907984367d220f54: {r: 0.25471696, g: 0.25471696, b: 0.25471696, a: 0}
- Vector2_59fda9737b9e42259b122fbd66ccd94d: {r: 0.7, g: 0.28, b: 0, a: 0}
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
Expand All @@ -311,6 +315,7 @@ Material:
- __Padding: {r: 0.3, g: 0.5, b: 0, a: 0}
- __UnlitColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &3792289215621747627
MonoBehaviour:
m_ObjectHideFlags: 11
Expand All @@ -323,4 +328,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 5
version: 9
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ Material:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Segment Display (SRP)
m_Shader: {fileID: -6465566751694194690, guid: d54eb986991300e419411008eb1f597d,
type: 3}
m_Shader: {fileID: -6465566751694194690, guid: d54eb986991300e419411008eb1f597d, type: 3}
m_Parent: {fileID: 0}
m_ModifiedSerializedProperties: 0
m_ValidKeywords:
Expand Down Expand Up @@ -115,6 +114,10 @@ Material:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SegmentDisplayCustomFunction_a94cb738cee9426e8bf076adaa3b6811_SegmentData_2_Texture2D:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _SpecularColorMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
Expand Down Expand Up @@ -196,6 +199,7 @@ Material:
- _DoubleSidedGIMode: 0
- _DoubleSidedNormalMode: 1
- _DstBlend: 0
- _DstBlend2: 0
- _EmissiveColorMode: 1
- _EmissiveExposureWeight: 1
- _EmissiveIntensity: 1
Expand All @@ -204,6 +208,7 @@ Material:
- _EnableFogOnTransparent: 1
- _EnableGeometricSpecularAA: 0
- _EnergyConservingSpecularColor: 1
- _ExcludeFromTUAndAA: 0
- _HeightAmplitude: 0.02
- _HeightCenter: 0.5
- _HeightMapParametrization: 0
Expand All @@ -219,6 +224,7 @@ Material:
- _IridescenceThickness: 1
- _LinkDetailsWithBase: 1
- _MaterialID: 1
- _MaterialTypeMask: 2
- _Metallic: 0
- _MetallicRemapMax: 1
- _MetallicRemapMin: 0
Expand All @@ -230,6 +236,9 @@ Material:
- _PPDMinSamples: 5
- _PPDPrimitiveLength: 1
- _PPDPrimitiveWidth: 1
- _PerPixelSorting: 0
- _QueueControl: -1
- _QueueOffset: 0
- _RayTracing: 0
- _ReceivesSSR: 1
- _ReceivesSSRTransparent: 0
Expand All @@ -249,10 +258,10 @@ Material:
- _StencilRefGBuffer: 10
- _StencilRefMV: 40
- _StencilWriteMask: 6
- _StencilWriteMaskDepth: 8
- _StencilWriteMaskDepth: 9
- _StencilWriteMaskDistortionVec: 4
- _StencilWriteMaskGBuffer: 14
- _StencilWriteMaskMV: 40
- _StencilWriteMaskGBuffer: 15
- _StencilWriteMaskMV: 41
- _SubsurfaceMask: 1
- _SupportDecals: 1
- _SurfaceType: 0
Expand All @@ -276,6 +285,7 @@ Material:
- _ZTestGBuffer: 4
- _ZTestTransparent: 4
- _ZWrite: 1
- __Emission: 1
- __HorizontalMiddle: 0
- __NumChars: 2
- __NumSegments: 14
Expand All @@ -285,8 +295,7 @@ Material:
- __SkewAngle: 0
m_Colors:
- Color_754dade2513142578632eb55adb8f59b: {r: 1, g: 0.36865607, b: 0, a: 0}
- Color_a1cf9b5e0df34a8c907984367d220f54: {r: 0.25471696, g: 0.25471696, b: 0.25471696,
a: 0}
- Color_a1cf9b5e0df34a8c907984367d220f54: {r: 0.25471696, g: 0.25471696, b: 0.25471696, a: 0}
- Vector2_59fda9737b9e42259b122fbd66ccd94d: {r: 0.7, g: 0.28, b: 0, a: 0}
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0}
Expand All @@ -309,6 +318,7 @@ Material:
- __SeparatorPos: {r: 1.4, g: 0, b: 0, a: 0}
- __UnlitColor: {r: 0.25471696, g: 0.25471696, b: 0.25471696, a: 0}
m_BuildTextureStacks: []
m_AllowLocking: 1
--- !u!114 &6529312484818753363
MonoBehaviour:
m_ObjectHideFlags: 11
Expand All @@ -321,4 +331,4 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 5
version: 9
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,6 @@ The smoothness map (the inverse of a roughness map) defines how regularly light
All texture maps must use power-of-two dimensions for width and height (e.g., 256, 512, 1024). They don't have to be square.

<img src="assetlib-map-sizes.png" style="max-height:200px" /><br>
<i>Metallicness set to 1 with smoothness going from 0 to 1.</i>

We're aiming for a resolution of about 6 pixels per millimeter (approximately 150 DPI). For a playfield texture, this means roughly 4096×8192 pixels. Use this resolution when possible, but don't upscale images — the highest resolution should be from your source. This applies to both color and normal maps. For metallic/smoothness maps, half the resolution of the color map is a good balance between performance and visual fidelity.

Expand All @@ -224,15 +223,14 @@ We're aiming for a resolution of about 6 pixels per millimeter (approximately 15
>
> So, a texture map at 296×296 would correspond to 6px / mm. Since we're at power of twos, we could go for either 512×512 or 256×256.

### Compression

### File Format

Export your texture maps in **PNG format**. Use 32-bit if they include an alpha channel; otherwise, 24-bit is sufficient.
Export your texture maps in **PNG format**. Use 32-bit if they include an alpha channel; otherwise, 24-bit is sufficient. Use halved resolution for the mask map. Don't quantize / TinyPNG your maps, since together with the GPU's block compression they will result in artifacts.

> [!note]
> Many artists prefer to export their textures as TGA due to faster read/write speeds, but TGA files consume significantly more space. PNG uses lossless compression, and once imported, Unity stores textures in a GPU-friendly format anyway. Additionally, when exporting to the `.vpe` format, image textures are converted into a runtime-optimized format.

In terms of *packaging*, Unity's HDRP stores metallic, ambient occlusion and smoothness in what they call a [mask map](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@17.2/manual/Mask-Map-and-Detail-Map.html). Substance Painter exports this out of the box, but it should be pretty easy to do with Blender as well.
In terms of *packaging*, Unity's HDRP stores metallic, ambient occlusion and smoothness in what they call a [mask map](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@17.2/manual/Mask-Map-and-Detail-Map.html). Substance Painter exports this out of the box, but it should be pretty easy to do with Blender as well.

### Wear

Expand Down
Loading
Loading