Часто задаваемые вопросы

Автор clearing, 25 января 2010 14:00:20

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

0 Пользователи и 1 гость просматривают эту тему.

Soul_Tear

Вроде с этим разобрался :). C FrobInert потом поковыряюсь, надо сравнить что лучше, сейчас убрал ящик через RequireAnyTrap, хотя в первый раз делал как-то иначе. А ящик в землю попадал, потому что не надо было менять координаты маркеру, пришлось ручками подгонять.

Но это еще не все, теперь осталось заставить AI повернуться к ящику и сделать движение рукой к кошельку. Сначала я сделал так, привязал все тот же пресловутый активный ящик ControlDevice'ом к простому маркеру со скриптом TrapConverse, маркер привязал AIConversationActor'ом к вору, а вору добавил conversation:



В первом действии он должен повернуться к объекту, во втором сделать движение рукой вперед. Ничего не получилось. Какой шаг еще пропущен :confused:

Shadowhide

ты же не выбрал движение во 2-м шаге !

Dront

ЦитироватьНо это еще не все, теперь осталось заставить AI повернуться к ящику и сделать движение рукой к кошельку.
AI должен сделать это после каких-то действий игрока или спонтанно? Иначе говоря, ему даётся какая-нибудь внешняя команда это делать?
Слишком мало начальных условий. Опиши подробнее, как именно и что сделано.
Первые варианты, бросающиеся в глаза: в параметре связи AIConversationActor у вора не стоит номер 1, либо надо использовать вообще не conversation, а связь AIWatchObj.
"You cannot run from life as you did from us, Garrett! Life has a way of finding you..."
"Beware the dawn of the Metal Age."

Soul_Tear

Немного отдохнул, теперь можно и продолжить. Появился ряд вопросов, надеюсь, поможете.  :agree:

Самое страшное, что при выполнении Compute Pathfinding Database выскочило:

Можно ли как-то исправить :confused:

Поставил свою озвучку AI: файлы в SND\Necrofem, в SPEECH.PKCS вписал с новой строки voice vnecrofem, в свойствах AI выбрал Speech>Voice>vnecrofem, reload_schemas, save gamesys – тишина. Что нужно еще?
В другой ФМ увидел в иерархии схем новых озвучек имеется свойство Voice Index, изменение параметра вызвало ошибку, что-то вроде «Индекс не может быть больше 124», хотя у меня было 70, как в той же ФМ.

Переписывал буррика из другой ФМ по образцу – вроде все один в один, все подклассы создал, связи создал, но буррик не плюется, просто подбегает ко мне и бегает рядом, так как ударить ему нечем. Все же я что-то пропустил или есть еще какой-то фактор, позволяющий буррику атаковать отрыжкой?

Что касается вора, я пока не понял, как это реализовать, но меня устроит любая схема, а иллюстрация такая:
После того как на ящик телепортируется неактивный кошелек, а на стенд-полку активная стрела, то бишь покупка завершается, AI должен повернуться в сторону ящика на n-градусов и сделать движение рукой вперед, после чего неактивный кошелек должен телепортироваться с глаз долой.
Первый вопрос – каким образом осуществить реакцию AI на неактивный кошелек, чтобы вызвать движение, второй – что тогда спровоцирует телепорт кошелька в синюю комнату?

Цитата: Shadowhide от 19 февраля 2012 00:45:14
ты же не выбрал движение во 2-м шаге !

Я так понял из обучалки для этой задачи хватит шагов 0-1, а на скрин просто попало лишнее поле.


Цитата: Dront от 19 февраля 2012 01:21:05
Первые варианты, бросающиеся в глаза: в параметре связи AIConversationActor у вора не стоит номер 1, либо надо использовать вообще не conversation, а связь AIWatchObj.

В параметре связи же имя AI, разве там важно, что писать? Можно и AIWatchObj главное чтобы получилась картинка, будто Гарретт покупает товар, а вор забирает деньги, неатмосферно их оставлять на ящике.


Soul_Tear

#244
Ошибка на первом скрине была из-за лифта, но едва исправил как на том же pathfindinge вылезла новая :(
 
Вроде так у меня было, когда я первый раз редактировал Voice Index, только сейчас я его не трогал.

Zontik

ЦитироватьВ параметре связи же имя AI, разве там важно, что писать?
Писать ничего не надо, но надо обязательно выбрать из выпадающего списка "номер актера". Обычно начинают с первого.
Цитироватькаким образом осуществить реакцию AI на неактивный кошелек, чтобы вызвать движение
Это неверная тактика. Можно, конечно, и так, но куда логичнее не нагружать мозг AI сверх меры и создать иллюзию реакции. В реальности же движения AI будут запускаться не плохо предсказуемой реакцией, а прямой директивой. Ну, например, одновременно с включением последовательности замены кошельков будет запускаться управляющий движением диалог.
Еще нюанс: AI не выполнит никакого другого действия, пока не завершит движение. В твоем случае это означает, что он протянет руку, затем вернется в исходное положение, а момент, когда его рука находится над кошельком, движок никаким образом не отслеживает. Если хочешь, чтобы кошелек исчез именно в этот момент, а не до и не после, придется привязывать это событие к отдельному таймеру. Время задержки подобрать опытным путем.
По поводу ошибки индекса ничего не скажу, данных мало. Но на всякий случай рекомендую еще раз особенно тщательно проверить лифт. От этого точно не будет вреда.
Дайте глазам отдохнуть! Тёмное место

Dront

ЦитироватьПоставил свою озвучку AI: файлы в SND\Necrofem, в SPEECH.PKCS вписал с новой строки voice vnecrofem, в свойствах AI выбрал Speech>Voice>vnecrofem, reload_schemas, save gamesys – тишина. Что нужно еще?
Типичный вопрос от начинающего автора :) Действительно, по здравому смыслу, вроде бы всё. Ан нет.
DromEd использует не звуковые файлы напрямую, а схемы. Та строчка voice vnecrofem, которую ты добавил, - это только часть работы. Необходимо прописать отдельную схему, чтобы движок знал, какие файлы при каком событии проигрывать.
Лучший способ сделать это - по образцу оригинальных схем. Надо найти архив schema.crf и посмотреть, как там расписаны голоса, например, стражей или механистов. И только после создания новой схемы уже можно возиться с настройками голоса в DromEd'е. Хотя, судя по описанию, тамошнюю работу ты уже всю сделал.
ЦитироватьПереписывал буррика из другой ФМ по образцу – вроде все один в один, все подклассы создал, связи создал, но буррик не плюется, просто подбегает ко мне и бегает рядом, так как ударить ему нечем. Все же я что-то пропустил или есть еще какой-то фактор, позволяющий буррику атаковать отрыжкой?
Связь AIProjectile от буррика к его отрыжке (burpfx, кажется) есть? Скорее всего, отрыжку тоже необходимо добавить в иерархию и, вероятно, даже придётся создать на уровне (хотя поместить можно и в подсобку).

Про ошибку index out of range: маловероятно, что она связана с голосом, если возникает при pathfinding. Можно попробовать поискать на ттлг, что это за зверь.
"You cannot run from life as you did from us, Garrett! Life has a way of finding you..."
"Beware the dawn of the Metal Age."

Soul_Tear

Продолжаю пополнять свою коллекцию ошибок.



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

Soul_Tear

#248
Цитата: Dront от 27 февраля 2012 21:27:22
Лучший способ сделать это - по образцу оригинальных схем. Надо найти архив schema.crf и посмотреть, как там расписаны голоса, например, стражей или механистов. И только после создания новой схемы уже можно возиться с настройками голоса в DromEd'е. Хотя, судя по описанию, тамошнюю работу ты уже всю сделал.

Дошло, надо было еще вписать схему в файл схем, а я только в "спич" вбил :)

ЦитироватьСвязь AIProjectile от буррика к его отрыжке (burpfx, кажется) есть? Скорее всего, отрыжку тоже необходимо добавить в иерархию и, вероятно, даже придётся создать на уровне (хотя поместить можно и в подсобку).

Связи есть, но на уровне само оружие не создавал, надо будет проверить, вообще я ему, буррику, какой-то скрипт по аналогии с другим ai поставил, и он начал пытаться рыгать, но отрыжка не летела на Гарретта, а клубилась вокруг зверя :)

ЦитироватьПро ошибку index out of range: маловероятно, что она связана с голосом, если возникает при pathfinding. Можно попробовать поискать на ттлг, что это за зверь.

Такое ощущение, что существует ряд ошибок на эту тему, только цифры меняются, на ttlg освещались ошибки с цифрами 3 и 4, но они появлялись не на pathfindinge, а при загрузке то ли игры, то ли DarkLoadera, а больше ничего и не нашел, и решением было установка дрома более поздней версии.
Самую большую ошибку, которую я допустил по невнимательности, что своевременно не проводил pathfinding, а теперь хрен разберешься, откуда это пришло, и еще плохо, что в default.rep под словом ERROR сообщается куча безобидной фигни, а существенные проблемы не отражаются :(

Soul_Tear

#249
Цитата: Zontik от 27 февраля 2012 10:46:42
В реальности же движения AI будут запускаться не плохо предсказуемой реакцией, а прямой директивой. Ну, например, одновременно с включением последовательности замены кошельков будет запускаться управляющий движением диалог.
Еще нюанс: AI не выполнит никакого другого действия, пока не завершит движение. В твоем случае это означает, что он протянет руку, затем вернется в исходное положение, а момент, когда его рука находится над кошельком, движок никаким образом не отслеживает. Если хочешь, чтобы кошелек исчез именно в этот момент, а не до и не после, придется привязывать это событие к отдельному таймеру. Время задержки подобрать опытным путем.

Так а как запустить управляющий движением диалог?
Кошелек должен исчезнуть после движения. Я вообще думаю проще убрать его переходом в какую-нибудь руму и по возвращении в эту локацию кошелька уже не будет и никаких заморочек, просто для практики хотелось освоить принцип с движениями.

ЦитироватьПо поводу ошибки индекса ничего не скажу, данных мало. Но на всякий случай рекомендую еще раз особенно тщательно проверить лифт. От этого точно не будет вреда.

На лифте было сообщение LINKID_RELATION из-за отсутствия TerrPt, сейчас один лифт привязан к 1 поинту и просто висит в воздухе, другие летают, как положено


Хех, а ты прав с лифтом :agree:, это было из-за того, что Terrpt, к которому был привязан лифт, не был связан с другим  Terrpt.

Zontik

Цитироватьэто только начало локации и хотелось бы расширить ее, может быть что-то посоветуете?
Совет один: ограничить поле зрения. Причем физически (брашами), а не просто визуально (туманом, объектами и т.п. - это все считается для движка прозрачным). Понимаю, что последовать этому совету нелегко (сам сейчас в похожей ситуации), но это единственное, что радикально решает проблему.
В твоем конкретном случае можно еще попробовать сделать деревья объектами, но здесь тоже существует ограничение, и его гораздо труднее контролировать. Если в случае с брашами можно воспользоваться командой show_stats в игровом режиме (и затем следить за субтитрами - сколько полигонов в кадре и сколько cells), то при работе с объектами способ один: нагромождать до вылета или начала глюков, затем убирать по одному.
Цитироватьа как запустить управляющий движением диалог?
От триггера (кнопка, рубильник, таймер, bounds trigger) связь ControlDevice направить к маркеру со скриптом TrapConverse.
Дайте глазам отдохнуть! Тёмное место

Dront

Цитироватьно отрыжка не летела на Гарретта, а клубилась вокруг зверя
Вероятно, сбиты настройки точки, откуда вылетает снаряд (отрыжка). Если посмотреть параметры связи AIProjectile, там должна быть привязка снаряда к определённой точке тела (joint), для буррика это голова (head).
"You cannot run from life as you did from us, Garrett! Life has a way of finding you..."
"Beware the dawn of the Metal Age."

Soul_Tear

#252
Цитата: Zontik от 28 февраля 2012 09:41:42
Совет один: ограничить поле зрения. Причем физически (брашами), а не просто визуально (туманом, объектами и т.п. - это все считается для движка прозрачным). Понимаю, что последовать этому совету нелегко (сам сейчас в похожей ситуации), но это единственное, что радикально решает проблему.
В твоем конкретном случае можно еще попробовать сделать деревья объектами, но здесь тоже существует ограничение, и его гораздо труднее контролировать.

Теперь до меня дошел смысл фразы "ограничение движка", придется лес на комнаты разбивать.

ЦитироватьОт триггера (кнопка, рубильник, таймер, bounds trigger) связь ControlDevice направить к маркеру со скриптом TrapConverse.

Вроде понятно, поковыряюсь, спасибо.

Dront, ага, в этом все было дело спасибо.
Последнее осталось непонятным - отрыжка визуально нормальная - довольно широкая волна, но только частицы, а урон по Гарретту идет только если тот находится по центру отрыжки. Вроде буррик сразу во все стороны атакует, а не как лучник в одну точку или нет? Если да, где бы это отрегулировать?

Zontik

Не знаю точно, но почти уверен, что это радиус действия "вонючего" стимула. Увеличь его, и будет захватываться бОльшая область.
Дайте глазам отдохнуть! Тёмное место

Soul_Tear

#254
Задумал изготовление веревочных стрел из предметов в инвентаре с моделью простой стрелы и кнопки с моделью ящика с веревками.
TrapDispenser из tnh-пака добавляет Гарретту предмет по нажатию на кнопку, и так до бесконечности. Непонятно, что делать, если надо получить всего один предмет.
Более того, хотелось бы, чтобы нажатие на кнопку осуществлялось не "рукой", а предметом из инвентаря при наводке на кнопку, и чтобы на нажатие рукой трэп не реагировал или чтобы кнопка не реагировала на "руку". Мне самому кажется это на грани фантастики, но мало ли есть шанс, что получится  :)
PokeStim стрелы позволяет толкать объекты и в том числе нажимать на кнопки, но придание этого стимула моему предмету и добавление соответствующего рецептора кнопке не дало никакого эффекта. А эффекта нужно два, во-первых, нажать на кнопку для активирования трэпа, во-вторых, после этого инвентарный предмет должен уничтожится, что решило бы задачу с бесконечностью предметов.

Параллельно пробовал вариант с дверью и ключами. Дал двери срипт кнопки, но номер не прошел, видимо этого мало или с дверями не работает. К тому же, не смотря на то, что ключи-стрелы ложаться в один слот, при открывании двери исчезают все сразу.
Есть идеи?