... а почему нельзя установить родительское отношение? ...В случае, если шар, например, находится от куба справа, то при одновременно выполняемыми поступательным движением и правым поворотом описывает окружность правее окружности описываемой кубом и при повороте на 180 градусов оказывается слева от куба. Надо чтобы он, в этом случае, находясь внутри окружности описываемой кубом просто отслеживал куб с незначительным перемещением и оставался справа от куба с теми же самыми углами что были при старте, ну что-то типа актуатора камеры, но только без инерции и не нужных её шараханий - нужна жёсткость и точность.
Всё-таки неясно, чем эти описания отличаются от простого родительского отношения.Видно у меня язык дубовый - не могу донести свою мысль понятно.
Может быть, стоит сказать что в конечном итоге должно получиться.
А должно быть так чтобы шар всё время следил за одной и той же гранью куба, вне зависимости от его манёвровСделай чтоб следил за активной (последней выбранной в меше) вершиной. {Ctrl+P}->Vertex
С актуатором "камера" пробовал, но там при наезде на крутой склон, из-за того что камера становится в тот же угол что и куб, склон падает и становится ровной поверхностью а ровная поверхность вся становится уклоном (камера-то изменила угол). С английским у меня большие проблемы... Что он там в самом конце лопочет? Очень похоже, что это то, что я ищу. Однако очень бы хотелось увидеть, как можно с помощью скрипта добиться.ЦитироватьА должно быть так чтобы шар всё время следил за одной и той же гранью куба, вне зависимости от его манёвровСделай чтоб следил за активной (последней выбранной в меше) вершиной. {Ctrl+P}->Vertex
Вот ещё интересного: Slow Parent https://youtu.be/GkbgdKZdJTQ (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly95b3V0dS5iZS9Ha2JnZEtaZEpUUQ==)
Тоже не вполне понял, что требуется...
... попробуй в том файле который ты выложил выставить у шара в редакторе свойств активного объекта в секции Relations Extras чек Slow Parent ...Действительно заработало, медленный родитель выручает. Не дадите ссылку ознакомиться с этим чудом поближе? Не понятен параметр "Смещение", что он даёт?
Как теперь понял я: положение должно копироваться полностью, а повороты только вокруг оси Z.Что-то у меня не работает. Я с пустышкой-то не очень знаком - использовал всего раза 3-4.
Если так, то вот вариант через пустышку и пару ограничений.
Что-то у меня не работает.Попробовал в режиме игры, такая же фигня, видимо, в нём не работают ограничения.
... посмотри такой пример, управление WASD ...Актуатор "Камера" я пробовал. Я ищу жёсткое взаимодействие, а он даёт очень большой люфт (не инициируемого движения), кроме того ведь этот актуатор невозможно (или возможно?) применить например к сфере, но не с целью отображения, а с целью использования связки движения.
можете предложить что-то почитать по Ограничениям?Я книжку переводил как-то...
В любом случае большое спасибо - обязательно ознакомлюсь. А что в BGE не работает, сами ограничения или вы имеете что-то другое в виду?Цитироватьможете предложить что-то почитать по Ограничениям?Я книжку переводил как-то...
http://striver00.ru/files/Death_to_the_Armatures/Death_to_the_Armatures_ru.pdf
Но, как вчера выяснилось, в игровом движке не работает.
А что в BGE не работает, сами ограничения или вы имеете что-то другое в виду?Не знаю. Я в BGE ноль без палочки. Вот вчера добавил в твой файл пустышку с ограничениями, думал, поможет. В 3D-окне всё работало, а после запуска игры шарик стоял на месте.
Специально для BGE есть только один ограничитель (он работает только в BGE)Цитироватьможете предложить что-то почитать по Ограничениям?Я книжку переводил как-то...
http://striver00.ru/files/Death_to_the_Armatures/Death_to_the_Armatures_ru.pdf (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3N0cml2ZXIwMC5ydS9maWxlcy9EZWF0aF90b190aGVfQXJtYXR1cmVzL0RlYXRoX3RvX3RoZV9Bcm1hdHVyZXNfcnUucGRm)
Но, как вчера выяснилось, в игровом движке не работает.
Извините за нескромный вопрос, а движок-то заработал, закрутились детали?ЦитироватьА что в BGE не работает, сами ограничения или вы имеете что-то другое в виду?Не знаю. Я в BGE ноль без палочки. Вот вчера добавил в твой файл пустышку с ограничениями, думал, поможет. В 3D-окне всё работало, а после запуска игры шарик стоял на месте.
Специально для BGE есть только один ограничитель (он работает только в BGE)Спасибо за ссылку - действительно много информации.
Rigid Body Joint Constraint
https://docs.blender.org/manual/en/dev/rigging/constraints/relationship/rigid_body_joint.html (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly9kb2NzLmJsZW5kZXIub3JnL21hbnVhbC9lbi9kZXYvcmlnZ2luZy9jb25zdHJhaW50cy9yZWxhdGlvbnNoaXAvcmlnaWRfYm9keV9qb2ludC5odG1s)
Я Python практически не понимаюНу, я считаю, что знаю Питон, но что толку, если я никогда не вникал в BGE? Так что тоже ничем не могу помочь Barabashka.
... поясни зачем тебе питон в этой задаче? можно в целом всю математику из этого примера переложить в модуль на питоне, но трудоёмкость вырастет ...sungreen, для меня Blender это хобби - не найду ответа - значит не найду, и только. Однако очень не люблю бросать на полпути свои занятия. Любую тему я выяснял до уровня получения возможностей. В данном случае связанное передвижение объектов по прямой с помощью Python'а у меня получилось, а поворот "метателя молота" не получился. А если в какой-то момент этого поворота потребуется отпустить тот шар? Наверно с помощью Python'а можно получить большее количество возможностей.
... в чём суть проблемы для решение которой непременно нужен питон? ...
>> Мне много раз в ответах писали что надо знать Python - я пока пытаюсь с ним только познакомиться параллельно с Blender.Нет, ведь всё это должно учитывать ещё и время. Я просто предполагаю что в Python есть какие-то операторы, или как там их правильно назвать, которые могут вызвать требуемые функции, ну подобные тем, которые дают возможность перемещения куба и шара. Сам я их просто не найду, потому и прошу ссылку, и лучше всего не на технические данные, а на что-то более понятное с примерами.
... а описать математическую модель используя синус/косинус и прочую тригонометрию сможешь? ведь тут по сути нужно просто расставить координаты и углы поворота ...
... по ходу, мы уже это обсуждали, тебе удалось разобраться в ScriptMode vs ModuleMode? ...Я тогда обратился за помощью, чтобы найти способ для сохранения глобальных переменных. В нужных рамках я делать это научился. Что касается модулей и сценариев, то со сценариями мне логика понятна, а вот с модулями отложил в «долгий ящик». Не попался мне эффектный пример модуля, показывающий свои преимущества – наверно просто не было у меня задачи, для решения которой необходим модуль.
https://wiki.blender.org/index.php/Doc:/Tutorials/Game_Engine/ScriptMode_vs_ModuleMode
... напиши своё представление об этом, что бы было понятно куда нам дальше рулить ...
Кстати, мне попалась статья на глаза, в которой утверждается, что Niburiec на страницах этого форума обсуждал возможность эффекта зеркала заднего вида. Как я понял, в этом случае работают одновременно две камеры, одна на весь экран показывает то, что впереди, а другая отображает вид сзади в зеркале.Тут есть пример рендера в текстуру (картинку)
Сам Niburiec давно не появляется на форуме, а вы что-нибудь по такой возможности выразить своё мнение можете?
Попался на глаза учебник Niburiec’а, скопировал его полностью в формате Word’а и стал вносить туда как свои заметки, так и заинтересовавшие меня статьи. Может это хоть в какой-то мере поможет. Своего рода энциклопедию хочу сделать.Barabashka, не знаю знаком ли ты сайтом Niburiec. Сайт о BGE и там много уроков на русском, включая Python код с комментариями: http://blender-game.ucoz.ru
Samovar, спасибо вам за внимание. Да, я оттуда скачал все его уроки. Стиль изложения очень понравился (молодец он, так и хочется пожать ему руку), и я периодически туда заглядываю. Сначала поверхностно, т.е. пунктуально выполняю предлагаемый им действия. Потом начинаю придумывать "вводные", т.е. какие-то свои дополнительные условия, которые, зачастую заставляют вникать в другие возможности Blender. Мне так проще, хоть и осознаю что правильнее было бы охватить все уроки и на основе этих знаний уже что-то экспериментировать.ЦитироватьПопался на глаза учебник Niburiec’а, скопировал его полностью в формате Word’а и стал вносить туда как свои заметки, так и заинтересовавшие меня статьи. Может это хоть в какой-то мере поможет. Своего рода энциклопедию хочу сделать.Barabashka, не знаю знаком ли ты сайтом Niburiec. Сайт о BGE и там много уроков на русском, включая Python код с комментариями: http://blender-game.ucoz.ru
Надеюсь, это тебе поможет.
... ещё из того же источника можно посмотреть пример с разделением экрана на два вида, там как раз две камеры используются ...Всем добрый день.
http://gametutorials.tutorialsforblender3d.com/Viewports/Page1
>> я, так подозреваю left это значение верхнего левого угла изображения; bottom - нижнего левого; right - правый нижний; top - правый верхний.Спасибо, попробую. Как посоветуете справиться с проблемой пересылки файлов?
описание можно посмотреть в API
https://docs.blender.org/api/blender_python_api_current/bge.types.KX_Camera.html?highlight=setviewport#bge.types.KX_Camera.setViewport
>>ищу возможность свободного размещения окон просмотра на экране.
можешь написать любые значения в setViewport(left, bottom, right, top)
http://pasteall.org/blend/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3Bhc3RlYWxsLm9yZy9ibGVuZC8=) (срок хранения около 5 месяцев)Спасибо Samovar, ссылку сохранил.
и т.п.
Но лучше использовать облачные хранилища привязанные к почтовому ящику на Яндексе (яндекс-диск) или Мэйл.ру (облако)
... ещё из того же источника можно посмотреть пример с разделением экрана на два вида, там как раз две камеры используются ...Всем привет.
http://gametutorials.tutorialsforblender3d.com/Viewports/Page1
Файл пристегнуть не удаётся, потому я по совету Samovar'а его сохранил на PasteAll.org, а как теперь на него сослаться не знаю. Называется "Области просмотра 2". Я не нашёл справку как пользоваться PasteAll.org, если можете - подкиньте ссылку.После загрузки файла надо было скопировать его адрес из адресной строки твоего браузера в тему, и всё.
######################################################
#
# Viewports.py Blender Game Engine
#
# Tutorial can be found at
#
# [url=http://www.tutorialsforblender3d.com]www.tutorialsforblender3d.com[/url]
#
# Released under the Creative Commons Attribution 3.0 Unported License.
#
# If you use this code, please include this information header.
#
######################################################
# Main program
def main():
# get current controller
controller = bge.logic.getCurrentController()
# get the size of the game screen
gameScreen = gameWindow()
# get player cameras
playerCams = playerCameras()
# make player 1 camera the active camera
activeCamera(playerCams)
# set viewport size
viewportSize(gameScreen, playerCams)
# use viewports
viewPorts(playerCams)
#####################################################
# Game window
def gameWindow():
# get width and height of game window
width = bge.render.getWindowWidth()
height = bge.render.getWindowHeight()
# return game window size
return (width, height)
#####################################################
# Player cameras
def playerCameras():
# get the current scene
scene = bge.logic.getCurrentScene()
# get list in objects in scene
objList = scene.objects
# get player cameras
player1 = objList["Cam1"]
player2 = objList["Cam2"]
# return player cameras
return (player1, player2)
#####################################################
# Active Camera
def activeCamera(playerCams):
# get current scene
scene = bge.logic.getCurrentScene()
# get player 1 camera
player1 = playerCams[0]
# make player 1 the active camera
scene.active_camera = player1
#####################################################
# Viewport size
def viewportSize(gameScreen, playerCams):
# game window width & height
width = gameScreen[0]
height = gameScreen[1]
# player cameras
player1 = playerCams[0]
player2 = playerCams[1]
# Player 1 viewport: top half
left_1 = 0; bottom_1 = height/2; right_1 = width; top_1 = height
# Player 2 viewport: bottom half
left_2 = 0; bottom_2 = 0; right_2 = width; top_2 = height/2 # ДОПУСТИМ ЗДЕСЬ ОШИПКА
# make sure they are integers
left_1 = int(left_1)
bottom_1 = int(bottom_1)
right_1 = int(right_1)
top_1 = int(top_1)
left_2 = int(left_2)
bottom_2 = int(bottom_2)
right_2 = int(right_2)
top_2 = int(top_2)
# set player viewports
player1.setViewport( left_1, bottom_1, right_1, top_1)
player2.setViewport( left_2, bottom_2, right_2, top_2)
#############################################################
# enable viewports
def viewPorts(playerCams):
# get player cameras
player1 = playerCams[0]
player2 = playerCams[1]
# use viewports
player1.useViewport = True
player2.useViewport = True
#############################################################
#import bge
import bge
# Run Main Program
main()
######################################################
#
# Viewports.py Blender Game Engine
#
# Tutorial can be found at
#
# [url=http://www.tutorialsforblender3d.com]www.tutorialsforblender3d.com[/url]
#
# Released under the Creative Commons Attribution 3.0 Unported License.
#
# If you use this code, please include this information header.
#
######################################################
# Основная программа
def main():
# получаем текущий контроллер
controller = bge.logic.getCurrentController()
# получаем размер игрового экрана
gameScreen = gameWindow()
# получаем камеры игроков
playerCams = playerCameras()
# делаем превую камеру 1 активной
activeCamera(playerCams)
# задаём размер отображения
viewportSize(gameScreen, playerCams)
# используем отображение
viewPorts(playerCams)
#####################################################
# Игровое окно
def gameWindow():
# получаем ширину и высоту игрового окна
width = bge.render.getWindowWidth()
height = bge.render.getWindowHeight()
# возвращаем размеры игрового окна
return (width, height)
#####################################################
# Камеры игроков
def playerCameras():
# получаем текущую сцену
scene = bge.logic.getCurrentScene()
# получаем список объектов в сцене
objList = scene.objects
# получаем камеры игроков
player1 = objList["Cam1"]
player2 = objList["Cam2"]
# возвращаем (ссылки на) камеры игроков
return (player1, player2)
#####################################################
# Активная камера
def activeCamera(playerCams):
# получаем текущую сцену
scene = bge.logic.getCurrentScene()
# получаем камеру 1-го игрока
player1 = playerCams[0]
# делаем эту камеру активной
scene.active_camera = player1
#####################################################
# Размер отображения
def viewportSize(gameScreen, playerCams):
# игровое окно (ширина и высота)
width = gameScreen[0]
height = gameScreen[1]
# камеры игроков
player1 = playerCams[0]
player2 = playerCams[1]
# Игрок 1 отображается в верхней половине
left_1 = 0; bottom_1 = height/2; right_1 = width; top_1 = height
# Игрок 2 отображается в нижней половине
left_2 = 0; bottom_2 = 0; right_2 = width; top_2 = height/2 # ДОПУСТИМ ЗДЕСЬ ОШИПКА
# убеждаемся что значения целочиссленные
left_1 = int(left_1)
bottom_1 = int(bottom_1)
right_1 = int(right_1)
top_1 = int(top_1)
left_2 = int(left_2)
bottom_2 = int(bottom_2)
right_2 = int(right_2)
top_2 = int(top_2)
# устанавливаем окна отображения игроков
player1.setViewport( left_1, bottom_1, right_1, top_1)
player2.setViewport( left_2, bottom_2, right_2, top_2)
#############################################################
# включаем окна отображения
def viewPorts(playerCams):
# получаем камеры игроков
player1 = playerCams[0]
player2 = playerCams[1]
# используем отображение
player1.useViewport = True
player2.useViewport = True
#############################################################
# импортируем модуль bge
import bge
# Запускаем основную программу
main()
4. Ну, уж и до кучи, как можно сделать вид из камеры с красной рамкой размером в полное окно открываемое в 3D виде, а вид из камеры с серой рамкой частью вида камеры с красной рамкой (окно в окне).Лучше используй рендер в текстуру.
«После загрузки файла надо было скопировать его адрес из адресной строки твоего браузера в тему, и всё» - не сообразил. Ожидал, что он мне сам предложит адрес ссылки.ЦитироватьФайл пристегнуть не удаётся, потому я по совету Samovar'а его сохранил на PasteAll.org, а как теперь на него сослаться не знаю. Называется "Области просмотра 2". Я не нашёл справку как пользоваться PasteAll.org, если можете - подкиньте ссылку.После загрузки файла надо было скопировать его адрес из адресной строки твоего браузера в тему, и всё.
Но лучше заведи почту на Мэйл.ру или Яндексе, и пользуйся их хранилищами. Там файл будет хранится, пока ты его сам не удалишь.
Код копируй сюда, когда спрашиваешь, ограничивая его тегами кода (вставь текст кода, затем выдели текст кода и нажми кнопку {#} в панели редактирования сообщений).
Комментируй свои ошибки прямо своём коде и ссылайся на них в сообщении
Я добавил - "ДОПУСТИМ ЗДЕСЬ ОШИПКА"
Не понял... это как?Цитировать4. Ну, уж и до кучи, как можно сделать вид из камеры с красной рамкой размером в полное окно открываемое в 3D виде, а вид из камеры с серой рамкой частью вида камеры с красной рамкой (окно в окне).Лучше используй рендер в текстуру.
C оператором print действительно какие-то проблемы. Надо вызывать волшебников: sungreen и Striver для разъяснений его поведения.Спасибо и на том... Вашу ссылку пока не смотрел - эта увлекла. Подожду вердикт волшебников, а потом уж гляну.
По рендеру в текстуру позже отпишусь, я тебе давал ссылку ранее и там есть пример. Но есть там и нюансы своебычные, увы: типа префикса "MA" для имени материала.
Barabashka, переходи на Ты :) хватит Выкать... ты здесь давно...Приношу свои извинения, если доставляю неудобство в общении, но я много лет на "ТЫ" только с родными и очень близкими мне людьми - так мне проще.
Однако за предложение большое спасибо - ценю.Переходи на ты и не парься... дело не в "близких людях и родственниках" :)
По рендеру в текстуру позже отпишусь, я тебе давал ссылку ранее и там есть пример. Но есть там и нюансы своебычные, увы: типа префикса "MA" для имени материала.Заглянул я по этой ссылке. Эти уроки, по всей вероятности, рассчитаны на более подготовленных учеников.
Визарды, реально нужна ваша помощь! Почему print нихрена не работает как должен?! Я в скрипте подставлял и print (heght, width) и print (str(heght), str(width)) Чито это за нафик? :)Этот print заработает если в начале скрипта импортировать BGE, а вот принты в теле функции не работают и в этом случае.
matID = bge.texture.materialID(obj, "MAScreen") # имя моей визуализации материала экранаПрав, но перед именем материала в скрипте всегда должны быть префикс "MA". "MAScreen" - это материал с именем "Screen"
Что такое "MAScreen"? Подумал что это имя материала и присвоил его кубу-экрану. Прав-неправ?
Этот print заработает если в начале скрипта импортировать BGE, а вот принты в теле функции не работают и в этом случае.
Samovar, уточните пожалуйста - материал с именем "Screen" должен быть, а в скрипте он фигурирует как "MAScreen"?ЦитироватьmatID = bge.texture.materialID(obj, "MAScreen") # имя моей визуализации материала экранаПрав, но перед именем материала в скрипте всегда должны быть префикс "MA". "MAScreen" - это материал с именем "Screen"
Что такое "MAScreen"? Подумал что это имя материала и присвоил его кубу-экрану. Прав-неправ?
Если в ближайшие 1-7 дней волшебники (Визарды), или свободные лыцари ордена Python, типа Ланухумыча, внятно и понятно не ответят на этот вопрос, то я вообще перестану считать Python языком программирования... и начну его всячески гнобить всюду и везде при всяком удобном случае. >:(:) ;) :D ;D ;D ;D
Сегодня вторник 7-е февраля 2017 года.
Это работает только в режиме GLSLУ меня он по умолчанию включён.
Samovar на Яндекс-диске кто-то выложил картинку:Да ты явно крут :) Пока не научишься пользоваться этим форумом и своей почтой, лучше тебе про BGE забыть, и тем более про Python
Не уверен что правильно скопировал адрес - на ней меня заинтересовали гусеницы у техники. Каков может быть алгоритм создания движущихся гусениц, ленты конвейера, следов от гусениц и колёс, например на мокром песке и т.д.В GLSL это можно сделать без скрипта относительно просто. Как сделать не расскажу, пока не научишься пользоваться форумом и файловыми хранилищами в своей почте.
Спасибо и на том.ЦитироватьНе уверен что правильно скопировал адрес - на ней меня заинтересовали гусеницы у техники. Каков может быть алгоритм создания движущихся гусениц, ленты конвейера, следов от гусениц и колёс, например на мокром песке и т.д.В GLSL это можно сделать без скрипта относительно просто. Как сделать не расскажу, пока не научишься пользоваться форумом и файловыми хранилищами в своей почте.
Каков может быть алгоритм создания движущихся гусениц, ленты конвейера, следов от гусениц и колёс, например на мокром песке и т.д.http://www.blenderreal.com/using-animations-in-node-editor-moving-uv-bge-tutorial/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3d3dy5ibGVuZGVycmVhbC5jb20vdXNpbmctYW5pbWF0aW9ucy1pbi1ub2RlLWVkaXRvci1tb3ZpbmctdXYtYmdlLXR1dG9yaWFsLw==)
Дополню, что материал надо сделать однотонным, включив у него галку Shadeless, иначе криво работать будет.ЦитироватьКаков может быть алгоритм создания движущихся гусениц, ленты конвейера, следов от гусениц и колёс, например на мокром песке и т.д.http://www.blenderreal.com/using-animations-in-node-editor-moving-uv-bge-tutorial/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3d3dy5ibGVuZGVycmVhbC5jb20vdXNpbmctYW5pbWF0aW9ucy1pbi1ub2RlLWVkaXRvci1tb3ZpbmctdXYtYmdlLXR1dG9yaWFsLw==)
https://youtu.be/6MmWROCjTGI (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly95b3V0dS5iZS82TW1XUk9DalRHSQ==)
Надеюсь понятно, что анимируется цвет материала.И не нужно никакого скриптописательства.
Пример: https://cloud.mail.ru/public/9adF/CkmejTqFM (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly9jbG91ZC5tYWlsLnJ1L3B1YmxpYy85YWRGL0NrbWVqVHFGTQ==)
Картинки, кстати, можно грузить через этот сервис без регистрации http://savepic.net (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3NhdmVwaWMubmV0)Samovar, из инструкции по пользованию я понял что это только сохранение картинок, а blend-файл не примет?
Инструкция: http://savepic.net/howto.htm
Удаляются только если в течении 24 месяцев их никто не просматривал.
Samovar, я спросил из-за того, что, просто к слову пришлось. Спасибо за информацию - я её сохранил, но займусь позже. Сейчас и без неё две темы открыты: "Окно в окне" и "Видеотекстура" и обе стоят из-за непоняток. Сниму непонятки по ним, и обязательно посмотрю как можно сделать конвейер, и след за шиной.ЦитироватьКаков может быть алгоритм создания движущихся гусениц, ленты конвейера, следов от гусениц и колёс, например на мокром песке и т.д.http://www.blenderreal.com/using-animations-in-node-editor-moving-uv-bge-tutorial/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3d3dy5ibGVuZGVycmVhbC5jb20vdXNpbmctYW5pbWF0aW9ucy1pbi1ub2RlLWVkaXRvci1tb3ZpbmctdXYtYmdlLXR1dG9yaWFsLw==)
https://youtu.be/6MmWROCjTGI (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly95b3V0dS5iZS82TW1XUk9DalRHSQ==)
Надеюсь понятно, что анимируется цвет материала.И не нужно никакого скриптописательства.
Пример: https://cloud.mail.ru/public/9adF/CkmejTqFM (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly9jbG91ZC5tYWlsLnJ1L3B1YmxpYy85YWRGL0NrbWVqVHFGTQ==)
И ещё, собственно что меня отталкивает от этих хранилищ - мне непонятно каким образом можно просмотреть сохранённое мною или вообще пользователями? Надо иметь ещё библиотеку со ссылками на сохранённые файлы?Как пользоваться облаком Майл ру?
А, вот это уже серьёзный разговор. Спасибо. Принял к сведению.ЦитироватьИ ещё, собственно что меня отталкивает от этих хранилищ - мне непонятно каким образом можно просмотреть сохранённое мною или вообще пользователями? Надо иметь ещё библиотеку со ссылками на сохранённые файлы?Как пользоваться облаком Майл ру?
http://kakimenno.ru/komputery-i-sotovye/internet/2331-kak-polzovatsya-oblakom-mayl-ru.html
Samovar, я спросил из-за того, что, просто к слову пришлось. Спасибо за информацию - я её сохранил, но займусь позже. Сейчас и без неё две темы открыты: "Окно в окне" и "Видеотекстура" и обе стоят из-за непоняток.
Спасибо большое - это прямо Царский подарок - очень доволен. Извините, но я пропаду на некоторое время - надо поиграться и разобраться одновременно этим уроком.ЦитироватьSamovar, я спросил из-за того, что, просто к слову пришлось. Спасибо за информацию - я её сохранил, но займусь позже. Сейчас и без неё две темы открыты: "Окно в окне" и "Видеотекстура" и обе стоят из-за непоняток.
Поправил: https://cloud.mail.ru/public/F1Ht/dhKT5vQtU (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly9jbG91ZC5tYWlsLnJ1L3B1YmxpYy9GMUh0L2RoS1Q1dlF0VQ==)
Обрати внимание, что сенсор Always должен постоянно выдавать импульс, чтобы текстура обновлялась. Объект камеры с красной рамкой я переименовал в SecurityCam. ДобавилUV развёртку параллелепипеду, создал текстуру и упаковал как PNG. В материале добавил текстуру с именем RenderToTexture и выбрал упакованную PNG картинку (это туда куда рендерится вид из камеры, можешь поиграться с разрешением текстуры). Ну и нацепил сенсор со скриптом к параллелепипеду.
C оператором print действительно какие-то проблемы. Надо вызывать волшебников: sungreen и Striver для разъяснений его поведения.Samovar, с оператором print я разобрался и исправил - теперь пишет нормально.
По рендеру в текстуру позже отпишусь, я тебе давал ссылку ранее и там есть пример. Но есть там и нюансы своебычные, увы: типа префикса "MA" для имени материала.
О, прикольно! Спасибки! А чего там не так было? Я не врублюсь в формат оператора print(). Дай ссылку, где об этом можно почитать. Или дело было не в операторе print()?Внутри функций я как-то умудрился сбить отступы. Просто случайно в конце строки нажал на ввод и заметил что курсор улетел в начало строки, а не на отступ. В 3-х местах как-то умудрился, но как это возможно я не знаю, но вот как-то умудрился и не заметил. Решил, вот, обратить ваше внимание на этот случай если попадётся такой "кудесник" как я, с просьбой - от дилетанта оказывается можно ждать и такой вот финт.
Внутри функций я как-то умудрился сбить отступы. Просто случайно в конце строки нажал на ввод и заметил что курсор улетел в начало строки, а не на отступ. В 3-х местах как-то умудрился, но как это возможно я не знаю, но вот как-то умудрился и не заметил. Решил, вот, обратить ваше внимание на этот случай если попадётся такой "кудесник" как я, с просьбой - от дилетанта оказывается можно ждать и такой вот финт.Ясно. Это та особенность, которую я постоянно забываю и не люблю в Python, хотя согласен, что так код более удобочитаем...
Samovar, вы в прошлом примере использовали в качестве текстуры "Untitled.png"? При распаковке расширение у меня не распозналось. Поставил .png, но вот в новом файле почему-то не распознаётся материал. В вашем - всё нормально, а в моём, точ в точ таком же, не распознаёт. Текстура "Untitled.png", это просто чёрный фон?Да, я просто в Редакторе Изображений создал новую картинку (кнопка New) и упаковал её как PNG (Меню: Image-> Pack as PNG )
Кстати, если вам удобнее через почту получать файлы, то киньте свой адрес - буду на почту отсылать.Нет, выкладывай в тему, другим ведь тоже интересно, думаю...
С облаком какая-то ерунда - там вроде только картинки можно отсылать, но если честно то мельком только взглянул.
Для особо одарённых, просто чёрный фон или ещё какие-то навороты? В редакторе изображений Blender? Как туда попасть?ЦитироватьSamovar, вы в прошлом примере использовали в качестве текстуры "Untitled.png"? При распаковке расширение у меня не распозналось. Поставил .png, но вот в новом файле почему-то не распознаётся материал. В вашем - всё нормально, а в моём, точ в точ таком же, не распознаёт. Текстура "Untitled.png", это просто чёрный фон?Да, я просто в Редакторе Изображений создал новую картинку (кнопка New) и упаковал её как PNG (Меню: Image-> Pack as PNG )
Для особо одарённых, просто чёрный фон или ещё какие-то навороты? В редакторе изображений Blender? Как туда попасть?Наворотов никаких не надо, лучше чёрный фон по-умолчанию. Значение имеет разрешение картинки (ширина и высота).
Поправил: https://cloud.mail.ru/public/F1Ht/dhKT5vQtU (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly9jbG91ZC5tYWlsLnJ1L3B1YmxpYy9GMUh0L2RoS1Q1dlF0VQ==)Samovar, тут такая проблема. В окне с красной рамкой отображение с явной диспропорцией объекта. Думал настройка камер виновата. Перепробовал три режима. Потом решил что параллелепипед, на котором идёт отображение, вносит свои поправки из-за своего объёма и заменил его на плоскость. Изменял соотношение сторон, углы наклона камеры и параллелепипеда-плоскости, но что называется "не в коня корм".
Обрати внимание, что сенсор Always должен постоянно выдавать импульс, чтобы текстура обновлялась. Объект камеры с красной рамкой я переименовал в SecurityCam. ДобавилUV развёртку параллелепипеду, создал текстуру и упаковал как PNG. В материале добавил текстуру с именем RenderToTexture и выбрал упакованную PNG картинку (это туда куда рендерится вид из камеры, можешь поиграться с разрешением текстуры). Ну и нацепил сенсор со скриптом к параллелепипеду.
Всё дело в соотношениях сторон ширина/высота (Aspect ratio) и у текстуры и у плоскостей. Почитай об этом, поэкспериментируй.Странно, я ведь пытался изменять размеры "экранов" и вроде не получилось. Может изменения делал незначительные. Ладно этот этап пройден. Samovar, хочу сам попробовать поменять виды из камер, т.е. теперь сделать то, что в красной рамке во всё окно, а то что в серой рамке сделать размером с красную.
https://cloud.mail.ru/public/4XBh/FF1VHMToR
... а так же выравнивания плоскостей параллельно плоскости вида из главной камеры. В примере можно обнаружить эти косяки глянув на вид сбоку.У камеры отображающей SecurityMonitor и самого объекта SecurityMonitor углы одинаковы, т.е. они должны быть параллельны, или вы какие-то другие косяки имеете в виду?
Samovar, если есть время, то взгляните на http://my-files.ru/gz8wyj. (http://blender-3d.ru/forum/go.php?url=aHR0cDovL215LWZpbGVzLnJ1L2d6OHd5ai4=)Ошибка. Не могу скачать файл. Перезалей.
У камеры отображающей SecurityMonitor и самого объекта SecurityMonitor углы одинаковы, т.е. они должны быть параллельны, или вы какие-то другие косяки имеете в виду?У тебя же плоскости с текстурами рамок параллельны плоскостям вида из камер. Вот так же создавай плоскости, в которые рендеришь вид ( а может быть и виды, т.к. их может быть не один, если ты пропишешь это в скрипте и создашь ещё других плоскостей, материалов, текстур и камер.)
Samovar, если есть время, то взгляните на http://my-files.ru/gz8wyj.Был какой-то сбой. На всякий случай почистил машину. Сейчас вроде работает нормально.
Попытался сделать одно, а получилось другое. Я не понял вообще каким образом назначил текстуру для SecurityMonitor вне работы BGE, да ещё так чтобы текстура была в текстуре, а та в предыдущей.
Чего-то начудил, а как, так и не понял.
Надо просто поменять главный вид на камеру с красной рамкой, перетащить туда текстуру в которую рендерится вид из другой картинки, и в скрипте изменить имя камеры-источника на имя объекта камеры с серой рамкой.Ну, поменять виды в камерах-то, я этот вариант сразу понял, но мне хотелось до конца разобраться со скриптом - хотел понять как возможно через скрипт управлять камерами.
Ну, поменять виды в камерах-то, я этот вариант сразу понял, но мне хотелось до конца разобраться со скриптом - хотел понять как возможно через скрипт управлять камерами.Всё это прекрасно и замечательно - заниматься врубанием, но ты лучше бы поставил себе какую нить задачу: создать простенькую игру типа Lines http://gameshape.ru/74-shariki-linii-98.html (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2dhbWVzaGFwZS5ydS83NC1zaGFyaWtpLWxpbmlpLTk4Lmh0bWw=) (я такую на бейсике в 1993 написал для школьных компов БК, в процессе много интересного узнал для себя) и т.п. в Блендере... по ходу написания больше бы разобрался.
Погляди файл. Посмотри как там называются материалы, текстуры и объекты камер. Думаю, разберёшься.К сожалению, не разобрался, и к тому же сдуру все свои пробы удалил хоть они и были закомментированы. Зачем удалил и сам не знаю.ЦитироватьНу, поменять виды в камерах-то, я этот вариант сразу понял, но мне хотелось до конца разобраться со скриптом - хотел понять как возможно через скрипт управлять камерами.Всё это прекрасно и замечательно - заниматься врубанием, но ты лучше бы поставил себе какую нить задачу: создать простенькую игру типа Lines и т.п. в Блендере... по ходу написания больше бы разобрался.
Насчёт игры: не по Сеньке шапка - чтобы появились идеи использования знаний, нужны знания.Игру воплотить - это относительно просто. Гораздо сложней - придумать интересную игру :) Хороших гейм-дизайнеров не так много...и он не обязан знать программирование, но должен внятно уметь изложить правила (логику) игры :)
А почему файл не скачиваешь из сообщения #99? Уже охладел и стало неинтересно?Извините, просмотрел. Скачал, посмотрю.
Я с трудом понимаю чего ты хочешь в итоге добиться, и для чего это нужно. Достаточно смутно и витиевато формулируешь свои задачи и выражаешь мысли. Рисуй наброски и схемы от руки и выкладывай картинки, чтобы твои соображения и идеи были более понятны и конкретизированы, а не выглядели смутно и расплывчато...Я же писал: "для меня это занятие что-то вроде решения ребуса - пользы никакой, а удовольствия море".
Игру воплотить - это относительно просто. Гораздо сложней - придумать интересную игру :) Хороших гейм-дизайнеров не так много...и он не обязан знать программирование, но должен внятно уметь изложить правила (логику) игры :)Совершенно верно, сейчас каждый имеет фото и кинокамеру в телефоне, однако классный видео или фото сюжет очень не многим под силу.
Samovar, я посмотрел, только то что вы предлагаете у меня у самого получается, а вот это: https://cloud.mail.ru/public/EXRW/pSbvAvcKY та картинка которую я вам отсылал в #53. Я её состряпал в Paint.А почему файл не скачиваешь из сообщения #99? Уже охладел и стало неинтересно?Извините, просмотрел. Скачал, посмотрю.
Совершенно верно, сейчас каждый имеет фото и кинокамеру в телефоне, однако классный видео или фото сюжет очень не многим под силу.Наоборот. Если ты технарь, так и выражайся техническим языком, прилагая технические рисунки, чертежи и схемы... Что неясно?
Ну, а знание великого и могучего не означает владение им на уровне Тургенева или Толстых, что Льва, что Алексея. Хотелось бы так владеть, но и здесь "не по Сеньке шапка". Технарь я, и есть технарь.
Я хочу понять как можно достичь подобного эффекта, т.е. какую я камеру захотел, такую камеру и установил как главную камеруЯ думал, что у тебя есть понимание, как в Блендере установить главную (активную) камеру.
Samovar, давайте завтра разберёмся с камерами - на свежую голову. Я пишу не о выделении во время редактирования, а о скрипте, ведь там активируется у меня камера, и там же определяется какое изображение, как, и где отображать.ЦитироватьЯ хочу понять как можно достичь подобного эффекта, т.е. какую я камеру захотел, такую камеру и установил как главную камеруЯ думал, что у тебя есть понимание, как в блендере установить главную (активную) камеру.
Выделяешь камеру (можно и любой объект :) )и жмёшь {Ctrl+Num0}
### Рендер в текстуру ###
import bge # импортировать модуль bge
scene = bge.logic.getCurrentScene() # получить текущую сцену
objList = scene.objects # получить список объектов в сцене
cont = bge.logic.getCurrentController() # получить текущий контроллер
obj = cont.owner # получить объект-владелец этого контроллера с этим скриптом
if "R" in obj: # если существует атрибут "R" в объекте-владельце
m = obj["R"] # передаём указатель на буфер из текстуры "R"
m.refresh(True) # обновляем буфер
else: # Инициализация (первое обращение), если атрибут "R" не был создан в объекте-владельце
name = "C" # переменной присваиваем имя объекта камеры-источника
cam = objList[name] # получаем указатель на камеру-источник из списка всех камер в сцене
matID = bge.texture.materialID(obj, "MAs") # получаем указатель на материал в котором содержится текстура
r = bge.texture.Texture(obj, matID) # создаём объект-указатель на буфер
r.source = bge.texture.ImageRender(scene,cam) # указываем откуда в объект (буфер) будет отображаться текстура
obj["R"] = r # делаем текстуру с именем "R" буфером
name = "C" # переменной присваиваем имя объекта камеры-источника
cam = objList[name] # получаем указатель на камеру-источник из списка всех камер в сцене
cam = objList["C"] # получаем указатель на камеру-источник из списка всех камер в сцене
Специально поменял на простые названия, что бы ты врубился... и комментарии свои написал...Samovar, уточняю свою проблему. В вашем предложении "Области просмотра 2 (6).blend" всё зависит от того при какой активной камере в окне 3D запускать игру. Установите поочерёдно вид из камеры "С", "Cam2", "SecurityCam" и запустите игру, увидите сами. Потому для указания активной камеры я в 8 и 9 строках вашей версии добавил строки определяющие камеры:
........................
Да вроде всё работает...Samovar, вы кудесник. Да, это то, что я ищу, однако получилась зацикленность окон в правом верхнем углу. Окна отмеченные стрелками не нужны, как можно от них избавиться?
Просто удали плоскость с материалом в который рендерится текстура у камеры с серой рамкой, или перемести её в другой слой, который не отображается. Или отключи ее видимость при запуске игры с помощью актуатора Visiblity.Здорово, однако ничего не понятно. Как это удалить плоскость, ведь предметы просто в пропасть полетят?
Здорово, однако ничего не понятно. Как это удалить плоскость, ведь предметы просто в пропасть полетят?Я не эту плоскость имел ввиду, а одну из тех, в которые рендерится картинка из указанной в скрипте камеры-источника.
>> я, так подозреваю left это значение верхнего левого угла изображения; bottom - нижнего левого; right - правый нижний; top - правый верхний.sungreen, с setViewport(left, bottom, right, top) провёл ряд экспериментов и убедился что это не просто координаты углов или точек. Взгляните сюда: https://cloud.mail.ru/public/3EBS/3fCxrvqhx, а это файл в котором пробовал: https://cloud.mail.ru/public/36uF/qwjhFyfba
описание можно посмотреть в API
https://docs.blender.org/api/blender_python_api_current/bge.types.KX_Camera.html?highlight=setviewport#bge.types.KX_Camera.setViewport
>>ищу возможность свободного размещения окон просмотра на экране.
можешь написать любые значения в setViewport(left, bottom, right, top)
Не понял, плоскость SecurityMonitor?ЦитироватьЗдорово, однако ничего не понятно. Как это удалить плоскость, ведь предметы просто в пропасть полетят?Я не эту плоскость имел ввиду, а одну из тех, в которые рендерится картинка из указанной в скрипте камеры-источника.
Нет...О, как. А я ведь только что разглядел, что вы плоскость переместили и связали с камерой, и добавили два сенсора. А в чём смысл переключения единицей и двойкой? Вряд ли я где прочитаю за счёт чего происходит это "зеркальное зацикливание" - может хоть чуть-чуть найдёте возможность для пояснения, ведь интересно же.
А в чём смысл переключения единицей и двойкой?Просто демонстрация управления видимостью объекта.
Вряд ли я где прочитаю за счёт чего происходит это "зеркальное зацикливание" - может хоть чуть-чуть найдёте возможность для пояснения, ведь интересно же.Это, скорее всего, внутренняя возможность движка BGE. Количество рекурсий надо смотреть в исходном коде Блендера, хотя, может быть я ошибаюсь.
Да, я ответ sungreen'у отправил, может найдёте возможным что сказать?Мне нечего сказать по этому вопросу.
Большое спасибо за помощь, надеюсь что не очень надоел. Однако очень хотелось бы увидеть ответ на мой #118.ЦитироватьА в чём смысл переключения единицей и двойкой?Просто демонстрация управления видимостью объекта.ЦитироватьВряд ли я где прочитаю за счёт чего происходит это "зеркальное зацикливание" - может хоть чуть-чуть найдёте возможность для пояснения, ведь интересно же.Это, скорее всего, внутренняя возможность движка BGE. Количество рекурсий надо смотреть в исходном коде Блендера, хотя, может быть я ошибаюсь.ЦитироватьДа, я ответ sungreen'у отправил, может найдёте возможным что сказать?Мне нечего сказать по этому вопросу.
Samovar, за ссылки, конечно, спасибо, но я английский от китайского не отличу. В видео, конечно, что-то можно уловить по смыслу происходящего на экране. Но, на сколько я понял, на такой конвейер не положишь что-то, и это что-то не поедет на ленте, и не упадёт в том месте где лента изогнувшись вокруг вала пойдёт в обратном направлении.ЦитироватьКаков может быть алгоритм создания движущихся гусениц, ленты конвейера, следов от гусениц и колёс, например на мокром песке и т.д.http://www.blenderreal.com/using-animations-in-node-editor-moving-uv-bge-tutorial/ (http://blender-3d.ru/forum/go.php?url=aHR0cDovL3d3dy5ibGVuZGVycmVhbC5jb20vdXNpbmctYW5pbWF0aW9ucy1pbi1ub2RlLWVkaXRvci1tb3ZpbmctdXYtYmdlLXR1dG9yaWFsLw==)
https://youtu.be/6MmWROCjTGI (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly95b3V0dS5iZS82TW1XUk9DalRHSQ==)
Надеюсь понятно, что анимируется цвет материала.И не нужно никакого скриптописательства.
Пример: https://cloud.mail.ru/public/9adF/CkmejTqFM (http://blender-3d.ru/forum/go.php?url=aHR0cHM6Ly9jbG91ZC5tYWlsLnJ1L3B1YmxpYy85YWRGL0NrbWVqVHFGTQ==)
Но, на сколько я понял, на такой конвейер не положишь что-то, и это что-то не поедет на ленте, и не упадёт в том месте где лента изогнувшись вокруг вала пойдёт в обратном направлении.Реалистичная физика очень грузит комп, если не применяется ускоритель.В играх всегда компромисс меж точностью и скоростью. Если тебе нужна реалистичная симуляция, то лучше использовать физику Blender, а не BGE.
Спасибо Samovar, как идея очень и очень интересно. Понятное дело, что когда коснётся применить - то появятся дополнительные вопросы, но на данный момент вы удовлетворили моё любопытство. Всех вам благ.ЦитироватьНо, на сколько я понял, на такой конвейер не положишь что-то, и это что-то не поедет на ленте, и не упадёт в том месте где лента изогнувшись вокруг вала пойдёт в обратном направлении.Реалистичная физика очень грузит комп, если не применяется ускоритель.В играх всегда компромисс меж точностью и скоростью. Если тебе нужна реалистичная симуляция, то лучше использовать физику Blender, а не BGE.
--------
Можно просто анимировать цикл движения ленты и проигрывать его постоянно...
Спасибо, Barabashka. И тебе всего хорошего.Samovar, если есть время, взгляните пожалуйста на мой файл. Если раскомментировать 23 строку, то Блендер очень "огорчается" и уходит по-английски - не прощаясь. Никак не пойму, что не так.
Огорчу. У меня тоже Блендер вылетает, если в коде используется ImageMirrorЗдОрово. Samovar, может есть файл с зеркалом, работающий на современных версиях Блендера? Я нарыл описание, но для версии 2.49 - совершенно мне незнакомый интерфейс.
http://bgepython.tutorialsforblender3d.com/VideoTexture/ImageMirror/ImageMirror (http://blender-3d.ru/forum/go.php?url=aHR0cDovL2JnZXB5dGhvbi50dXRvcmlhbHNmb3JibGVuZGVyM2QuY29tL1ZpZGVvVGV4dHVyZS9JbWFnZU1pcnJvci9JbWFnZU1pcnJvcg==)
Там есть файл примера.
Вероятно, надо в багтрекер писать, чтобы разработчики обратили на это внимание и устранили в будущих версиях...
Samovar, может есть файл с зеркалом, работающий на современных версиях Блендера?ты глючишь, что ли... я же тебе пишу: НЕТ
Samovar, если я ещё не окончательно надоел со своими окнами в окнах, то взгляните на файл: {Здесь была нерабочая ссылка}. Я рассчитывал получать изображение на "Monitor'е", а изображение получается в стороне. Мало того, незначительное изменение положения монитора ведёт к значительным изменениям места изображения. Что-то я опять "накуралесил", а вот что, похоже, без помощи не пойму. Объект Monitor, методом "научного тыка" установил. Чуть бОльшие перемещения вообще его делают невидимым так же как и изображение в режиме работы BGE.Эта ссылка работает: http://my-files.ru/wvm488/Avtosimuljftor 8.blend
>> я, так подозреваю left это значение верхнего левого угла изображения; bottom - нижнего левого; right - правый нижний; top - правый верхний.sungreen, со мной поделились файлом как раз поясняющим смысл setViewport(left, bottom, right, top),
описание можно посмотреть в API
https://docs.blender.org/api/blender_python_api_current/bge.types.KX_Camera.html?highlight=setviewport#bge.types.KX_Camera.setViewport
>>ищу возможность свободного размещения окон просмотра на экране.
можешь написать любые значения в setViewport(left, bottom, right, top)
Я же писал: "для меня это занятие что-то вроде решения ребуса - пользы никакой, а удовольствия море".Ну дык и решай самостоятельно :) Зачем нам тратить, на это твоё развлечение, своё время? Полно других людей, которым действительно нужен совет или помощь... И если до тебя не доходит, то-то повторённое несколько раз, то проблема в тебе, а не в нас... тут не средняя школа с обязаловкой, а больше лекции как в ВУЗ... ты не хочешь учиться и не учишься, дело твоё... иначе бы не задавал однотипных глупых вопросов на протяжении месяцев и даже лет... это видно :)
ЦитироватьSamovar, может есть файл с зеркалом, работающий на современных версиях Блендера?ты глючишь, что ли... я же тебе пишу: НЕТ
Ну дык и решай самостоятельно :) Зачем нам тратить, на это твоё развлечение, своё время?...К чему так горячиться? Я же не высказываю ни обид, ни претензий - можете разъяснить, есть желание подсказать или поделиться опытом - буду рад общению. Ну, а на нет и суда нет ...
Samovar, с зеркалом я в некоторой степени справился и направил вам готовый файл "в подарок". Вопросы по зеркалу у меня ещё есть, но я вам 28 Февраля 2017, 21:46:41 направил файл с вопросами не имеющими отношения к зеркалу, тем более что я сейчас Blender 2.77 вернул и он работает вроде без сбоев.
Ещё раз напишу, что это баг. В версии 2.76b Зеркало работает. В текущей 2.78b Блендер вылетает при запуске.http://download.blender.org/release/Blender2.76/