• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Новости:

Форум Quest3D восстановлен!

Главное меню

Клонирование объектов

Автор kyard, 20 июля 2009, 17:32:42

« назад - далее »

kyard

Я прочитал что For Loop в сочетании с массивом мощная вещь но не смог пример реализовать. Модель импортирована из 3ds max 9
через MilkShape 3D 1.8.2 в .X формате.
Мне нужно не только размножить объект, но и чтобы можно было  передвигать каждую копию как самостоятельную. Такое возможно?

mixey

Ты сначала изучи простые примеры и пойми принцип работы с массивами!

Вот здесь все что нужно, для начала https://guest3d.wohlnet.ru/g3d/?q=node/37

ЦитироватьМне нужно не только размножить объект, но и чтобы можно было  передвигать каждую копию как самостоятельную. Такое возможно?

Можно, можно! Но с оговоркой на то, что ты хочешь сделать и для чего, а то метод может быть не оправданным!

kyard

В своей игре планировал разместить сундуки. Вот и спрашиваю про то какими методами можно это сделать.

DimiS

Цитата: kyard от 20 июля 2009, 17:32:42
Я прочитал что For Loop в сочетании с массивом мощная вещь но не смог пример реализовать.

Ну а что именно ты там не смог реализовать? в чём оказалась проблема?

kyard

Проблема в том, что пример для стандартных объектов Q3D, а у меня экспортированный в .X формате и там другие блоки. Это во-первых, а во-вторых размножить объекты я смог, но как каждую копию перемещать отдельно от остальных!?

*Конкретно: 4 объекта, перемещаются как одно целое! Как их разделить?*

DimiS

Цитата: kyard от 21 июля 2009, 13:03:23
Проблема в том, что пример для стандартных объектов Q3D, а у меня экспортированный в .X формате и там другие блоки.
Это ровным счётом ни на что не влияет. Разная у вас геометрия объекта, а тебе должен быть интересен блок с Motion матрицей. Вот именно его надо воспроизвести из примера.

Цитата: kyard от 21 июля 2009, 13:03:23
Это во-первых, а во-вторых размножить объекты я смог, но как каждую копию перемещать отдельно от остальных!?

*Конкретно: 4 объекта, перемещаются как одно целое! Как их разделить?*
Ну раз они перемещаются все вместе, значит и координаты ты им одновременно меняеш, логично? Значит у тебя в цикле для отрисовки объекта должно присутствовать смещение для каждого конкретного объекта. И при каждом проходе цикла, для каждого объекта должно браться именно его смещение, например выбираться из масива по номеру прохода.

kyard

DimiS спасибо тебе что объяснил. В общих чертах я тебя понял (просто я еще не углублялся в массивы). Вот еще два вопроса:
1.Можно будет перемещать объекты  в окне анимации (я имею виду копии)?
2.Если тупо копировать папки и цеплять их к рендеру(что я и делаю)как это повлияет на систему?

DimiS

Цитата: kyard от 22 июля 2009, 08:41:28
1.Можно будет перемещать объекты  в окне анимации (я имею виду копии)?
Я честно говоря не очень дружу с квестовым редактором по части окна анимации. Там есть какие то странные условия, при которых можно перемещать объекты из окна анимации -- к объекту должна быть подключена именно Motion матрица, к ней векторы, к котрым обязательно Envelope на каждую координату. Это из моих наблюдений, может я чего не уловил.
Вобщем когда мне надо было разместить несколько одинаковых объектов, то я просто двигал один экземпляр такого объекта подключив к нему всю ту муть. Разместив экземпляр как мне надо было для одного из объектов, я сохранял значения позишен и ротейшен векторов в массив. Потом я передвигал экземпляр в позицию для следующего объекта, и сохранял позишен и ротейшен с новым индексом, и т.д. А в цикле отрисовки уже обращялся к этим данным по индексу.

Цитата: kyard от 22 июля 2009, 08:41:28
2.Если тупо копировать папки и цеплять их к рендеру(что я и делаю)как это повлияет на систему?
Вопроса не понял, какие папки? Если ты имееш ввиду копирование одного и того же объекта несколько раз, то это черевато двумя последствиями. Во первых увеличится вес твоей проги, но это решаемо -- во всех местах где используется одна и та же Object Data разместить ссылки на один ченнел. Вторая проблема -- если у тебя применяется какая то логика к этим объектам, то когда тебе понадобится её изменить ты должен будеш внести одинаковые исправления во всех N копиях. Это может выглядеть пока пустячной проблемой, но потом ты поймёш :)

kyard

Цитата: DimiS от 22 июля 2009, 11:39:22
Цитата: kyard от 22 июля 2009, 08:41:28
1.Можно будет перемещать объекты  в окне анимации (я имею виду копии)?
Я честно говоря не очень дружу с квестовым редактором по части окна анимации. Там есть какие то странные условия, при которых можно перемещать объекты из окна анимации -- к объекту должна быть подключена именно Motion матрица, к ней векторы, к котрым обязательно Envelope на каждую координату. Это из моих наблюдений, может я чего не уловил.
Вобщем когда мне надо было разместить несколько одинаковых объектов, то я просто двигал один экземпляр такого объекта подключив к нему всю ту муть. Разместив экземпляр как мне надо было для одного из объектов, я сохранял значения позишен и ротейшен векторов в массив. Потом я передвигал экземпляр в позицию для следующего объекта, и сохранял позишен и ротейшен с новым индексом, и т.д. А в цикле отрисовки уже обращялся к этим данным по индексу.

Цитата: kyard от 22 июля 2009, 08:41:28
2.Если тупо копировать папки и цеплять их к рендеру(что я и делаю)как это повлияет на систему?
Вопроса не понял, какие папки? Если ты имееш ввиду копирование одного и того же объекта несколько раз, то это черевато двумя последствиями. Во первых увеличится вес твоей проги, но это решаемо -- во всех местах где используется одна и та же Object Data разместить ссылки на один ченнел. Вторая проблема -- если у тебя применяется какая то логика к этим объектам, то когда тебе понадобится её изменить ты должен будеш внести одинаковые исправления во всех N копиях. Это может выглядеть пока пустячной проблемой, но потом ты поймёш :)

Спасибо, я это учту

redis

Мне вот какой момент интересен: если в проекте будет ну просто не преличное кол-во блоков это сильно повлияеет на производительность ? если да то в процентах можете указать, примерно конешно.

kyard

Похоже ни кто не знает ответ на этот вопрос

Viik

В процентах от чего? От веса винчестера на котором храниться проект? )))

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

Dr.Akula

Всем привет!!!
у меня возник такой вопрос на эту тему
Я хочу зделать простенькую игру, с звездолетам в космасе, что та вроде дендивскай галактики, и застрял на выстрелах.
Хател зделать так, для пули взять кубик привязать к ниму ForLoop, к ForLoop кнопку чтобы кагда нажимаем пуля копировалась перед звездалетам, Motion кубика задать  движение вперед. насловах вроди все проста, а зделать нипалучается.   :-\
Памагитнте плиззз, жилательно примером. ;)
C графикай по жизни
http://blast-brain.3dn.ru/

redis

Вот сдесь я выкладывал пример с ии и там стрельба заодно есть https://guest3d.wohlnet.ru/forum/index.php?topic=764.0 , на мой взгляд если делать каждую пулю отдельным обьектом то потом будет проще коллизию проверять

Dr.Akula

Спасибо!!! супер, почти идеально ;D
Всем рекомендую  ;) ;) ;) ;) ;) ;) 
C графикай по жизни
http://blast-brain.3dn.ru/