diff --git a/assets/models/ar_nekomimi.bin b/assets/models/ar_nekomimi.bin new file mode 100644 index 0000000..dc537a5 Binary files /dev/null and b/assets/models/ar_nekomimi.bin differ diff --git a/assets/models/ar_nekomimi.gltf b/assets/models/ar_nekomimi.gltf new file mode 100644 index 0000000..c88d030 --- /dev/null +++ b/assets/models/ar_nekomimi.gltf @@ -0,0 +1,208 @@ +{ + "asset":{ + "generator":"Khronos glTF Blender I/O v4.2.60", + "version":"2.0" + }, + "scene":0, + "scenes":[ + { + "name":"Scene", + "nodes":[ + 0 + ] + } + ], + "nodes":[ + { + "mesh":0, + "name":"Cube", + "rotation":[ + 0.02528117410838604, + 0.1163245439529419, + 0.2057507038116455, + 0.9713373780250549 + ], + "scale":[ + 0.4183187484741211, + 0.4183187484741211, + 0.08126619458198547 + ], + "translation":[ + -0.11588791012763977, + 0.9098548889160156, + 0.18442729115486145 + ] + } + ], + "materials":[ + { + "doubleSided":true, + "name":"SuitV2_white", + "pbrMetallicRoughness":{ + "baseColorTexture":{ + "index":0 + }, + "metallicFactor":0.648099422454834, + "roughnessFactor":0.75 + } + }, + { + "doubleSided":true, + "name":"SuitV2_black", + "pbrMetallicRoughness":{ + "baseColorFactor":[ + 0.026928085833787918, + 0.026928085833787918, + 0.026928085833787918, + 1 + ], + "metallicFactor":0.3655180037021637, + "roughnessFactor":0.7267752289772034 + } + } + ], + "meshes":[ + { + "name":"Cube", + "primitives":[ + { + "attributes":{ + "POSITION":0, + "TEXCOORD_0":1 + }, + "indices":2, + "material":0 + }, + { + "attributes":{ + "POSITION":3, + "TEXCOORD_0":4 + }, + "indices":5, + "material":1 + } + ] + } + ], + "textures":[ + { + "sampler":0, + "source":0 + } + ], + "images":[ + { + "mimeType":"image/jpeg", + "name":"suit", + "uri":"textures/suit.jpg" + } + ], + "accessors":[ + { + "bufferView":0, + "componentType":5126, + "count":16, + "max":[ + 0.5989817976951599, + 0.08483065664768219, + 0.8132073879241943 + ], + "min":[ + -0.14874723553657532, + -0.5023269653320312, + -0.3295954763889313 + ], + "type":"VEC3" + }, + { + "bufferView":1, + "componentType":5126, + "count":16, + "type":"VEC2" + }, + { + "bufferView":2, + "componentType":5123, + "count":60, + "type":"SCALAR" + }, + { + "bufferView":3, + "componentType":5126, + "count":8, + "max":[ + 0.5835986137390137, + 0.06933381408452988, + 0.8132073879241943 + ], + "min":[ + -0.14856749773025513, + -0.5023269653320312, + -0.07371209561824799 + ], + "type":"VEC3" + }, + { + "bufferView":4, + "componentType":5126, + "count":8, + "type":"VEC2" + }, + { + "bufferView":5, + "componentType":5123, + "count":12, + "type":"SCALAR" + } + ], + "bufferViews":[ + { + "buffer":0, + "byteLength":192, + "byteOffset":0, + "target":34962 + }, + { + "buffer":0, + "byteLength":128, + "byteOffset":192, + "target":34962 + }, + { + "buffer":0, + "byteLength":120, + "byteOffset":320, + "target":34963 + }, + { + "buffer":0, + "byteLength":96, + "byteOffset":440, + "target":34962 + }, + { + "buffer":0, + "byteLength":64, + "byteOffset":536, + "target":34962 + }, + { + "buffer":0, + "byteLength":24, + "byteOffset":600, + "target":34963 + } + ], + "samplers":[ + { + "magFilter":9729, + "minFilter":9987 + } + ], + "buffers":[ + { + "byteLength":624, + "uri":"ar_nekomimi.bin" + } + ] +} diff --git a/src/blender/ar_nekomimi.blend b/src/blender/ar_nekomimi.blend new file mode 100644 index 0000000..56d13ce Binary files /dev/null and b/src/blender/ar_nekomimi.blend differ diff --git a/src/hud.rs b/src/hud.rs index 6acb81b..58e167f 100644 --- a/src/hud.rs +++ b/src/hud.rs @@ -47,6 +47,7 @@ pub const PLAYER_AR_AVATARS: &[(Avatar, &str, f32, &str)] = &[ (Avatar::None, "", 1.0, "No Avatar"), (Avatar::ChefHat, "suit_ar_chefhat", 1.0, "Chef Hat"), (Avatar::Skirt, "suit_ar_skirt", 1.0, "Skirt"), + (Avatar::Nekomimi, "suit_ar_nekomimi", 1.0, "Cat Ears"), (Avatar::Wings, "suit_ar_wings", 1.0, "Wings"), (Avatar::Asteroid, "asteroid2", 1.2, "Asteroid"), ]; @@ -177,6 +178,7 @@ struct FPSUpdateTimer(Timer); pub enum Avatar { None, ChefHat, + Nekomimi, Skirt, Wings, Asteroid, diff --git a/src/load.rs b/src/load.rs index c374f51..8b2ac99 100644 --- a/src/load.rs +++ b/src/load.rs @@ -30,6 +30,7 @@ pub fn asset_name_to_path(name: &str) -> &'static str { match name { "suitv2" => "models/suit_v2.gltf#Scene0", "suit_ar_chefhat" => "models/suit_v2/ar_chefhat.glb#Scene0", + "suit_ar_nekomimi" => "models/ar_nekomimi.gltf#Scene0", "suit_ar_skirt" => "models/ar_skirt.gltf#Scene0", "suit_ar_wings" => "models/suit_v2/ar_wings.glb#Scene0", "sus" => "models/sus.glb#Scene0",