Гайд по створенню ARENA-моделі з використанням програмного коду для Createra!
Автор - Crypto Madness (@breezy4L)💙
Як часто ви задумуєтесь над тим, як полегшити своє життя завдяки різним лайфхакам, ідеям чи власній кмітливості ? Як часто ви обираєте коротший шлях додому і швидший результат від виконаного, задля власного комфорту, закриваючи очі на те, що довгі прогулянки - це корисно, а результат не одразу - це робота на перспективу ?
Ви скажете, що в певній мірі полегшувати процес життя навпаки потрібно і навіть дуже... І я з радістю з вами буду згоден, але тільки в тому випадку, якщо у вашій життєвій валізі є достатньо досвіду, знань і навичок в тому чи іншому ділі.
Мова йде про те, що тільки на цьому етапі, пройшовши детальні курси: Створення VOXA-моделі | Створення ARENA-моделі, нам доречно переходити до автоматизації нашого моделювання, до полегшення редагування і загалом роботи із розділом "Create".
Отож, сьогодні ми відправимось у загадковий ліс, наповнений смаком запашних квітів, сповнений яскравістю зелені та зігрітий масивами дерев.
1.1. Переходимо сайт Createra і відповідно гайду по ARENA створюємо порожню карту.
1.2. У розділі "Models" знаходимо: Grass, Tree i Flower і розташовуємо їх на карті (виконується для зберігання моделей в буфер вашого проекту). Після цього користуємось ↩️ і очищуємо карту.
Мої вітання друже, ти за крок до того, щоб відчути всю велич кодування в Createra! 🥳
2.1. У головному меню (зліва) натискаємо на Map і потрапляємо в поле Scripts, яке й існує для написання скриптів (все що захочете) для нашої карти.
Тестова частина кодування
2.2. Створюємо сутність моделі в сцені, використовуючи Mesh File (сітка, яка відповідає за розташування моделей в буфері проекту).
const meshScale = 1/16 //Встановити коеф. масштабування моделі на 1/16 (за замовчуванням) world.createEntity({ mesh:'mesh/Grass-2.vb',//назва сітки(моделі) collides:false,//на модель впливає колізія чи ні fixed:true,//позиція моделі фіксована чи ні gravity:false,//на модель діє гравітація чи ні meshScale:[meshScale,meshScale,meshScale],//масштабний коефіцієнт по осі X/Y/Z position:[63,10,63], })
2.3. Описуємо функцію для створення кількох сутностей моделі за допомогою різних файлів сітки.
function spawn(x,y,z,meshName){ const meshScale = 1/16 //Set the model's scaling factor to 1/16 (default) return world.createEntity({ mesh:meshName,//назва сітки(моделі) collides:false,//на модель впливає колізія чи ні fixed:true,//позиція моделі фіксована чи ні gravity:false,//на модель діє гравітація чи ні meshScale:[meshScale,meshScale,meshScale],//масштабний коефіцієнт по осі X/Y/Z position:[x,y,z], }) } spawn(63,10,63,'mesh/Grass-2.vb') //розмістить 1 екземпляр Grass за координатами (x-63,y-10,z-63) spawn(63,10,65,'mesh/Flower.vb') //аналогічно тільки з Flower spawn(63,10,67,'mesh/Tree-3.vb') //аналогічно тільки з Tree
2.4. Створюємо 3 цикла (for) для випадкового розташування наших моделей, а саме: Grass, Flower i Tree.
for(var i=0;i<800;i++){ spawn(Math.random()*127,9,Math.random()*127,'mesh/Grass-2.vb',1) } for(var i=0;i<50;i++){ spawn(Math.random()*127,9,Math.random()*127,'mesh/Flower.vb',1) } for(var i=0;i<100;i++){ spawn(Math.random()*127,9,Math.random()*127,'mesh/Tree-3.vb',3+3*Math.random()) }
Не повіриш, але ти засвоїв основу для подальшого кодування в Createra, так тримати! 💣
Готова частина кодування
2.5. Вносимо зміни щодо розташування моделі Tree на координаті-Y (пов'язано з тим, що моделі різної висоти, тому виникають деякі нюанси).
function spawn(x,y,z,meshName,scale){ const meshScale = scale/16 const entity = world.createEntity({ mesh:meshName, collides:false, fixed:true, gravity:false, meshScale:[meshScale,meshScale,meshScale], position:[x,y,z], }) correctY(entity) return entity } for(var i=0;i<800;i++){ spawn(Math.random()*127,9,Math.random()*127,'mesh/Grass-2.vb',1) } for(var i=0;i<50;i++){ spawn(Math.random()*127,9,Math.random()*127,'mesh/Flower.vb',1) } for(var i=0;i<100;i++){ let tree = spawn(Math.random()*127,9,Math.random()*127,'mesh/Tree-3.vb',3+3*Math.random()) tree.collides = true } async function correctY(entity){ await sleep(1) entity.position.y += entity.bounds.y }
Момент "ІКС", адже саме зараз ми згенеруємо наш власний мета-ліс із загадковими моделями природи в Createra! 🔥
3.1. Повертаємось до пункту 2.1, копіюємо код із пункту 2.5 і натискаємо на Run (стрілочка в правому верхньому куті).
3.2. Згортаємо середовище розробки повторним натисканням на Map і отримуємо довгоочікуваний результат.
3.3. Додаємо ефектів за бажанням у розділі Scene. На прикладі було використано ефект Snow з текстурою сніжинок.
3.4. Зберігаємо проект (ви вже знайомі з цим з попередніх гайдів).
3.5. Ділимось скріншотами та посиланнями своєї роботи в соціальних мережах (найзручніше Twitter), згадуючи @Createra_ & @jon_wagbi та #Createra #CreateraStudentAmbassadorProgram !
🥳 Кінець статті, але продовження великого внеску для Createra! І хто сказав би, що за такий короткий проміжок часу ми б навчились такого скілу моделювання.
Далі раджу стежити за соціальними мережами, щоб слідкувати за новинами щодо подальших тренінгів, завдань і розвитку подій.
• Website: https://createra.fun
• Twitter: https://twitter.com/CreatEra_
• YouTube: https://www.youtube.com/@CreateraOfficial
• Medium: https://medium.com/@Createra
• Discord: https://discord.gg/9VgYKAwQra
• Telegram: https://t.me/+WdwUKFCWD9YwNmQ9
#CreateraStudentAmbassadorProgram #Createra @jon_wagbi @Createra_