Вопросы по созданию игр.

Список разделов Геймдев в Blender Игровой движок Blender

Описание: Все вопросы и обсуждения, касающиеся BGE
Модераторы: exooman, denis8424

  • 0

Сообщение #1 exooman » 25.01.2014, 14:45

В этой теме помогаем друг-другу разбираться в игростроении на движке BGE.
Внимание, прежде чем задать вопрос, просмотрите темы:
Blender Game Engine FAQ
Blender Game Engine примеры
Полезные ресурсы по BGE


Пожалуйста, выкладывайте бленд-файлы, изображения и другие ресурсы на сторонних хостингах. Приветствуется упаковывание файлов в архив, желательно в формате .7z. По возможности старайтесь использовать изображения формата .jpeg.
exooman
Аватара
Сообщения: 1942



Сообщение #21 denis8424 » 12.02.2014, 13:22

В бге нет, в самом блендере можно, хотя и не в одну строчку.
P.S. хотя наверное в бге можно тоже, через библиотеку bgl, но это сложно будет, одной строчкой не обойдешся.
denis8424
Аватара
Сообщения: 724

Сообщение #22 exooman » 20.02.2014, 15:00

чего-то не пойму ЧЯДНТ? нужно заставить "прокручиваться" текстуру, пишу

Код: Выделить всё
from bge import logic
def wer(cont):
    own = cont.owner
    mesh = own.meshes[0]
    vert  = mesh.getVertex( 0, 0)
    if own['gears'] == 1:
        vert.UV[1] += 0.1

В итоге ноль реакции. Ошибок в консоли нет.
exooman
Аватара
Сообщения: 1942


  • 1

Сообщение #23 denis8424 » 21.02.2014, 10:43

exooman, во - первых, что тебя в стандартном скрипте из примеров не устроило?
Во-вторых, почему -то нельзя менять UV координаты напрямую, нужна промежуточная переменная.
В-третьих, ты получаешь UV-координату только одной точки меша, а если хочешь прокручивать текстуру, то надо менять UV-координаты всех вершин.
Спойлер
Код: Выделить всё
from bge import logic
def wer(cont):
    own = cont.owner
    mesh = own.meshes[0]
    vert  = mesh.getVertex( 0, 0)
    if own['gears'] == 1:
        UV = vert.UV
        UV[1] += 0.1
        vert.setUV(UV)
Твой код, вроде то, что ты хотел.
Код: Выделить всё
from bge import logic
def wer(cont):
    own = cont.owner
    mesh = own.meshes[0]
    array = mesh.getVertexArrayLength(0)
    if own['gears'] == 1:
        for i in range(0, array):
            vert  = mesh.getVertex(0, i)
            uv = vert.UV
            uv[1] = uv[1] + 0.01
            vert.setUV(uv)
Код из примера. Наверно то, что тебе нужно.
denis8424
Аватара
Сообщения: 724

Сообщение #24 exooman » 21.02.2014, 12:36

Хм, что-то все равно не так. Взял дефолтную сцену, включил GLSL, создал материал и текстуру кубу. Примотал к модулю пульсирующий сенсор Always - все работает. Делаю тоже самое в проекте - не пашет. Текстура только немного дергается при запуске и все. Как-то уже попадалась мне такая проблема, но она еще интереснее была - при виде из камеры все работало, а в остальных случаях - нет.
exooman
Аватара
Сообщения: 1942


Сообщение #25 maleficmax » 21.02.2014, 12:44

exooman, я в БГЕ ноль, но иногда в блене бывают глюки, от которых спастись можно спасает только тотальный аппенд в новую сцену. И всё вдруг начинает правильно работать. Или наоборот можно из работающей в неработающую попробовать. Если для БГЕ это глупость, прошу простить)
maleficmax M
фашист і бандерівець
Аватара
Откуда: Україна, Кременчук
Сообщения: 4380


Сообщение #26 exooman » 21.02.2014, 13:49

maleficmax, по своему опыту знаю, что просто где-то что-то не нажато или наоборот - нажато, но не то что нужно. Хотя, блендер и вправду любитель покапризничать в ответственный момент
exooman
Аватара
Сообщения: 1942


Сообщение #27 denis8424 » 21.02.2014, 13:58

exooman, Что тут скажешь? Фиг его знает. Попробуй вывести принтами значения UV, посмотри изменения данных.
denis8424
Аватара
Сообщения: 724

Сообщение #28 exooman » 21.02.2014, 14:19

Попробуй вывести принтами значения UV, посмотри изменения данных.

У UV вектор меняется, но почему-то это не влияет на само отображение текстуры.

З.Ы. на скрине прибавляется единица, но я разные значения пробовал, включая дефолтное 0.1


Спойлер
Изображение

хм. Чего то оно как-то странно добавляется(значение +0.4)

Спойлер
Изображение
exooman
Аватара
Сообщения: 1942


Сообщение #29 denis8424 » 21.02.2014, 14:43

Действительно странно. Такое ощущение, что координаты развертки не меняются. Попробуй вместо этого скрипта использовать скрипт из примера. Тоже с принтами, если будет тоже самое, значит проблема не в скрипте.
denis8424
Аватара
Сообщения: 724

Сообщение #30 vknw123 » 21.02.2014, 14:54

А кто расскажет как применять лоды?
http://wiki.blender.org/index.php/User:Kupoman/Level_Of_Detail
Последний раз редактировалось vknw123 21.02.2014, 15:14, всего редактировалось 1 раз.
vknw123
Аватара
Сообщения: 1336

Сообщение #31 exooman » 21.02.2014, 15:03

прикрутил скрипт из старого примера. Все так же - в дефолтном файле пашет, в проекте - нет

Спойлер
Код: Выделить всё
from bge import logic
def wer(cont):

    own = cont.owner
    mesh = own.meshes[0]
    array = mesh.getVertexArrayLength(0)

   
    speed = own['speed']
    axis = own['axis']

   
    if axis == "x":
       axis = 0
    if axis == "y":
       axis = 1
      
       
 
    for v in range(0,array):
       vertex = mesh.getVertex(0,v)
       UV = vertex.getUV()
       UV[axis] = UV[axis]+speed
       vertex.setUV(UV)
    print(UV)

В консоле все вроде норм.

Спойлер
Изображение
exooman
Аватара
Сообщения: 1942


Сообщение #32 denis8424 » 21.02.2014, 15:17

vknw123, А где его взять?
exooman, Черт его знает, может сама развертка?
denis8424
Аватара
Сообщения: 724

Сообщение #33 exooman » 21.02.2014, 15:29

может сама развертка?

уже перепробовал разные виды разверток, настроек текстуры - тщетно. Думаю тут есть какая-то взаимосвязь с багом, когда не желал запекаться амбиент. В качестве ошибки указывалось отсутствие изображения, хотя оно присутствовало. Такая же беспричинная мутатень.


Вынос мозга, вообщем - всё заработало в версии 2.65а. В 2.66, 2.67 и 2.68 НЕРАБОТАЕТ ;-(

В блендер-плеере то же самое - только в 2.65а работает.
exooman
Аватара
Сообщения: 1942


Сообщение #34 denis8424 » 21.02.2014, 15:47

А моделька откуда?
Может обратной совместимости нет?
denis8424
Аватара
Сообщения: 724

Сообщение #35 exooman » 21.02.2014, 15:55

А моделька откуда?

Да вот же только создал куб.
Материал и текстура тоже только что были созданы. Сам проект в 2.69-й версии начат.
exooman
Аватара
Сообщения: 1942


Сообщение #36 vknw123 » 21.02.2014, 16:01

denis8424, кого взять? вроде как пишут появились в 2.7 лоды в игре. или нет? я просто ещё не смотрел,
сижу изучаю новое меню.
vknw123
Аватара
Сообщения: 1336

  • 2

Сообщение #37 exooman » 21.02.2014, 21:52

вроде как пишут появились в 2.7 лоды в игре.

таки да, товарищи! Потестил я эти лоды и остался доволен. Теперь, во вкладке объекта можно задать меши для его трансформации на определенном расстоянии. Я сделал сферу и две вариации лодов к ней. Затем продублировал всё это дело - вот сколько таких сфер у меня потянул комп(4-х ядерник q9550 + GTX 560ti).


Спойлер
Изображение

Лагов при подгрузке лодов нету вообще.
Учитывая, что количество объектов чрезмерно высокое(в игре графику лучше блоками делать), то результат довольно не плохой. Уже можно состряпать шутерок типа CoD4, с псевдо-открытыми локациями.
exooman
Аватара
Сообщения: 1942


  • 1

Сообщение #38 vknw123 » 21.02.2014, 22:05

А вот как интересно делать лоды врагов с костной анимацией, кости одни и теже у них анимация, меш прикреплён у него анимация прописана.... короче надо наверно пробовать.
vknw123
Аватара
Сообщения: 1336

Сообщение #39 andreymal » 21.02.2014, 22:11

Если верить скриншоту, у этих лодов есть страшный косяк: они не зависят ни от разрешения экрана, ни от фокусного расстояния камеры. Будешь в игре через снайперскую винтовку целиться — а тебе вместо человека куб покажут.
Читая эту подпись, вы впустую потратили 5 секунд своей жизни.
andreymal M
Аватара
Сообщения: 1196

Сообщение #40 exooman » 21.02.2014, 22:40

Если верить скриншоту, у этих лодов есть страшный косяк: они не зависят ни от разрешения экрана, ни от фокусного расстояния камеры. Будешь в игре через снайперскую винтовку целиться — а тебе вместо человека куб покажут.

да, есть такой косяк. Но травку мутить уже можно.
Спойлер
Изображение

Изображение


к тому же, думаю в API добавят дополнительные функции по манипуляциям лодов. К примеру, можно сделать так, что при виде из прицела у нужных объектов расстояние замены мешей будет увеличиваться. Нам ли о костылях беспокоится? :)

Добавлено спустя 8 минут 56 секунд:
А вот как интересно делать лоды врагов с костной анимацией, кости одни и теже у них анимация, меш прикреплён у него анимация прописана.... короче надо наверно пробовать.

Попробовал - нужно припэрентить меш-дублер к арматуре и задать весы. Затем меш можно "отпэрентить" и убрать на другой слой - лод уже будет работать с данной арматурой.
exooman
Аватара
Сообщения: 1942


Пред.След.

Вернуться в Игровой движок Blender

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость