Вы не вошли.
Я использую ObjectInFrustrum и скрываю если ложь
Да я так и делаю Proxy object Proxy actor, но несмотря на то, что мои деревья, тава, кусты - бревна obj все равно когда их становиться видно фпс падает вдвое, думаю уже бросать проект
Ну вы же делаете gm 3d на совершенно новых технологиях с нуля?
Все же так и не удалось сделать тени на карте, может быть проблема в том, что freeform не показывает на себе тени? Это работает только на примитивах? Или я что-то не так делаю?
Да, но только оговорка - ниже alpha test будет не отображаться вообще, а выше будет считаться полностью непрозрачным, верно?
Нет это не баг я проверил. Дело в том что после уничтожения объекта в степе на следующих строчках еще были функции с этим объектом
То есть уничтожение объекта должно быть самой последней ссылкой в степе на объект-xtreme. Если будет еще этот объект вызываться после в степе тогда игра зависнит или вылетит
Просто в одном объекте не создашь количество нужных xtreme-объектов приближенной к бесконечности, в отличии от создания нового объекта-gm. Таких может быть бесчисленное множество. А делать все в объекте engine дает скончаемое количество (так как каждый xtreme-объект имеет свое имя).
К тому же я использую direction объекта для его поворота по Y и x y гамака, для передвижения. Остается только ObjectSetPosition(object,x,Y,y); Мне это нужно для движения и вычислений функций гамака, которые не стыкуются с объектами xtreme (например instance_nearest(x,y,object)) и их проще выставить в комнате (если они привязаны к x y). Есть какой-то другой способ о котором я не знаю?
Это может быть не баг если после события аларм происходит чтение из события степа объекта. Это может быть так? У меня в событии аларм уничтожается объект, а в степе еще есть функции с этим объектом.
я делаю вот так: ObjectDestroy(object);instance_destroy();
У меня есть разные объекты самого гамака и объекты xtreme внутри их
Я использую o_engine для создания объектов xtreme, потом создаю объект gm и в нем Proxy нужного объекта, чтобы каждый раз не загружать новый, потом его удаляю после использования (взрыва), но при удалении вылетает в редактор или зависает до завершения программы, я убрал удаление xtreme объекта и больше не вылетает. Но объект xtreme остается.
Столкнулся с проблемой уничтожения объектов. Когда это происходит игра вылетает после зависания. Но оставлять объекты мне не нужно, их может быть бесчисленное количество. В справке написано что уничтожать объекты безопасно если нету потомков и у некоторых объектов свои функции уничтожения. У меня нету у этих объектов потомков, но все равно вылетает из игры. Как очистить эти объекты? Ведь нужно экономить память, потому что если их не удалять а просто скрывать то это наверное приведет к неблагоприятному.
Ясно. Спасибо)
А как бороться с z-буфером? Когда полупрозрачные изображения на моделях пересекают друг-друга. Например куст состоит из двух полигонов, повернутых на разные углы, например на 0 и на 90. При вращении модели один полигон перекрывает другой.
В gm это решалось draw_set_alpha_test и reset_volume
Возникла проблема с порядком прорисовки моделей. Я так понял в Xtreme этот порядок определяется по времени создания, то есть, то, что было создано раньше прорисовывается в первую очередь. Такое очень нужно когда используешь прозрачную воду или что-то еще. Модель, погруженная частью в воду сверху прорисовывается, а под водой остальную часть не видно. Можно ли как-то повлиять на этот порядок? В gm это определялось глубиной объектов. Те кто поверх идут с меньшей глубиной depth.
Да нет, спасибо, уже не нужно. Я протестил в отдельном окне, все равно туман присутствует. Смысла нету, только проблемы с назначением клавишь. Например я не нашел замены функции if mouse_check_button(mb_left) и так далее. Вернулся в стандартное окно gm.
Спасибо большое Тимур) Кто бы мог подумать что нужно этот фокус отключить чтобы заработало)
Нужно бы в справочке указать.
А нету функции для разделения нажатия клавиши и зажатия клавиши? В языке gm это два разных понятия...
Можешь подсказать? Что я делаю не так с окном Xtreme?
Я создал новое отдельное окно функцией Xtreme. Подключил вид к нему. Но графики нету. Всё как написано в справке. Какие тут подводные камни?
set_automatic_draw(0);
window_set_visible(0);
randomize();
dll_init('xtreme3d.dll');
EngineCreate();
global.dt = 1.0 / room_speed;
window_xtreme=WindowCreate(0,0,display_get_width(),display_get_height(),false);
view1 = ViewerCreate(0, 0, display_get_width(), display_get_height(), WindowGetHandle(window_xtreme));
Появляется окно, но в нем ничего нету, при закрытии окна в редактор не возвращается (ничего не происходит).
В "диспетчере зад" идет фоном, приходиться в ручную отключать.
В событии закрытия окна поставил game_end(), в событии game end уничтожил окно перед уничтожением движка.
Очень нужно, в стандартном окне gm появляется какой-то туман.
Ясно, спасибо, правильно думаешь
mdtree1=FreeformCreate('models/trees/tree1.obj',0,0,global.scene);
mdlist1=FreeformCreate('models/trees/list1.obj',0,0,global.scene);
mdtree2=FreeformCreate('models/trees/tree2.obj',0,0,global.scene);
mdlist2=FreeformCreate('models/trees/list2.obj',0,0,global.scene);
вот так решил вопрос
Материалы не назначаются объектам, в чем может быть проблема?
При запуски игры деревья полностью белого цвета, без материалов.
mattrees=MaterialLibraryCreate();
MaterialLibrarySetTexturePaths(mattrees,'textures/trees');
MaterialLibraryActivate(mattrees);
MaterialCreate('matfortree1','textures/trees/tree1.png');
MaterialCreate('matfortree2','textures/trees/tree2.png');
MaterialCreate('matforlist1','textures/trees/list1.png');
MaterialCreate('matforlist2','textures/trees/list2.png');
MaterialSetOptions('matfortree1',false,true);
MaterialSetOptions('matforlist1',false,true);
MaterialSetOptions('matfortree2',false,true);
MaterialSetOptions('matforlist2',false,true);
MaterialSetBlendingMode('matforlist1',3);
MaterialSetBlendingMode('matforlist2',3);
MaterialSetFaceCulling('matforlist1',2);
MaterialSetFaceCulling('matforlist2',2);
mdtree1=FreeformCreate('models/trees/tree1.obj',mattrees,mattrees,global.scene);
mdlist1=FreeformCreate('models/trees/list1.obj',mattrees,mattrees,global.scene);
mdtree2=FreeformCreate('models/trees/tree2.obj',mattrees,mattrees,global.scene);
mdlist2=FreeformCreate('models/trees/list2.obj',mattrees,mattrees,global.scene);
ObjectSetMaterial(mdtree1,'matfortree1');
ObjectSetMaterial(mdlist1,'matforlist1');
ObjectSetMaterial(mdtree2,'matfortree2');
ObjectSetMaterial(mdlist2,'matforlist2');
ActorFaceGroupSetMaterial не помогает
Решил вопрос ActorFaceGroupSetMaterial
Не удается установить материал для анимированных актёров стандартными способами.
Возможно это делается как-то по особому (через шейдер)?
Какие это могут быть средства?
Бывает ли трехмерная векторная графика?
В отличии от пиксельной, как корел дро например и фотошоп?
https://github.com/KozGit/Blender-2.8-M … port-addon
в общем разобрался
Python: Traceback (most recent call last):
File "C:\Users\Professional\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_md5_28.py", line 1260, in invoke
bpy.ops.message.messagebox('INVOKE_DEFAULT', message = msgLines )
File "C:\Program Files\Blender Foundation\Blender 2.93\2.93\scripts\modules\bpy\ops.py", line 130, in __call__
ret = _op_call(self.idname_py(), C_dict, kw, C_exec, C_undo)
TypeError: Converting py args to operator properties: : keyword "message" unrecognized
location: <unknown location>:-1
Пришлось перейти на 2.8 Блендер
Теперь проблема с экспортом меша
Требует чтобы все веса были не нулевыми, зачем это нужно? Ведь какая-то часть модели может быть статична?
Причем анимация экспортируется на ура, а меш вот такую фигню выдает
Теперь (3000 граней на дереве) нужно назначать веса им, и чтобы ни одна грань не осталась
Спасибо, буду искать аддон для md5, я так понимаю он сохраняет отдельно модель и анимацию, а как он с вершинной, там же каждый кадр это отдельная модель? С костями это я понимаю, только матрицу трансформации использовать.
Короче я так понял без поддержки разработчиков не создам игру, нужно было на программиста учиться. Как вы кстати относитесь что я все время вопросы задаю?
У меня 1680 на 1050, если я выставлю такой размер комнаты, то как будет работать на мониторах с другим разрешением? Как одоптировать под любой монитор, нужно в настройках окна задать по размерам дисплея.
В функциях вида нашел в справке только как взять ширину и высоту, где указать полноэкранный?
Я так понимаю нужно window_set_fullscreen true и window_set_size display_get_width и аналогично для высоты, я вас правильно понял?
Ещё в конце добавил две строчки кода
room_width=display_get_width();
room_height=display_get_height();
А саму комнату в настройках оставил 500 на 500, мне так удобнее расставлять объекты, чтобы было ограничение на краях карты.
И все же вы не дали ответ на самый главный вопрос, где тени то? Что я не так сделал?
matterrain=MaterialLibraryCreate();
MaterialLibraryActivate(matterrain);
MaterialCreate('mTerrain1', 'textures/terrain/tex_river_rakovka.jpg');
MaterialSetOptions('mTerrain1',false,false);
shmap1=BumpShaderCreate();
BumpShaderSetDiffuseTexture(shmap1,'mTerrain1');
BumpShaderSetMaxLights(shmap1,8);
MaterialCreate('mShader1','');
MaterialSetShininess('mShader1',32);
MaterialSetAmbientColor('mShader1',c_dkgray,1);
MaterialSetDiffuseColor('mShader1',c_white,1);
MaterialSetSpecularColor('mShader1',c_white,1);
MaterialSetShader('mShader1',shmap1);
BumpShaderSetShadowMap(shmap1,global.shadowmap);
BumpShaderSetShadowBlurRadius(shmap1,2);
map1=FreeformCreate('models/terrain/river_rakovka.obj',matterrain,matterain,global.scene);
ObjectSetMaterial(map1,'mShader1');
ObjectSetPosition(map1,250,0,250);
FreeformBuildOctree(map1);
OdeStaticCreate(map1);
OdeAddTriMesh(map1,0);
вот я применил к местности шейдерный материал, но в игре просто он серый, а теней нет от танка. Танк 100% в древе шадоукастерс
Странно, почему у вас нету текстуры ландшафта? И как размер комнаты может повлиять на размер окна? У меня действие происходит (терраин по размерам 500 на 500). Вот я и решил ограничить комнату. Так всегда делал.
Это нужна специальная функция для настройки вида? Разрешение и полноэкранный режим?
В чем проблема навигации? Когда мышку до краев доводили перемещение осуществлялось или были какие-то проблемы? Приближение отдаление колёсиком. Зажать пкм и двигать мышь в право влево и будет поворот.
На счет теней я так делал, но вместо этого весь терраин просто затемнился но теней от танка нет.