Конкретно строка: LAi_type_monkey_Init(chr); Решил похимичить. Но ничего не получилось. Вопрос: Можно ли сделать главного героя обезъянкой и как это сделать если можно. ( чтоб анимация была и не было глюков. ) Пользуясь случаем хочу поблагодарить ALexusB'a и Alexad_D'a. Действительно помогло.
Автор: navy Aug 7 2009, 13:29
Цитата
Вопрос: Можно ли сделать главного героя обезъянкой и как это сделать если можно. ( чтоб анимация была и не было глюков. )
Можно Вообще это веселая задачка... Надо освежить в памяти.. Кстати ГГ сделать проще, чем НПС
кстати этот код (выше) я не видел нигде, он откуда?
Автор: VladNiP Aug 7 2009, 13:35
Цитата
кстати этот код (выше) я не видел нигде, он откуда?
Вот путь: ПКМ/PROGRAM/LandEncounters/LEnc_monsters.c В этом файле найти строчки: //Скорректировать параметры созданного монстра void LEnc_MonstersLoginCorrectParams(ref location, aref chr, string group, string locator)
Автор: Alexad_D Aug 7 2009, 13:43
Именно главного перса - обезьянкой??? Извини лень читать пред сообщения - что пробовал уже? А где ты ее вообще выкопал чейто я не могу ее найти
Автор: VladNiP Aug 7 2009, 13:47
Цитата
Именно главного перса - обезьянкой??? Извини лень читать пред сообщения - что пробовал уже?
Именно. Пытался вставить тот код - LAi_type_monkey_Init(chr); В characters_init.c. А именно под строчкой: makeref(ch,Characters[0]); //Blaze Devlin Также заменил пол на обезъяний. ну и модель моменял. В результате - черный экран.
Автор: Alexad_D Aug 7 2009, 13:57
Анимацию нашел а вот саму обезьянку нет.... Скорее всего анимация кривая из-за того что скелет ГГ не привязывается к анимации обезьянки так как его ломает а подсмотреть локаторы костей неоткуда .... во всяком случае я не нашел у себя модельку обезьянки Ща поэксперементируем в туле
Вернее нашел обезьянку ща поэксперементирую
Автор: VladNiP Aug 7 2009, 13:59
Модель-то я нашел. Она так и называется Monkey.gm. А вот файс я не нашел в конвертере. Анимация тоже вроде называется Monkey.ani А вот анимации головы, я так понял, нет. Боюсь, что какой-то код недописал в файле.
Автор: ALexusB Aug 7 2009, 14:12
Вот кусок кода из ВМЛльной панели тестов - проверял превращение, потом в пасхалку сделал. Превращает офицера в 3 слоте
Для ГГ нужно что-то подобное. Или даже проще - заемнить модель и анимацию и все, уже будлет управляться. начнет глючить, когда перейдет в режим боя или сядет в таверне.
то есть имеем для ГГ chr.model = "monkey";//"monkey"; chr.model.animation = "monkey";//"monkey"; SendMessage(chr, "lss", MSG_CHARACTER_SETMODEL, chr.model, chr.model.animation);
и все. Запускать строго в локации, иначе SendMessage вылет в ОС совершит
//"monkey"; - в коментах, тк я так тестил все модели и анимацию из китайской Воядж оф Сентурити (Пираты онлайн) Превращаюется в волка и тп -все ок, а вот анимация глючит. Додился как-то, что вол головой грутит и все. Ходить не мог, потому забил.
Зато можно краба из ГПК взять в ПКМ, он совместим должен быть.
Автор: navy Aug 7 2009, 14:13
А.. ну отталкивайся от этого кода в принципе, тебе не надо для гг именно вот этой строчки LAi_type_monkey_Init(chr)
Автор: Alexad_D Aug 7 2009, 14:21
Давай если у меня получится с мартышкой что ниб, то завтра напишу тебе что к чему .... Идет?
Автор: navy Aug 7 2009, 14:30
Цитата
LAi_type_offmonkey_Init(chr);
Этот метод тоже самописный склеен из двух: для мартышки и офицера.
Только если ты хочешь меня модельку на лету. Иначе можно просто так задать модель и анимацию.
Автор: VladNiP Aug 7 2009, 14:42
Немного настроил. Вот что получилось. http://radikal.ru/F/s55.radikal.ru/i149/0908/0b/c7f94183cfde.jpg.html Видимо анимацию зыбал настроить. убрал этот код по совету navy. Грузится стало. В общем, как настроить анимацию? Где написать код?
Немного настроил. Вот что получилось. http://radikal.ru/F/s55.radikal.ru/i149/0908/0b/c7f94183cfde.jpg.html Видимо анимацию зыбал настроить. убрал этот код по совету navy. Грузится стало. В общем, как настроить анимацию? Где написать код?
Ну вот что получилось у меня ну это если на вскидку...... Я не совсем понял что ты хочешь Я шел таким путем перебил анимацию мартышки в данькину стоит ходит бегает как данька но с мартышкиным телом
Или ты еще и тип поведения хочешь что бы было как у мартышки
Прикрепленные изображения
Автор: navy Aug 7 2009, 15:07
Тип поведения это другое, не путайте. Он хочет ГГ с телом мартышки. То что получилось у тебя, это странно, анимации не совпадают, косяки будут 100% Мартышке, только ее анимацию вешать надо.
Автор: Alexad_D Aug 8 2009, 15:55
Цитата(navy @ Aug 7 2009, 15:07)
Тип поведения это другое, не путайте. Он хочет ГГ с телом мартышки. То что получилось у тебя, это странно, анимации не совпадают, косяки будут 100% Мартышке, только ее анимацию вешать надо.
Да я уже понял что он тип поведения ГГ мартышкин поставить хочет. Но тогда он не сможет пользоваться оружием так как у мартышки нет локаторов и анимации под их навес и пользование. Ну в моем варианте косяки будут только в отображении сабель и пистолей,(их не будет видно) а в воспроизведении самой анимации косяков нет - Потому что сам скелет мартышки перебит под вуменский ну и тип поведения соответственно тоже. Вот она и стала прямо-ходящей По другому у меня пока ничего не получилось. Что удивительно под меновский скелет мартышка становится почему то криво с косяками Если надо могу послать мартышку с перебитым вуменовским скелетом
Автор: VladNiP Aug 8 2009, 15:59
Оружие и не нужно. Мартышка сможет брать оружие, но его не будет видно. А урон будет наносить такой же. Кстати, а куда вставлять эти 2 кода?
Если ты меня спрашиваешь.... то если делать так как я делал то, я уже писал, нужно перебивать скелет и в характер инит менять так: ch.id = "Blaze"; ch.nation = ENGLAND; ch.model = "Monkey1"; // перебитая модель ch.model.animation = "woman"; ch.activity_begin = "0"; ch.activity_end = "24"; ch.sex = "woman";
Если хочешь, вот, залил для тебя модель мартышки с уже перебитым скелетом под вуменовскую анимацию здесь - http://ifolder.ru/13464826 А так как говорит Navy т.е. - chr.model = "monkey";//"monkey"; chr.model.animation = "monkey";//"monkey"; - Толку ни какого будет такая же кривизна что у тебя уже была
А это плод моей учебы по созданию, редактированию и внедрению новых моделей в ПКМ - http://ifolder.ru/13464877 - Скелет под меновскую анимацию - вроде косяков нигде особо не заметно. Только без текстуры (еще не умею) но и так вроде нормально Ну и естественно он у меня - immortal - бессмертный
Цитата(navy @ Aug 7 2009, 15:07)
Тип поведения это другое, не путайте. Он хочет ГГ с телом мартышки. То что получилось у тебя, это странно, анимации не совпадают, косяки будут 100% Мартышке, только ее анимацию вешать надо.
Navy Вы не внимательно читаете, что я пишу.... Потому, начну с начала..... В том что у меня получилось, ничего странного нет...... Воспроизведение анимации это не что иное, как заданное дерганье определенных точек скелета, вшитого в некую оболочку. В данном случае - мартышку. Вы со мной согласны? Я решал вопрос не программно...... Т.к. простое (методом тыка) вставляние-переставляние моделек и анимации в его случае не подойдет - так как тогда надо еще будет ставить и тип поведения..... а это надо будет копать глубже и потом придется корректировать бут и квест реакшены (а может и не только)..... Я же пошел другим путем. Я взял тело мартышки, убрал ее скелет и в него(тело) вбил скелет, а следовательно и анимацию - вуменовскую... Вуаля! Поверте - явно бросающихся в глаза косяков - нет! Правда не ставил локаторы под оружие т.к. теоретически знаю как, а на практике пока путаюсь (опыта мало) т.е. оно (оружие) есть, просто оно не отображается
Автор: navy Aug 9 2009, 14:14
Пользуйтесь кнопкой "изменить".
Изменять модель это одно, мы говорим о программном изменении. И лезть в 3д для этого не надо. Все должно работать и так. Кроме как движений специфичных, типа сесть и прочее.
Автор: Alexad_D Aug 10 2009, 11:43
Цитата(navy @ Aug 9 2009, 14:14)
Пользуйтесь кнопкой "изменить".
Изменять модель это одно, мы говорим о программном изменении. И лезть в 3д для этого не надо. Все должно работать и так. Кроме как движений специфичных, типа сесть и прочее.
Ну за три сообщения подряд я уже получил.... Виноват увлекся..... А вообще то давайте проследим за нашими диалогами ( возьмем их самую суть) и разберемся все-таки, что же хотел VladNiP и что в результате получил ......
-- VladNiP -- У меня есть впорос, связанный с главным героем. Я пытаюсь сделать его обезьянкой.
Предлагаемые решения......
-- ALexusB -- ...........Для ГГ нужно что-то подобное. Или даже проще - заемнить модель и анимацию и все, уже будет управляться. начнет глючить, когда перейдет в режим боя или сядет в таверне. то есть имеем для ГГ chr.model = "monkey";//"monkey"; chr.model.animation = "monkey";//"monkey"; SendMessage(chr, "lss", MSG_CHARACTER_SETMODEL, chr.model, chr.model.animation);
-- navy -- А.. ну отталкивайся от этого кода в принципе, тебе не надо для гг именно вот этой строчки LAi_type_monkey_Init(chr) и ......можно просто так задать модель и анимацию.
И VladNiP начинает делать так, как ему посоветовали..... и сообщает о результате
-- VladNiP -- Немного настроил. Вот что получилось. "Картинка с косячной анимаией ГГ" Видимо анимацию зыбал настроить. убрал этот код по совету navy. Грузится стало. В общем, как настроить анимацию? Где написать код?
Уже на этом этапе было видно что просто одной заменой модели и анимации у ГГ будет недостаточно. Надо будет еще где то, что то искать и менять а это черевато(если допустить ошибку или недоделать) слетом либо упрвления ГГ, либо еще чего где. Но не смотря на это, следуют советы типа.....
-- navy -- анимацию поставь для него monkey chr.model = "monkey";//"monkey"; chr.model.animation = "monkey";//"monkey"; он походу у тебя с ГГ анимацией
Но ведь это уже ему советовали и он уже это делал! К чему советовать одно и тоже??? Navy - Конкретно Вы, сами то пробовали делать так, как советовали... Я например, прежде чем давать совет, пробую его сам.....
-- Alexad_D -- Ну вот что получилось у меня... Ну это если на вскидку...... Я не совсем понял что ты хочешь Я шел таким путем перебил анимацию мартышки в данькину стоит ходит бегает как данька но с мартышкиным телом. Или ты еще и тип поведения хочешь что бы было как у мартышки
-- navy -- Тип поведения это другое, не путайте. Он хочет ГГ с телом мартышки. То что получилось у тебя, это странно, анимации не совпадают, косяки будут 100% Мартышке, только ее анимацию вешать надо.
И получается что у меня это получилось т.е. - "...... стоит ходит бегает как данька но с мартышкиным телом"
-- Alexad_D -- .........Но тогда он не сможет пользоваться оружием так как у мартышки нет локаторов и анимации под их навес и пользование.
-- VladNiP -- Оружие и не нужно. Мартышка сможет брать оружие, но его не будет видно. А урон будет наносить такой же.
У меня вопрос к VladNiP - Тебя устроил мой вариант? Если да, то я больше не буду дальше заморачиваться с этим.... Если же ты хочешь что бы у ГГ были - тип поведения и анимация мартышки, то я, по возможности, покапаюсь дальше.... но это займет какое-то время, придется потерпеть....
В принципе я согласен что мой вариант решения не совсем по теме, может я и не прав, но просто я считаю, что отвечать на поставленный вопрос надо там где он был задан, а не отсылать человека куда подальше.
Не поймите меня привратно ..... но, в споре рождается истина
Автор: navy Aug 10 2009, 12:46
Ну тема то "Для программистов" А вообще, твоя мартышка не похожа на оную, поэтому тоже не вариант, ИМХО. Руки доберуться до кода, посмотрю как там что, не до этого сейчас немного.
Автор: VladNiP Aug 10 2009, 14:28
Цитата
Тебя устроил мой вариант?
Нет. Я бы хотел просто мартышку. Такое, кстати, когда-то и у меня получалось. Потом вернул все обратно. Кстати, попробовал я просто заменить анимацию у всех мужчин в игре. Получилось тоже не очень: У моего героя по-прежнему искажения, но теперь и у всего народа идут искажения. Опять-таки вернул все на место.
Автор: Lugger Aug 10 2009, 14:47
Код
LAi_type_monkey_Init(chr);
Тогда персонаж станет неуправляемым. А чтобы персонаж был управляемым, то он должен быть:
Код
LAi_SetPlayerType(chr);
Функция эта инспользуется только для ГГ.
Код
RemoveCharacterEquip(chr, BLADE_ITEM_TYPE);
Снять текущую экипировку - в данном случае саблю.
Надо интегрировать код анимации для мартышки в функцию, где эта анимация детально по действиям устанавливается для персонажа.
Функция LAi_SetDefaultStayAnimation(aref chr) находится в loc_ai\LAi_utils.c, а функции, которые в ней запускаются - в characters\characters.c
Вот туда то и надо вставлять куски кода по проверке имени модели. Так как мартышка несколько нестандартный тип персонажа, то разработчики в итоге сделали всё в одну кучу. То что надо, находится в loc_ai\types\LAi_monkey.c
В итоге сможем макакой и бегать как надо и бить по лицу и т.д.)) А вот стрелять ею не выйдет, к сожалению.
Если подождёте, оправдаю свои догадки и выложу что надо.
***
Ну да, точно.
VladNip, скачай архивчик и разархивируй в корневой каталог игры. Скачать: http://ifolder.ru/13484054
Не знаю, какая у тебя база - я эту хрень провернул на mod_v4.
При этом нужно указать. Если в character_init.c:
Код
ch.model = "monkey';
Ниже, в этом же файле, буквально в строке 339 найди:
Вот и всё, собственно. Но это если по быстрому. А вообще надо и экипировку убирать (вернее дать "руки"), ну и общие вопросы.
Автор: Alexad_D Aug 11 2009, 10:15
Аха..... Lugger ! Исходя из выше сказанного..... то можно попытаться ввернуть в игру любую модель если к ней есть готовая анимация? Если я правильно понял, то если я хочу ввернуть в игру модель.... (возьмем пример по проще) беатрис из К3 то надо интегрировать ее в характерс.с или надо что то еще....? Т.е. Переносим из К3 беатрис - гм, ан и ани в ПКМ. Сохраняем под беатрис, в ани переписываем ссылку с вумен на веатрис, в харакер_инит добовляем строку под данькой:
...... а в характерс.с тогда что.....? Заводить из характерс.с К3? И как? Надо же наверное еще ее заводить в LAi_types как отдельный тип? Или не только? Если можно с этого места растолмачить по подробней..... (Талмач - от старословянского - Переводчик, в данном контекте - растолмачить - разъяснить)
Автор: navy Aug 11 2009, 11:34
Цитата
При начале новой игры будет макака с правильной анимацией и с правильным поведением.
собсна с начала этого обсуждения так и советовали сделать
Автор: VladNiP Aug 11 2009, 11:34
Lugger Спасибо. Действительно получилось. Вот только вопрос, может стоило просто прописать функцию Characters[GetCharacterIndex("Blaze")].model.animation = "monkey"; Вот: http://radikal.ru/F/s49.radikal.ru/i124/0908/25/da8ec7dfadd5.jpg.htmlhttp://radikal.ru/F/i023.radikal.ru/0908/a4/6e6aa566b54c.jpg.html Также спасибо всем, кто участвовал в дискуссии.
Автор: navy Aug 11 2009, 11:57
Цитата
Вот только вопрос, может стоило просто прописать функцию
Почитай посты Алекса про оптимизацию. зы: ну вообще-то люгер ничего нового не сказал, а только то, что мы уже тебе писали с Алексом 10 раз
Автор: Alexad_D Aug 11 2009, 16:07
Правильно ли я все понял? Для того чтобы в ПКМ появился новый перс, но не ГГ, а типа Вуазье или Риса но с новой моделью и анимацией к ней в ПКМ Надо: в LAi_types.c вставить строки // Новый перс #include "Loc_ai\types\LAi_newchar.c" //--------- //newchar //--------- void LAi_SetNewcharType(aref chr) { chr.chr_ai.type = LAI_DEFAULT_TYPE; LAi_type_newchar_Init(chr); LAi_group_MoveCharacter(chr, LAI_GROUP_PLAYER); Дальше создаем LAi_newchar.c где прописываем так... Тип:Новый характер Шаблоны: stay dialog #define LAI_TYPE_newchar "newchar" //Инициализация void LAi_type_newchar_Init(aref chr) { //Тип DeleteAttribute(chr, "location.follower"); DeleteAttribute(chr, "chr_ai.type"); chr.chr_ai.type = LAI_TYPE_newchar; LAi_tmpl_SetFollow(chr, GetMainCharacter(), -1.0); //Анимация для перса LAi_SetDefaultStayAnimation(chr); SendMessage(&chr, "lsl", MSG_CHARACTER_EX_MSG, "SetFightWOWeapon", false); }
Создаем перса к примеру на Оксбее makeref(ch,Characters[n]); бла,бла, бла, ch.id = "newchar"; ch.model = "newchar"; ch.sex = "newchar"; ну и так далее
Ну а дальше что? Или это вообще не так делается? А то что то у меня нифига не получается анимация как была кривая так и осталась. Единствено что при встрече он сразу бежит ко мне и ждет начала диалога
******************
Буду пробовать, по совету ALexusB шерстить ани. может что и получится
Автор: ALexusB Aug 11 2009, 16:28
Alexad_D
Нет, все проще, в случае совместимой по анамиции модели нужно просто указать PChar.model = "вуман2"; PChar.model.animation = "вуман2"; и... не все... нужно прошерстить файл .ани и назвать всю анимацию так, как она названа в ПКМ, подобрать подходящую из ударов.
Автор: navy Aug 12 2009, 07:02
Новый тип поведения создавать не надо. Типы поведения отвечают только за действия персонажа в разных ситуациях. Достаточно сделать как сказал Алекс, если анимация совместима конечно. Вот образец настройки анимации для персонажа. Смотри где у тебя косяки, и перенастраивай. Или правь .ани файл под свой скелет и анимацию.
Новый тип поведения создавать не надо. Типы поведения отвечают только за действия персонажа в разных ситуациях. Достаточно сделать как сказал Алекс, если анимация совместима конечно.
Да я это понял.... если бы нужен был только ГГ то да..... Фишка вот в чем - ( беатрис из К3 я взял попрактиковаться). При наличаи некоторого практического опыта, в туле по идее, можно навесить на любую новую модель любую анимацию. И это я уже пробовал - т.е. выбирал из анимации беатрис то что нравилось и делал новый ани - именно так как ты писал (по совету Алексуса) есть правда некоторые неточности, но это устранимо и если набить руку то потом будет сразу нармально.. Но это ладно, да и не по теме. По теме вот что.... если использовать новую модель с новой аним. как ГГ т.е. так makeref(ch,Characters[0]); //Blaze Devlin //ch.perks.list.InstantBoarding = true; ch.name = "Нейм"; ch.lastname = "Ластнейм"; ch.id = "Beatrice"; ch.model = "BeatriceA"; ch.model.animation = "Beatrice"; ch.sex = "Beatrice"; ............................... Characters[GetCharacterIndex("beatrice")].model.animation = "beatrice"; // это обязательно
проблем нет - косяки с анимацией начнутсятся тогда, если пыться завести нового персонажа, ну что-то типа Риса Блюма например То есть я так понимаю надо заводить и новый тип поведения? Вот я и попробовал - по аналогии с мартышкой так- в характерс.с
Отредактировано. В характерс можно вообще не лезть (это точно.) Уже проверено!
в LAi_types.с // Беатрис #include "Loc_ai\types\LAi_beatrice.c"
Ну уже LAi_beatrice.c не буду писать - там сделано примерно как для офицеров Отредактировано.
Автор: navy Aug 12 2009, 11:56
Хз, я в это сильно не влазил. Но если у тебя косяки с анимацией, то где-то она не правильно задана. Перезадавай в LAi_beatrice.c как я приводил выше, и будет все норм.
Автор: Alexad_D Aug 15 2009, 01:32
В результате нескольких бессонных ночей интеграция модели в ПКМ получилась частично. Под нее заточены два перса - ГГ и его типа офицер. Вопрос...... если ГГ без косяков почему такая кривая анимация у офицера?????
Автор: delfin_ Aug 15 2009, 02:01
Цитата(Alexad_D @ Aug 15 2009, 01:32)
если ГГ без косяков почему такая кривая анимация у офицера?????
Не видя скриптов мало что можно сказать. Хотя можно сказать наверняка что, что то там не так прописано.
Автор: navy Aug 15 2009, 07:57
см. выше. т.е. или не правильно отрабатывается анимация атаки. т.е. она не соотвествует скелету. Перезадавай в скриптах или правь ани файл.
Автор: Alexad_D Aug 15 2009, 10:38
Ура!!!!!!!!! Есть нашел ошибку!!!!!!!!!!!!!!!!!!!! Удаляю этот пост.
Delfin_ и Navy - Спасибо что откликнулись.... Но все оказалось гораздо проще - в точке с запятой - которую не поставил ========================================= И вот результат -