Первый коммит после распаковки архива
BIN
public/animations/feminine/glb/idle/F_Standing_Idle_001.glb
Normal file
BIN
public/animations/feminine/glb/locomotion/F_Walk_001.glb
Normal file
BIN
public/animations/feminine/glb/locomotion/F_Walk_002.glb
Normal file
BIN
public/animations/masculine/glb/idle/M_Standing_Idle_001.glb
Normal file
BIN
public/animations/masculine/glb/idle/M_Standing_Idle_002.glb
Normal file
BIN
public/animations/masculine/glb/locomotion/M_Walk_001.fbx
Normal file
BIN
public/animations/masculine/glb/locomotion/M_Walk_001.glb
Normal file
BIN
public/animations/masculine/glb/locomotion/M_Walk_002.fbx
Normal file
BIN
public/animations/masculine/glb/locomotion/M_Walk_002.glb
Normal file
BIN
public/audio/TR4-FG8-Hj2.ogg
Normal file
BIN
public/audio/X-b7kG-z3Lp.ogg
Normal file
BIN
public/audio/firs.ogg
Normal file
153
public/dialogs/Adventurer.json
Normal file
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"name": "Галина",
|
||||
"avatar": "/images/npc/bartender.jpg",
|
||||
"filename": "Adventurer.json",
|
||||
"dialog": [
|
||||
{
|
||||
"id": 0,
|
||||
"text": "Ну? Значит, ты к нам за работой припёрся? Ладно, давай документы...",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Документов нет",
|
||||
"next": 1
|
||||
},
|
||||
{
|
||||
"text": "Я просто осматриваюсь...",
|
||||
"next": 2
|
||||
},
|
||||
{
|
||||
"text": "...",
|
||||
"end": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"text": "Ах, у тебя их нет? Я бы удивилась другому развитию событий. Тогда придется заполнить их. Писать то хоть умеешь?",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Как-нибудь справлюсь",
|
||||
"next": "form_data"
|
||||
},
|
||||
{
|
||||
"text": "Может, есть работа без документов?",
|
||||
"next": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"text": "Осматриваешься? Ну-ну... Только не задерживайся слишком долго. В нашем городе без дела болтаться — себе дороже.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "А куда можно пойти?",
|
||||
"next": 3
|
||||
},
|
||||
{
|
||||
"text": "Ладно, тогда давай документы...",
|
||||
"next": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"text": "Слушай, есть один парень... сидит в кустах за углом. Зовут его Костя Ключник. Он как раз набирает людей для одной работы. Только не говори, что я тебя направила.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Спасибо, попробую",
|
||||
"next": 4
|
||||
},
|
||||
{
|
||||
"text": "А что за работа?",
|
||||
"next": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"text": "Ну иди уже, не задерживайся. И смотри в оба — Костя любит шутки, но не над собой.",
|
||||
"answers": [
|
||||
{
|
||||
"end": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"text": "Если бы я знала все детали, сама бы там работала. Иди сам узнаешь. Если, конечно, не струсишь.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Ладно, иду",
|
||||
"next": 4
|
||||
},
|
||||
{
|
||||
"text": "Может, лучше заполню документы?",
|
||||
"next": "form_data"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "form_data",
|
||||
"type": "form",
|
||||
"title": "Заполнение анкеты",
|
||||
"fields": [
|
||||
{
|
||||
"name": "skills",
|
||||
"label": "Твои навыки и перки:",
|
||||
"type": "text",
|
||||
"placeholder": "Навыки через запятую",
|
||||
"required": true
|
||||
},
|
||||
{
|
||||
"name": "work_experience",
|
||||
"label": "Предыдущие места работы:",
|
||||
"type": "textarea",
|
||||
"placeholder": "Где и кем работал",
|
||||
"required": false
|
||||
},
|
||||
{
|
||||
"name": "background",
|
||||
"label": "Твое прошлое:",
|
||||
"type": "textarea",
|
||||
"placeholder": "Краткая информация о себе",
|
||||
"required": false
|
||||
}
|
||||
],
|
||||
"submit_text": "Отправить данные",
|
||||
"next": 6
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"text": "Так... посмотрим что тут... (долго листает бумаги) Ну ты и говно, дружок. Ладно, есть для тебя один вариант.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Какой?",
|
||||
"next": 7
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"text": "Слушай сюда. Есть один парень... сидит в кустах за углом. Зовут его Костя Ключник. Он как раз набирает людей. Вот и вся вакансия.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "И это всё?",
|
||||
"next": 8
|
||||
},
|
||||
{
|
||||
"text": "Ладно, пойду",
|
||||
"next": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"text": "Да, это всё. Ты думал, у нас тут офис белых воротничков? Иди уже, не задерживайся.",
|
||||
"answers": [
|
||||
{
|
||||
"end": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
167
public/dialogs/BeachCharacter.json
Normal file
@@ -0,0 +1,167 @@
|
||||
{
|
||||
"name": "Костя Ключник",
|
||||
"avatar": "/images/npc/guard.jpg",
|
||||
"filename": "BeachCharacter.json",
|
||||
"dialog": [
|
||||
{
|
||||
"id": 0,
|
||||
"text": "(нервно озираясь по сторонам) Тссс... Ты кто такой? Мент? А? Нет? Ну ладно... (быстро чешет нос) Галина говорила? Ну эта... которая в баре...",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Да, она направила",
|
||||
"next": 1
|
||||
},
|
||||
{
|
||||
"text": "Кто такая Галина?",
|
||||
"next": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"text": "(хихикает) Ага, ну конечно направила... Она у нас вся такая... (внезапно серьёзнеет) Ладно, браток, работа есть. Но сначала... (ковыряет в носу) Ты че, стремаешься?",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Какая работа?",
|
||||
"next": 3
|
||||
},
|
||||
{
|
||||
"text": "Ты че такой странный?",
|
||||
"next": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"text": "(параноидально оглядывается) Ты че, прикалываешься? Галина! Ну... (делает жест рукой у рта) Которая... Ну в общем... (внезапно меняет тему) Ты хочешь заработать или нет?",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Хочу заработать",
|
||||
"next": 3
|
||||
},
|
||||
{
|
||||
"text": "Ты точно нормальный?",
|
||||
"next": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"text": "(потирает руки) Оооо, братан, работа огонь! Цифры взламывать будем! (внезапно замолкает, прислушивается) Ты слышал? Нет? Ну ладно... (быстро) Но сначала... (достаёт из кармана пакетик) Хочешь попробовать? Для смелости...",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Давай попробую",
|
||||
"next": 5
|
||||
},
|
||||
{
|
||||
"text": "Нет, я не употребляю",
|
||||
"next": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"text": "(нервно смеётся) Нормальный? Да я самый нормальный тут! (вдруг серьёзнеет) Вот только вчера... Нет, не буду рассказывать... (глаза бегают) Ты работу хочешь или нет?",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Хочу работу",
|
||||
"next": 3
|
||||
},
|
||||
{
|
||||
"text": "Ты пугаешь меня",
|
||||
"next": 7
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"text": "(радостно) Ооо, наш человек! (суёт пакетик) На вот, только не всё сразу, а то... (делает широкий жест руками) Бах! И тебя нет! Ха-ха! Ладно, заходи завтра, когда... ну... разберёшься со своими делами. Я тебе всё расскажу.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Ладно, приду завтра",
|
||||
"next": 8,
|
||||
"quest_start": "hack_job"
|
||||
},
|
||||
{
|
||||
"text": "Может лучше прямо сейчас?",
|
||||
"next": 9
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"text": "(разочарованно) Фу, скукота... (пожимает плечами) Ну ладно, работа всё равно есть. Заходи завтра, я тебе всё расскажу. Только... (понижает голос) Никому не говори, ладно?",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Хорошо, приду завтра",
|
||||
"next": 8,
|
||||
"quest_start": "hack_job"
|
||||
},
|
||||
{
|
||||
"text": "А можно подробнее?",
|
||||
"next": 10
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"text": "(внезапно злится) Пугаю? Да я тебя... (резко успокаивается) Ладно, братан, иди отсюда. Не для тебя эта работа. (начинает что-то бормотать себе под нос)",
|
||||
"answers": [
|
||||
{
|
||||
"end": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"text": "(кивает) Молодец. Запомни: подвал за углом, охраннику скажешь... (шёпотом) 'берёзовый сок'. Он тебя пропустит. И... (внезапно хватает за руку) Только никому, понял? Ни-ко-му!",
|
||||
"answers": [
|
||||
{
|
||||
"end": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"text": "(панически) Сейчас? Нет, нет, нет! (осматривается) Слишком много... глаз. Завтра. Только завтра. (начинает быстро уходить)",
|
||||
"answers": [
|
||||
{
|
||||
"end": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"text": "(нервно оглядывается) Подробнее? Ну... (понижает голос) Есть подвал. Там компы. Надо... ну... (делает движение пальцами как при печати) Взламывать. Охраннику скажешь 'берёзовый сок' - пропустит. Всё. Больше ничего не знаю. (начинает чесаться)",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Понятно, приду завтра",
|
||||
"next": 8,
|
||||
"quest_start": "hack_job"
|
||||
},
|
||||
{
|
||||
"text": "Это незаконно!",
|
||||
"next": 11
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"text": "(истерично смеётся) Законно? Ха! В этом городе? (внезапно серьёзнеет) Ладно, иди отсюда, мальчик. Ищи себе 'законную' работу. (поворачивается спиной)",
|
||||
"answers": [
|
||||
{
|
||||
"end": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "hack_job",
|
||||
"type": "quest",
|
||||
"title": "Взлом в подвале",
|
||||
"description": "Нужно проникнуть в подвал, сказав охраннику пароль 'берёзовый сок', и взломать данные",
|
||||
"location": "/locations/basement.json",
|
||||
"reward": "500 кредитов",
|
||||
"next": 8
|
||||
}
|
||||
]
|
||||
}
|
||||
33
public/dialogs/Oxranik.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"name": "Охранник",
|
||||
"avatar": "/images/npc/guard.jpg",
|
||||
"filename": "Oxranik.json",
|
||||
"dialog": [
|
||||
{
|
||||
"id": 0,
|
||||
"text": "Стоять! Кто такой?",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Березовый сок",
|
||||
"next": 1,
|
||||
"required_quest": "hack_job"
|
||||
},
|
||||
{
|
||||
"text": "Я ошибся дверью",
|
||||
"end": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"text": "(кивает) Проходи. Но предупреждаю - если что-то пойдет не так, я тебя не знал.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Понял",
|
||||
"quest_progress": "hack_job",
|
||||
"end": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
45
public/dialogs/bartender.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"name": "Серега Пират",
|
||||
"avatar": "/images/npc/bartender.jpg",
|
||||
"filename": "bartender.json",
|
||||
"dialog": [
|
||||
{
|
||||
"id": 0,
|
||||
"text": "Ну что, дружок, застрял как муха в паутине? Или просто решил проверить, насколько крепки эти стены?",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Я... кажется, ошибся дверью.",
|
||||
"end": true
|
||||
},
|
||||
{
|
||||
"text": "Мне сказали, тут можно «устроиться». От Галины.",
|
||||
"next": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"text": "Ага, Галка-весточка. Слушай сюда: правила простые — садишься за комп, выполняешь два задания. Первое — по звукам угадаешь пароль. Второе — в финансовых документах найдёшь косяк. Справишься — получишь свои кровные. Не справишься... ну, сам понимаешь.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "И где этот ваш комп?",
|
||||
"next": 3
|
||||
},
|
||||
{
|
||||
"text": "А сложно будет?",
|
||||
"next": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"text": "*кивает на потрёпанный системник в углу* Там всё включено. Разберёшься. Главное — уши навостри и глаза пошире открой. Как будешь готов — жми любую кнопку.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "*Подойти к компьютеру*",
|
||||
"end": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
105
public/dialogs/guard.json
Normal file
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"name": "Саша Белый",
|
||||
"avatar": "/images/npc/guard.jpg",
|
||||
"filename": "guard.json",
|
||||
"dialog": [
|
||||
{
|
||||
"id": 0,
|
||||
"text": "А вот и новенький подъехал… Чё, глаза такие круглые? Добро пожаловать в Realternity – Moscow City, братан. Тут не экскурсия, так что уши на макушке держи.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Понял...",
|
||||
"next": 1
|
||||
},
|
||||
{
|
||||
"text": "Что это за место?",
|
||||
"next": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"text": "Город у нас большой, светится неоном, как новогодняя ёлка, но под этой мишурой — помойка, крысы да волки. Вверх глянешь — небоскрёбы корпораций, вниз — подземка, где людей за карточку еды режут. Каждый тут сам за себя.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "И что делать?",
|
||||
"next": 2
|
||||
},
|
||||
{
|
||||
"text": "Звучит жутко...",
|
||||
"next": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"text": "Первое правило — хочешь жить, ищи работу. Деньги — это воздух. Без них ты тут не человек, а мусор под ногами.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "А если работы нет?",
|
||||
"next": 3
|
||||
},
|
||||
{
|
||||
"text": "Где искать?",
|
||||
"next": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"text": "Нет работы? Ну, значит, ищешь... альтернативы. Тут таких путей — как тараканов в общаге. Главное — не ной, действуй.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Какие альтернативы?",
|
||||
"next": 5
|
||||
},
|
||||
{
|
||||
"text": "Понятно...",
|
||||
"next": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"text": "Короче, если совсем не врубаешься, топай в Центр Трудоустройства «Нижний Эшелон». Там помогут... ну, если не кинут. Смотри в оба, братан.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Спасибо за совет",
|
||||
"next": 6
|
||||
},
|
||||
{
|
||||
"text": "А где это?",
|
||||
"next": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"text": "Честный ты, нечестный — неважно. Главное — чтоб ты выбрал, по какой дорожке топать. По свету, по тени… или, может, будешь тем, кто идёт посередине и стреляет в обе стороны. Тут за всё платят — вопрос только, чем.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Ясно...",
|
||||
"next": 6
|
||||
},
|
||||
{
|
||||
"text": "Страшновато",
|
||||
"next": 6
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"text": "И запомни: здесь не детский сад. Никто за ручку водить не будет. Или ты адаптируешься… или сгниёшь на подворотне. Всё просто.",
|
||||
"answers": [
|
||||
{
|
||||
"text": "Понял, спасибо",
|
||||
"end": true
|
||||
},
|
||||
{
|
||||
"text": "До встречи",
|
||||
"end": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
81
public/docker-compose.yml
Normal file
@@ -0,0 +1,81 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
cockroachdb:
|
||||
image: cockroachdb/cockroach:latest-v23.1
|
||||
command: start-single-node --insecure --store=attrs=ssd,path=/var/lib/cockroach/
|
||||
restart: "no"
|
||||
volumes:
|
||||
- data:/var/lib/cockroach
|
||||
expose:
|
||||
- "8080"
|
||||
- "26257"
|
||||
ports:
|
||||
- "26257:26257"
|
||||
- "8080:8080"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8080/health?ready=1"]
|
||||
interval: 3s
|
||||
timeout: 3s
|
||||
retries: 5
|
||||
nakama:
|
||||
image: registry.heroiclabs.com/heroiclabs/nakama:3.22.0
|
||||
entrypoint:
|
||||
- "/bin/sh"
|
||||
- "-ecx"
|
||||
- >
|
||||
/nakama/nakama migrate up --database.address root@cockroachdb:26257 &&
|
||||
exec /nakama/nakama --name nakama1 --database.address root@cockroachdb:26257 --logger.level DEBUG --session.token_expiry_sec 7200 --metrics.prometheus_port 9100
|
||||
restart: "no"
|
||||
links:
|
||||
- "cockroachdb:db"
|
||||
depends_on:
|
||||
cockroachdb:
|
||||
condition: service_healthy
|
||||
prometheus:
|
||||
condition: service_started
|
||||
environment:
|
||||
- socket.server_key=mySuperSecretKey123
|
||||
volumes:
|
||||
- ./:/nakama/data
|
||||
expose:
|
||||
- "7349"
|
||||
- "7350"
|
||||
- "7351"
|
||||
- "9100"
|
||||
ports:
|
||||
- "7349:7349"
|
||||
- "7350:7350"
|
||||
- "7351:7351"
|
||||
healthcheck:
|
||||
test: ["CMD", "/nakama/nakama", "healthcheck"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
prometheus:
|
||||
image: prom/prometheus
|
||||
entrypoint: /bin/sh -c
|
||||
command: |
|
||||
'sh -s <<EOF
|
||||
cat > ./prometheus.yml <<EON
|
||||
global:
|
||||
scrape_interval: 15s
|
||||
evaluation_interval: 15s
|
||||
|
||||
scrape_configs:
|
||||
- job_name: prometheus
|
||||
static_configs:
|
||||
- targets: ['localhost:9090']
|
||||
|
||||
- job_name: nakama
|
||||
metrics_path: /
|
||||
static_configs:
|
||||
- targets: ['nakama:9100']
|
||||
EON
|
||||
prometheus --config.file=./prometheus.yml
|
||||
EOF'
|
||||
ports:
|
||||
- "9090:9090"
|
||||
environment:
|
||||
- socket.server_key=SecretKey123321fs
|
||||
volumes:
|
||||
data:
|
||||
BIN
public/images/222.gif
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
public/images/npc/bartender.jpg
Normal file
|
After Width: | Height: | Size: 101 KiB |
BIN
public/images/npc/guard.jpg
Normal file
|
After Width: | Height: | Size: 255 KiB |
BIN
public/images/photo_2025-02-22_19-35-03.jpg
Normal file
|
After Width: | Height: | Size: 101 KiB |
BIN
public/images/photo_2025-02-22_19-39-34.jpg
Normal file
|
After Width: | Height: | Size: 255 KiB |
17
public/index.html
Normal file
@@ -0,0 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Multiplayer Three.js Game on React</title>
|
||||
<meta name="viewport"
|
||||
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
|
||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
|
||||
<meta http-equiv="Pragma" content="no-cache" />
|
||||
<meta http-equiv="Expires" content="0" />
|
||||
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
|
||||
</head>
|
||||
<body style="margin:0; overflow:hidden;">
|
||||
<noscript>Для работы приложения требуется включить JavaScript.</noscript>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
||||
1
public/jquery.min.js
vendored
Normal file
BIN
public/models/Large Building (1).glb
Normal file
BIN
public/models/Punk.glb
Normal file
BIN
public/models/Skyscraper.glb
Normal file
BIN
public/models/Xbot.glb
Normal file
BIN
public/models/animations/M_Walk_001.glb
Normal file
BIN
public/models/animations/M_Walk_002.glb
Normal file
BIN
public/models/animations/Walking.glb
Normal file
BIN
public/models/avocado/Avocado.bin
Normal file
155
public/models/avocado/Avocado.gltf
Normal file
@@ -0,0 +1,155 @@
|
||||
{
|
||||
"accessors": [
|
||||
{
|
||||
"bufferView": 0,
|
||||
"componentType": 5126,
|
||||
"count": 406,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"bufferView": 1,
|
||||
"componentType": 5126,
|
||||
"count": 406,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"bufferView": 2,
|
||||
"componentType": 5126,
|
||||
"count": 406,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"bufferView": 3,
|
||||
"componentType": 5126,
|
||||
"count": 406,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.02128091,
|
||||
0.06284806,
|
||||
0.0138090011
|
||||
],
|
||||
"min": [
|
||||
-0.02128091,
|
||||
-4.773855E-05,
|
||||
-0.013809
|
||||
]
|
||||
},
|
||||
{
|
||||
"bufferView": 4,
|
||||
"componentType": 5123,
|
||||
"count": 2046,
|
||||
"type": "SCALAR"
|
||||
}
|
||||
],
|
||||
"asset": {
|
||||
"generator": "glTF Tools for Unity",
|
||||
"version": "2.0"
|
||||
},
|
||||
"bufferViews": [
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteLength": 3248
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 3248,
|
||||
"byteLength": 4872
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 8120,
|
||||
"byteLength": 6496
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 14616,
|
||||
"byteLength": 4872
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 19488,
|
||||
"byteLength": 4092
|
||||
}
|
||||
],
|
||||
"buffers": [
|
||||
{
|
||||
"uri": "Avocado.bin",
|
||||
"byteLength": 23580
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
{
|
||||
"uri": "Avocado_baseColor.png"
|
||||
},
|
||||
{
|
||||
"uri": "Avocado_roughnessMetallic.png"
|
||||
},
|
||||
{
|
||||
"uri": "Avocado_normal.png"
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 0,
|
||||
"NORMAL": 1,
|
||||
"TANGENT": 2,
|
||||
"POSITION": 3
|
||||
},
|
||||
"indices": 4,
|
||||
"material": 0
|
||||
}
|
||||
],
|
||||
"name": "Avocado"
|
||||
}
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 0
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 1
|
||||
}
|
||||
},
|
||||
"normalTexture": {
|
||||
"index": 2
|
||||
},
|
||||
"name": "2256_Avocado_d"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"mesh": 0,
|
||||
"rotation": [
|
||||
0.0,
|
||||
1.0,
|
||||
0.0,
|
||||
0.0
|
||||
],
|
||||
"name": "Avocado"
|
||||
}
|
||||
],
|
||||
"scene": 0,
|
||||
"scenes": [
|
||||
{
|
||||
"nodes": [
|
||||
0
|
||||
]
|
||||
}
|
||||
],
|
||||
"textures": [
|
||||
{
|
||||
"source": 0
|
||||
},
|
||||
{
|
||||
"source": 1
|
||||
},
|
||||
{
|
||||
"source": 2
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
public/models/avocado/Avocado_baseColor.png
Normal file
|
After Width: | Height: | Size: 3.0 MiB |
BIN
public/models/avocado/Avocado_normal.png
Normal file
|
After Width: | Height: | Size: 3.1 MiB |
BIN
public/models/avocado/Avocado_roughnessMetallic.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |