Автор Тема: Странное поведение в BGE  (Прочитано 36109 раз)

Оффлайн Samovar

  • Житель
Re: Странное поведение в BGE
« Ответ #90 : 12 Апрель 2018, 13:04:13 »
Если я всё правильно понял, то модули - это функции ( def имя_функции (список параметров функции): ), которые ты определил в файле SledKoles.py
Следовательно, как модули эти функции вызываются так: имя_файла_без расширения_py.имя_функции_в_этом_файле
В твоём случае  модули будут:
SledKoles.init
SledKoles.callback (Но этот, как я понял, даже вызывать не надо, он автоматом вызывается при столкновениях, после инициализации)

Я плохо шарю в ООП, но получается, что при инициализации, ты определённому объекту  добавляешь свой метод обработки функцией callback...
« Последнее редактирование: 12 Апрель 2018, 13:22:07 от Samovar »

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #91 : 12 Апрель 2018, 13:29:07 »
... файл с модулем или текстовый блок должен обязательно иметь расширение .py , без этого работать не будет (например app.py)...
... для указания в контроллере  вызов функции из модуля нужно писать имямодуля.имяфункции (например app.init) ...
https://docs.blender.org/manual/ru/dev/game_engine/logic/controllers/types/python.html#bpy-types-pythoncontroller

>> AttributeError: module 'SledKoles' has no attribute 'py'
... поскольку ты пытаешься запустить функцию py модуля SledKoles, которой в этом модуле нет ...

Оффлайн Samovar

  • Житель
Re: Странное поведение в BGE
« Ответ #92 : 12 Апрель 2018, 13:50:19 »
Кстати, хотел давно спросить. Николай Николаев, а можно такую "цацку" сделать с рисованием в текстуру в BGE? А то, куча объектов для следа - это будет сильно тормозить, если их не уничтожать со временем... нужно для царапин и следов от выстрелов и холодного оружия... визуализации повреждений противников...

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #93 : 12 Апрель 2018, 17:05:38 »
Если я всё правильно понял, то модули - это функции ( def имя_функции (список параметров функции): ), которые ты определил в файле SledKoles.py
Следовательно, как модули эти функции вызываются так: имя_файла_без расширения_py.имя_функции_в_этом_файле
В твоём случае  модули будут:
SledKoles.init
SledKoles.callback (Но этот, как я понял, даже вызывать не надо, он автоматом вызывается при столкновениях, после инициализации)

Я плохо шарю в ООП, но получается, что при инициализации, ты определённому объекту  добавляешь свой метод обработки функцией callback...
Спасибо Samovar, а ведь в каком-то описании мне это попадалось и ты мне сейчас это напомнил. До сих пор я использовал исключительно скрипты, и на модули, собственно, и всё что касалось модулей, читал вполглаза.

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #94 : 12 Апрель 2018, 17:28:03 »
... файл с модулем или текстовый блок должен обязательно иметь расширение .py , без этого работать не будет (например app.py)...
... для указания в контроллере  вызов функции из модуля нужно писать имямодуля.имяфункции (например app.init) ...
https://docs.blender.org/manual/ru/dev/game_engine/logic/controllers/types/python.html#bpy-types-pythoncontroller

>> AttributeError: module 'SledKoles' has no attribute 'py'
... поскольку ты пытаешься запустить функцию py модуля SledKoles, которой в этом модуле нет ...
Понял. Исправил. Спасибо за помощь.
Есть желание разобраться со следом через сетки, но с чего начать пока никак не соображу. В принципе, та же горка, только подразделена плотнее. Колесо теперь с шипами - уже есть. Нужна идея для начала разработки, но сразу с возможностью видеть результат хоть в чём-то, хоть на каком-то этапе. Пока ничего путного в голову не приходит.

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #95 : 12 Апрель 2018, 19:16:49 »
>> В принципе, та же горка, только подразделена плотнее. Колесо теперь с шипами - уже есть. Нужна идея для начала разработки, но сразу с возможностью видеть результат хоть в чём-то, хоть на каком-то этапе. Пока ничего путного в голову не приходит.
1 брать каждый треугольник меша колеса:
  1.1 для каждого треугольника брать вершину
  1.2 для каждой вершины находить ближайшую вершину на меше горки
  1.3 для найденных вершин на меше горки, если высоты соответствующих вершин колеса находятся ниже высот горки, сделать выбор вершин входящих в треугольную область, определяемую найденными вершинами и присвоит им высоты, рассчитанные линейными пропорциями взятыми из обрабатываемого треугольника колеса ...

... то есть для начала нужно подобрать быстрый алгоритм поиска вершины меша по заданным координатам ...
... сможешь пробить эту тему в Сети? ...

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #96 : 12 Апрель 2018, 19:17:53 »
>> Николай Николаев, а можно такую "цацку" сделать с рисованием в текстуру в BGE?
... заманчивое предложение ...
... наверное шейдерами можно, попробую посмотреть после выходных ...

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #97 : 12 Апрель 2018, 21:09:06 »
>> В принципе, та же горка, только подразделена плотнее. Колесо теперь с шипами - уже есть. Нужна идея для начала разработки, но сразу с возможностью видеть результат хоть в чём-то, хоть на каком-то этапе. Пока ничего путного в голову не приходит.
1 брать каждый треугольник меша колеса:
  1.1 для каждого треугольника брать вершину
  1.2 для каждой вершины находить ближайшую вершину на меше горки
  1.3 для найденных вершин на меше горки, если высоты соответствующих вершин колеса находятся ниже высот горки, сделать выбор вершин входящих в треугольную область, определяемую найденными вершинами и присвоит им высоты, рассчитанные линейными пропорциями взятыми из обрабатываемого треугольника колеса ...

... то есть для начала нужно подобрать быстрый алгоритм поиска вершины меша по заданным координатам ...
... сможешь пробить эту тему в Сети? ...
Николай, то, что ты пишешь, наверно следующий этап. Колесо падает на горку и физика остановит падение, сменив его перекатыванием. Здесь ни скрипт, ни модуль не нужны. А вот точку касания колесом горки необходимо определить, и это делать надо через скрипт или модуль. Точка касания колеса, это скорее всего линия по оси Х  имеющая U-образную конфигурацию колеса. Вот наверно с этого момента потребуются твои пункты.
Вопрос: почему треугольники? Тут скорее нужны четырёхугольники. Кстати, если необходимо подразделить поверхность, то Blender её автоматом подразделяет на четырёхугольники, а в случае нужды подразделить на треугольники как это можно сделать?

Оффлайн Samovar

  • Житель
Re: Странное поведение в BGE
« Ответ #98 : 12 Апрель 2018, 22:21:11 »
Вся игровая графика - это треугольники, а не четырёхугольники и многоугольники, т.к. любая плоскость проходит через 3 точки из курса геометрии...

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #99 : 13 Апрель 2018, 08:54:20 »
Вся игровая графика - это треугольники, а не четырёхугольники и многоугольники, т.к. любая плоскость проходит через 3 точки из курса геометрии...
Samovar, насчёт трёх точек, ты конечно прав, наименьшее количество точек определяющее плоскость - 3. Однако добавь в Blender любой, кроме окружности и икосферы стандартный объект, и, перейдя в режим редактирования, посчитай чего в них больше треугольников или четырёхугольников.
Мой же вопрос в следующем. Грани куба можно вручную разбить на треугольники добавляя рёбра, а если этот куб прошёл подразделение граней, то вручную разбивка на треугольники будет весьма трудоёмка. Есть ли способ в Blender подобной разбивки.

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Странное поведение в BGE
« Ответ #100 : 13 Апрель 2018, 13:21:17 »
>> Есть ли способ в Blender подобной разбивки.
... в режиме редактирования выделить все полигоны A и далее Ctrl+T ...

Оффлайн Striver

  • Житель
  • недоинженер, полупрограммист
    • http://striver00.ru
Re: Странное поведение в BGE
« Ответ #101 : 13 Апрель 2018, 13:24:02 »
Цитировать
Однако добавь в Blender любой, кроме окружности и икосферы стандартный объект, и, перейдя в режим редактирования, посчитай чего в них больше треугольников или четырёхугольников.
Samovar имел ввиду, что все игровые движки (и BGE тоже) все полигоны преобразуют в треугольники, из чего бы ни состоял объект в редакторе Блендера.
Цитировать
Грани куба можно вручную разбить на треугольники добавляя рёбра, а если этот куб прошёл подразделение граней, то вручную разбивка на треугольники будет весьма трудоёмка. Есть ли способ в Blender подобной разбивки.
В режиме редактирования выдели всё и нажми Ctrl-T

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #102 : 13 Апрель 2018, 17:00:29 »
>> Есть ли способ в Blender подобной разбивки.
... в режиме редактирования выделить все полигоны A и далее Ctrl+T ...
Сработало. Николай, я вопрос, собственно, задал из-за твоего упоминания о треугольниках.

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #103 : 13 Апрель 2018, 17:01:24 »
Цитировать
Однако добавь в Blender любой, кроме окружности и икосферы стандартный объект, и, перейдя в режим редактирования, посчитай чего в них больше треугольников или четырёхугольников.
Samovar имел ввиду, что все игровые движки (и BGE тоже) все полигоны преобразуют в треугольники, из чего бы ни состоял объект в редакторе Блендера.
Цитировать
Грани куба можно вручную разбить на треугольники добавляя рёбра, а если этот куб прошёл подразделение граней, то вручную разбивка на треугольники будет весьма трудоёмка. Есть ли способ в Blender подобной разбивки.
В режиме редактирования выдели всё и нажми Ctrl-T
Спасибо Striver.

Оффлайн Novichok

  • Житель
Re: Странное поведение в BGE
« Ответ #104 : 13 Апрель 2018, 17:10:44 »
Николай, я уже задавал этот вопрос, но ты почему-то отмолчался (или я ответ проморгал): .worldPosition - это мировая позиция опорной точки объекта?

 


Яметрика

* По форуму

* Рекламный блок

* Последние вложения

1 (1).png
Скачано: 1271
Автор: LEXA ANЭGROWND
blender.png
Скачано: 1269
Автор: ipv2007
4.png
Скачано: 1275
Автор: hiroyukiss
2.png
Скачано: 1302
Автор: hiroyukiss

Скачано: 1322
Автор: Dilifa12