Nyt hack4dk projekt i 2023
Museerne har en skattekiste af open content billeder og 3D-modeller, – projektet her er at bringe dem mere i spil.
Idéen med dette projekt er at vi kan gøre kunst fra museerne etc. tilgængelige på nye platforme, herunder 3D-platforme som børn og unge bruger:
- Roblox – socialt medie med 3D-oplevelser for børn og unge, 80% under 16 år, – mere end hundrede millioner aktive brugere om måneden. Det er muligt tilføje 3D indhold og udvikle spil og oplevelser (i Lua). Det lyder eksempelvis til at alle i min søns klasse er på Roblox.
- Fortnite – socialt medie/spil-platform primært for unge, også mere end hundrede millioner aktive brugere om måneden. Ligeledes muligt tilføje 3D indhold og udvikle spil og oplevelser(i Verse). Jeg oplever at dette er den primære platform hvor min søn mødes med kammerater online.
- VR/AR og 3d generelt
- BabylonJS
- Godot
- 3D-printing
Mulig plan/roadmap:
- ☑ Begynd at kigge på hvilke åbne 3D data der er tilgænglige
- ☑ Tjek op på automatisk konvertering af 3d modeller
- ☑ Tjek op på om hvodan det indlæses i Roblox
- ◻ Overblik over asset stores/samlinger, hvor værkerne kunne lægges op med metadata. (Både 3D og også 2D som textures).
- https://create.roblox.com/marketplace/models (Roblox)
- https://www.fab.com/ (Unreal + Fortnite)
- …
- ◻ Pipeline for at lægge modellerne op
- Eksempelspil, – ud fra typiske spilgenre på platformen, eksempelvis:
- ◻ Museum “tycoon”
- ◻ Obstacle course hvor man hopper mellem eller undviger kunstværker
Kontakt Rasmus Erik, hvis du vil være med!
Konvertering og reduktion
Modellerne kan konverteres automatisk med blender/python, ie.
import bpy
# [... find filer og grad af reduktion,
# ie. ratio = 0.2 reducerer til 20% ...]
# Reset scenen
bpy.ops.object.select_by_type(type='MESH')
bpy.ops.object.delete()
# Indlæs fil
bpy.ops.import_scene.gltf(filepath=input_file);
# eller hvis stl bpy.ops.import_mesh.stl(filepath=input_file)
# Reducer filerne til 20% (ratio kan ændres herunder)
bpy.context.view_layer.objects.active = bpy.context.selected_objects[0]
bpy.ops.object.modifier_add(type='DECIMATE')
bpy.context.object.modifiers["Decimate"].ratio = ratio
bpy.ops.object.modifier_apply({"object":bpy.context.object}, modifier="Decimate")
# Gem filen
bpy.ops.export_scene.gltf(filepath=output_file)
Og scriptet køres med:
blender --background --python script.py
På mac er det:
/Applications/Blender.app/Contents/MacOS/Blender --background --python script.py
Har lagt nogle af modellerne her i mindre størrelse, til andre Hack4DK projekter:
https://veduz.com/smk_stl/out/
Visning i browser
Eksperiment med at vise de konverterede filer i browser vha. BabylonJS:
Roblox
Roblox har et udviklingsmiljø, hvor man kan lave 3d-spil, der kan publiceres på platformen, – 3d-modeller er kan importeres hertil, hvorefter brugeren kan løbe rundt i blandt dem etc:
Vær opmærksom på børnevenlig indholdspolitikken, som en stor del af de græske statuer etc. nok ikke overholder.
Noter
Videre behandling af meshes: Rotation og skalering af 3D-modellerne så de er ens alignede.
Draco som komprimeret mesh format (også relateret til gltf).