• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.432
Благодарности
4.771
Баллы
625
  • Первое сообщение
  • #1
1767600363729.png

RU EN

 

Вложения

  • Union_Primary_Universal 12.02.2022.zip
    44 MB · Просмотры: 28.433
  • Union 1.0m 26.06.2022.zip
    11,8 MB · Просмотры: 977
  • Union 1.0m 26.06.2022 v2.zip
    11,8 MB · Просмотры: 627
  • Union 1.0m 26.06.2022 v3.zip
    11,8 MB · Просмотры: 30.733

N1kX

Участник форума
Регистрация
13 Ноя 2009
Сообщения
6.590
Благодарности
6.199
Баллы
940
Это надо дописать?
Пост автоматически объединён:

Просто в системпаке для сиквела я данной строки не наблюдаю
Для G1A нет NewFOVformula = 0
Меняй только VerticalFOV = 67.500
 

OsmithREV

Участник форума
Регистрация
17 Мар 2016
Сообщения
117
Благодарности
184
Баллы
230
Нужна помощь у тех, кто шарит за камеры. Собственно, нужно научить Готику создавать пролеты камеры без спейсера. Пробовал просто тестовую камеру с 3 точками через консоль сделать, вроде все нормально добавляется, но при проигрывании камера просто встает в исходную позицию и не двигается. Что поправить/добавить нужно?


 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.432
Благодарности
4.771
Баллы
625
В общем пока я жду, когда у переводчика появится время для публикации релиза на немецком ВОГе, закидываю небольшое обновление с парой новых патчей и дополнениями:
- Если с загрузкой какой-то dll возникает проблема, то в сообщении пишется конкретная системная ошибка, повлекшая сбой.
- Тоже самое касается vdfs. Если внутри файловой системы возникает авария, то файловая система вместо закорючек попытается написать примерную причину ошибки.
- Уже не помню писал или нет, но в дополнение к параметру [Plugins] IgnoreList добавляется еще UnIgnoreList, позволяющий отменить игнорирование каких-либо dll.
- В патч скрипте добавляется инструкция #disable, блокирующая исполнение каких-либо патчей.
Union:
// В любом патч-файле указывается инструкция #disable [имя патча], которая запрещает
// вызов указанного патча. Она имеет высокий приоритет выполнения,  поэтому запрет
// будет распространяться абсолютно на все патч файлы. Имеет смысл использовать
// при написании собственных патчей, в спидранах, плагинах и так далее.
#disable [Lootfix Unconscious]
#disable [CView_Blit_farZ_65534]
// ...

#engine
    #patch
        // TO DO ...
    #/patch
#/engine
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.882
Баллы
420
Есть возможность оценить сложность доработки движка в части реализации, скажем, новых классов оружия вроде копья. По аналогии с аддоном к Готике 1? Когда у тебя есть отдельный режим боя spear и отдельный блок анимаций в mds скрипте.

Если это реализуемо, я могу добавить в будущем в ремастер анимации и оверлеи из сиквела.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.432
Благодарности
4.771
Баллы
625
alex_draven, навскидку сложно, если писать реализацию по канону. В движке анимации, зависящие от боевого состояния, записаны в виде массивов, размеренность которых равна количеству боевых режимов s_run[ANI_NUM].
(См тут строка 113 и ниже)
Менять массивы нельзя, в движке к ним жёстко привязаны смещения, а вот снести весь класс - без проблем. А на его месте уже собрать новый с любыми размерами массивов. Это позволит движку самостоятельно выбирать новый блок анимации по боевому режиму нпс.

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

Вариант другой - не канон. Мы оставляем все боевые режимы как есть, но дробим на подтипы. Тогда копьё получается обычным двуручником, но с каким-нибудь флагом. Через этот флаг уже по месту дописываем в движок свою логику - какой блок анимации необходимо использовать, какие нюансы в обработке урона следует учитывать, в какой слот помещать оружие, как должны реагировать нпс. Это будет ой как проще, чем менять несколько десятков оригинальных методов и целый класс. При этом вероятность каких-то косяков сводится к минимуму, потому что по большому счету механика не меняется.
 
Последнее редактирование:

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.882
Баллы
420
Ani num = 10. Интересно, есть ли резервы в существующем массиве. И если есть, сколько их.
По факту имеем fist, mag, 1h, 2h, bow, cbow, sneak. 7 штук. Обычное перемещение, в т.ч. в воде, прописано, на сколько можно судить, отдельно.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.432
Благодарности
4.771
Баллы
625
alex_draven, none, fist, dag, 1h, 2h, bow, cbow, mag = 8. sneak это не боевой режим, а самостоятельный набор блоков. Итого два резервных слота остаётся.
 

Trazege

Участник форума
Регистрация
20 Фев 2008
Сообщения
1.760
Благодарности
1.394
Баллы
340

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.882
Баллы
420
Dag не используется по прямому назначению. Предметы этого типа работают как одноручное оружие. В свое время использовали как костыль для двойных мечей. Интересно было бы попробовать режим dag в мдс скрипте прописать. И посмотреть, что будет.
Итого резерв 9 и 10. В сиквеле наверно эти резервы для spear взяли.
Вот вам копье на отдельных слотах. Dag и второй резерв можно использовать для тех случаев, где тяжело оверлеями накостылять. Скажем, для щитовика.
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.432
Благодарности
4.771
Баллы
625
Интересно было бы попробовать режим dag в мдс скрипте прописать. И посмотреть, что будет.
Ничего. И он и одноручка возвращают приставку 1H в имени блока.


Итого резерв 9 и 10. В сиквеле наверно эти резервы для spear взяли.
Был когда-то блок с приставкой PSI, магия спящего (9й слот). Широкого применения она не получила. Phantom95 чё там говорят в альфе по этому поводу, обычные руны что-ли?
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.882
Баллы
420
void StrafeLeft()
void StrafeRight()
Вот тут скорее всего лежит лекарство для любителей перекатов. В ранних версиях игры цикл стрейфа не прерывался при отпускании клавиши. В релизе анимация прерывается. Для перекатов нужна старая схема. В идеале можно сделать в мдс скрипте свой ключ-указатель (или перенастроить R), какую схему использовать. И тогда перекат будет перекатом без возможности прерывания в момент, когда герой находится в положении жопой кверху.
 

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.228
Благодарности
1.927
Баллы
370
Был когда-то блок с приставкой PSI, магия спящего (9й слот). Широкого применения она не получила. Phantom95 чё там говорят в альфе по этому поводу, обычные руны что-ли?
Рун в пре-альфах вообще не существовало. В закрытом разделе уже давал более менее развернутую информацию по части реализации магической системы этих версий. Режим пси-магии был полностью отделен от классической и включал в себя уникальный набор анимаций.
Код:
// PSIONIC
            ani            ("t_Run_2_Psi"            1    "s_Psi"            0.1 0.0 M.    "Hum_Ready_Psi_A01.asc"        F    1     9)
            ani            ("s_Psi"                1    "s_Psi"            0.0 0.0 M.    "Hum_Ready_Psi_A01.asc"        F    10    10)
            ani            ("t_Psi_2_PsiRun"        1    "s_PsiRun"        0.0 0.1 M.    "Hum_Ready_Psi_A01.asc"        F    11    19)

            aniAlias    ("t_PsiRun_2_Psi"        1    "s_Psi"            0.1 0.0 M.    "t_Psi_2_PsiRun"            R)
            aniAlias    ("t_Psi_2_Run"            1    "s_Run"            0.0 0.1 M.    "t_Run_2_Psi"                R)

// TRANSITIONS Psionic
            aniBlend    ("t_Psi_2_Bow"            "s_Bow"                0.1    0.2)
            aniBlend    ("t_Psi_2_CBow"            "s_CBow"            0.1    0.2)
            aniBlend    ("t_Psi_2_Fist"            "s_Fist"            0.1    0.2)
            aniBlend    ("t_Psi_2_1h"            "s_1h"                0.1    0.2)
            aniBlend    ("t_Psi_2_2hS"            "s_2hS"                0.1    0.2)
            aniBlend    ("t_Psi_2_2hA"            "s_2hA"                0.1    0.2)


//////////////////////////
// PSI MOVEMENT
//////////////////////////

//    Psi-RUN
            aniAlias    ("s_PsiRun"                    1    "s_PsiRun"        0.1 0.1 M.    "s_MagRun"                F)
            aniAlias    ("t_PsiRun_2_PsiRunL"        1    "s_PsiRunL"        0.0    0.0    M.    "t_MagRun_2_MagRunL"    F)

//    Psi-Run-Loop
            aniAlias    ("s_PsiRunL"                1    "s_PsiRunL"        0.0    0.0    M.    "s_MagRunL"                F)

            aniAlias    ("t_PsiRunL_2_PsiRun"        1    "s_PsiRun"        0.0    0.1    M.    "t_MagRunL_2_MagRun"    F)
            aniBlend    ("t_PsiRunR_2_PsiRun"            "s_PsiRun"        0.3    0.3)

//    Psi-Run Backwards Movement
            aniAlias    ("t_PsiJumpB"                1    "s_PsiRun"        0.1 0.0 M.     "t_JumpB"                F)

//    Psi-WALK
            aniAlias    ("s_PsiWalk"                1    "s_PsiWalk"        0.1    0.1    M.    "s_MagRun"                F)
            ani            ("t_PsiWalk_2_PsiWalkL"        1    "s_PsiWalkL"    0.0    0.0    M.    "Hum_WalkLoop_M01.asc"    F    1    9)

//    Psi-Walk-Loop
            ani            ("s_PsiWalkL"                1    "s_PsiWalkL"    0.0    0.0    M.    "Hum_WalkLoop_M01.asc"    F    10    33)

            ani            ("t_PsiWalkL_2_PsiWalk"        1    "s_PsiWalk"        0.0    0.0    M.    "Hum_WalkLoop_M01.asc"    F    34    39)
            aniBlend    ("t_PsiWalkR_2_PsiWalk"            "s_PsiWalk"        0.2    0.2)

//    Psi-Walk Backwards Movement
            aniBlend    ("t_PsiWalk_2_PsiWalkBL"        "s_PsiWalkBL"    0.2    0.2)

//    Psi-Walk-Loop backwards
            aniAlias    ("s_PsiWalkBL"                1    "s_PsiWalkBL"    0.0    0.0    M.    "s_PsiWalkL"            R)

            aniBlend    ("t_PsiWalkBL_2_PsiWalk"        "s_PsiWalk"        0.2    0.2)
            aniBlend    ("t_PsiWalkBR_2_PsiWalk"        "s_PsiWalk"        0.2    0.2)


//    Psi-SNEAK
            aniAlias    ("s_PsiSneak"                1    "s_PsiSneak"    0.3    0.3    MI    "s_Sneak"                F)
            aniAlias    ("t_PsiSneak_2_PsiSneakL"    1    "s_PsiSneakL"    0.0    0.0    M.    "t_Sneak_2_SneakL"        F)

//    Psi-Sneak-Loop
            aniAlias    ("s_PsiSneakL"                1    "s_PsiSneakL"    0.0    0.0    M.    "s_SneakL"                F)

            aniBlend    ("t_PsiSneakL_2_PsiSneak"        "s_PsiSneak"    0.2    0.2)
            aniBlend    ("t_PsiSneakR_2_PsiSneak"        "s_PsiSneak"    0.2    0.2)

//    Psi-Sneak Backwards Movement
            aniBlend    ("t_PsiSneak_2_PsiSneakBL"        "s_PsiSneakBL"    0.2    0.2)

//    Psi-Sneak-Loop backwards
            aniAlias    ("s_PsiSneakBL"                1    "s_PsiSneakBL"    0.0    0.0    M.    "s_SneakL"                R)

            aniBlend    ("t_PsiSneakBL_2_PsiSneak"        "s_PsiSneak"    0.2    0.2)
            aniBlend    ("t_PsiSneakBR_2_PsiSneak"        "s_PsiSneak"    0.2    0.2)


//////////////////////////
// PSI TURNING
//////////////////////////

//            aniAlias    ("t_PsiRunTurnL"            20    "t_PsiRunTurnL"        0.2    0.2    M.    "t_MagRunTurnL"            F)
//            aniAlias    ("t_PsiRunTurnR"            20    "t_PsiRunTurnR"        0.2    0.2    M.    "t_MagRunTurnL"            R)

//            aniAlias    ("t_PsiWalkTurnL"            20    "t_PsiWalkTurnL"    0.2    0.2    M.    "t_MagRunTurnL"            F)
//            aniAlias    ("t_PsiWalkTurnR"            20    "t_PsiWalkTurnR"    0.2    0.2    M.    "t_MagRunTurnL"            R)

//            aniAlias    ("t_PsiSneakTurnL"            20    "t_PsiSneakTurnL"    0.2    0.2    M.    "t_MagRunTurnL"            F)
//            aniAlias    ("t_PsiSneakTurnR"            20    "t_PsiSneakTurnR"    0.2    0.2    M.    "t_MagRunTurnL"            R)


//////////////////////////
// PSI STRAFING
//////////////////////////

            aniAlias    ("t_PsiRunStrafeL"            1    "s_JumpStand"    0.1    0.1    M.    "t_RunStrafeL"        F)
            aniAlias    ("t_PsiRunStrafeR"            1    "s_JumpStand"    0.1    0.1    M.    "t_RunStrafeL"        R)

            aniAlias    ("t_PsiWalkStrafeL"            1    "s_JumpStand"    0.1    0.1    M.    "t_WalkStrafeL"        F)
            aniAlias    ("t_PsiWalkStrafeR"            1    "s_JumpStand"    0.1    0.1    M.    "t_WalkStrafeL"        R)

            aniAlias    ("t_PsiSneakStrafeL"        1    "s_JumpStand"    0.1    0.1    M.    "t_SneakStrafeL"    F)
            aniAlias    ("t_PsiSneakStrafeR"        1    "s_JumpStand"    0.1    0.1    M.    "t_SneakStrafeL"    R)


//////////////////////////
// PSI TRANSITIONS
//////////////////////////
//    Movement-Modes
            aniBlend    ("t_PsiRun_2_PsiWalk"            "s_PsiWalk"        0.1    0.1)
            aniBlend    ("t_PsiWalk_2_PsiRun"            "s_PsiRun"        0.1    0.1)

            aniBlend    ("t_PsiRun_2_PsiSneak"            "s_PsiSneak"    0.2    0.2)
            aniBlend    ("t_PsiSneak_2_PsiRun"            "s_PsiRun"        0.2    0.2)

            aniBlend    ("t_PsiRunL_2_PsiWalkL"            "s_PsiWalkL"    0.2    0.2)
            aniBlend    ("t_PsiWalkL_2_PsiRunL"            "s_PsiRunL"        0.2    0.2)

            aniBlend    ("t_PsiSneakL_2_PsiRunL"        "s_PsiRunL"        0.2    0.2)
            aniBlend    ("t_PsiRunL_2_PsiSneakL"        "s_PsiSneakL"    0.2    0.2)


//    JumpStand
//    aus dem Rennen direkt Springen
            aniAlias    ("t_PsiRunL_2_Jump"            1    "s_Jump"        0.1    0.1    MF    "t_RunL_2_Jump"        F)
            aniAlias    ("t_PsiRunR_2_Jump"            1    "s_Jump"        0.1    0.1    MF    "t_RunL_2_Jump"        F)
//    nach dem Sprung direkt weiterrennen, wenn CursorUp weiterhin gedrückt
            aniBlend    ("t_Jump_2_PsiRunL"            "s_PsiRunL"        0.2    0.1)


//////////////////////////
// PSI FIGHTING
//////////////////////////

// Überwindungs-Zauber (z.B. Kontrolle; Co)
//            ani            ("t_PsiWalk_2_CoCast"        1    "s_CoCast"        0.1 0.0 M.    "Hum_PsiCoCast_A01.asc"        F    28    36)
//            ani            ("s_CoCast"                    1    "s_CoCast"        0.0 0.0 M.    "Hum_PsiCoCast_A01.asc"        F    37    37)
//            ani            ("t_CoCast_2_PsiWalk"        1    "s_PsiWalk"        0.0 0.1 M.    "Hum_PsiCoCast_A01.asc"        F    38    49)

    // Kontrolle geglückt, eigener Körper in "Ruhestellung"
//            ani            ("t_CoCast_2_CoSucc"        1    "s_CoSucc"        0.0 0.0 M.    "Hum_PsiCoCast_A01.asc"        F    52    64)
//            ani            ("s_CoSucc"                    1    "s_CoSucc"        0.0 0.1 M.    "Hum_PsiCoCast_A01.asc"        F    65    65)
//            aniBlend    ("t_CoSucc_2_Run"                "s_Run"            0.2    0.2)

    // Körperhaltung des Opfers während Kontrollversuch
//            ani            ("s_CoVictim"                1    "s_CoVictim"    0.1 0.1 M.    "Hum_PsiCoVictim_A01.asc"    F    1    10)


// Sofort-Zauber (noch keiner vorhanden)
// Vergessen
            ani            ("t_PsiWalk_2_Forget"        1    "s_Forget"        0.0    0.0    M.    "Hum_PsiForget_M01.asc"        F    1    14)
            ani            ("s_Forget"                    1    "s_Forget"        0.0    0.0    M.    "Hum_PsiForget_M01.asc"        F    15    15)
            ani            ("t_Forget_2_PsiWalk"        1    "s_PsiWalk"        0.0    0.0    M.    "Hum_PsiForget_M01.asc"        F    16    29)

// Aufrechterhaltungs-Zauber (noch keiner vorhanden)

// Auflade-Zauber (z.B. Windfaust; WI)
//            ani            ("t_PsiAim_2_WICast"        1    "s_WICast"        0.1 0.1 M.    "1hHitF.asc"                F    31    -1)
//            ani            ("s_WICast"                    1    "s_WICast"        0.1 0.1 M.    "1hHitF.asc"                F    31    -1)
//            ani            ("t_WICast_2_FBShoot"        1    "s_WIShoot"        0.1 0.1 M.    "1hHitF.asc"                F    31    -1)
//            ani            ("s_WIShoot"                1    "s_WIShoot"        0.1 0.1 M.    "1hHitF.asc"                F    31    -1)
//            ani            ("t_WIShoot_2_PsiAim"        1    "s_PsiAim"        0.1 0.1 M.    "1hHitF.asc"                F    31    -1)
Что касается кинжалов, то даже в ранних пре-альфах блок с анимациями боя для них (Как и у одноручных топоров) был полностью пуст.
Код:
///////////////////////
// DAGGER FIGHTING
///////////////////////
// Noch nicht designt

///////////////////////
// 1H AXE FIGHTING
///////////////////////
// noch nicht implementiert
Все остальные анимации для оружия такого типа использовались от одноручников.
Возможно анимации боя для кинжалов были прописаны позже, после того как происходила съёмка Motion Capture в августе 1999 года, но это не факт и вряд ли когда-либо удастся выяснить.

Из представленных в пре-альфах анимациях, можно ещё выделить блоки для прототипа боёвки на двуручных топорах:
Код:
//////////////////////////
// 2H-AXE MOVEMENT
//////////////////////////

//    2hA-RUN
            ani            ("s_2hARun"                    1    "s_2hARun"        0.1 0.1 M.    "Hum_2hAmbient_M01.asc"    F   0    98)
            ani            ("t_2hARun_2_2hARunL"        1    "s_2hARunL"        0.0    0.0    M.    "Hum_2hRun_M01.asc"        F    1    13)

//    2hA-Run-Loop
            ani            ("s_2hARunL"                1    "s_2hARunL"        0.0    0.0    M.    "Hum_2hRun_M01.asc"        F    14    37)
            {
                *eventSFXGrnd    (14    "Run")
                *eventSFXGrnd    (25    "Run")
            }

            ani            ("t_2hARunL_2_2hARun"        1    "s_2hARun"        0.0    0.0    M.    "Hum_2hRun_M01.asc"        F    38    45)
            aniBlend    ("t_2hARunR_2_2hARun"            "s_2hARun"        0.2    0.2)

//    2hA-Run Backwards Movement
            aniAlias    ("t_2hAJumpB"                 1     "s_2hARun"         0.0 0.0 M.     "t_JumpB"                F)

//    2hA-WALK-Mode, Standing
            ani            ("s_2hAWalk"                1    "s_2hAWalk"        0.1    0.1    M.    "Hum_2hWalk_M01.asc"    F    0    0)

            ani            ("t_2hAWalk_2_2hAWalkL"        1    "s_2hAWalkL"    0.1    0.0    M.    "Hum_2hWalk_M01.asc"    F    1    9)

//    2hA-Walk-Loop
            ani            ("s_2hAWalkL"                1    "s_2hAWalkL"    0.0    0.0    M.    "Hum_2hWalk_M01.asc"    F    10    33)
            {
                *eventSFXGrnd    (10    "Run")
                *eventSFXGrnd    (22    "Run")
            }

            ani            ("t_2hAWalkL_2_2hAWalk"        1    "s_2hAWalk"        0.0    0.2    M.    "Hum_2hWalk_M01.asc"    F    34    38)
            aniBlend    ("t_2hAWalkR_2_2hAWalk"            "s_2hAWalk"        0.2    0.3)

//    2hA-Walk Backwards Movement
            aniAlias    ("t_2hAWalk_2_2hAWalkBL"    1    "s_2hAWalkBL"    0.0    0.0    M.    "t_2hAWalkL_2_2hAWalk"    R)

            aniAlias    ("s_2hAWalkBL"                1    "s_2hAWalkBL"    0.0    0.0    M.    "s_2hAWalkL"            R)

            aniAlias    ("t_2hAWalkBL_2_2hAWalk"    1    "s_2hAWalk"        0.0    0.0    M.    "t_2hAWalk_2_2hAWalkL"    R)
            aniBlend    ("t_2hAWalkBR_2_2hAWalk"        "s_2hAWalk"        0.2    0.2)


//    2hA-SNEAK-Mode, Standing
            aniAlias    ("s_2hASneak"                1    "s_2hASneak"    0.3    0.3    MI    "s_Sneak"                F)
            aniAlias    ("t_2hASneak_2_2hASneakL"    1    "s_2hASneakL"    0.0    0.0    M.    "t_Sneak_2_SneakL"        F)

//    2hA-Sneak-Loop
            aniAlias    ("s_2hASneakL"                1    "s_2hASneakL"    0.0    0.0    M.    "s_SneakL"                F)

            aniBlend    ("t_2hASneakL_2_2hASneak"        "s_2hASneak"    0.2    0.2)
            aniBlend    ("t_2hASneakR_2_2hASneak"        "s_2hASneak"    0.2    0.2)

//    2hA-Sneak Backwards Movement
            aniBlend    ("t_2hASneak_2_2hASneakBL"            "s_2hASneakBL"    0.2    0.2)

            aniAlias    ("s_2hASneakBL"                    1    "s_2hASneakBL"    0.0    0.0    M.    "s_SneakL"            R)

            aniBlend    ("t_2hASneakBL_2_2hASneak"            "s_2hASneak"    0.2    0.2)
            aniBlend    ("t_2hASneakBR_2_2hASneak"            "s_2hASneak"    0.2    0.2)


//////////////////////////
// 2H-AXE TURNING
//////////////////////////

            ani            ("t_2hARunTurnL"            20    "t_2hARunTurnL"        0.0    0.0    M.    "Hum_2hTurn_M01.asc"    F    1    22)
            {
                *eventSFXGrnd    (5    "Run")
                *eventSFXGrnd    (12    "Run")
            }
            aniAlias    ("t_2hARunTurnR"            20    "t_2hARunTurnR"        0.0    0.0    M.    "t_2hARunTurnL"            R)

            aniAlias    ("t_2hAWalkTurnL"            20    "t_2hAWalkTurnL"    0.0    0.0    M.    "t_2hARunTurnL"            F)
            aniAlias    ("t_2hAWalkTurnR"            20    "t_2hAWalkTurnR"    0.0    0.0    M.    "t_2hARunTurnL"            R)

            aniAlias    ("t_2hASneakTurnL"            20    "t_2hASneakTurnL"    0.2    0.2    M.    "t_2hARunTurnL"            F)
            aniAlias    ("t_2hASneakTurnR"            20    "t_2hASneakTurnR"    0.2    0.2    M.    "t_2hARunTurnL"            R)


//////////////////////////
// 2H-AXE STRAFING
//////////////////////////

            ani            ("t_2hARunStrafeL"            1    "s_JumpStand"        0.1    0.1    M.    "Hum_2hStrafe_M01.asc"    F    1    24)
            aniAlias    ("t_2hARunStrafeR"            1    "s_JumpStand"        0.1    0.1    M.    "t_2hARunStrafeL"        R)

            aniAlias    ("t_2hAWalkStrafeL"            1    "s_JumpStand"        0.1    0.1    M.    "t_2hARunStrafeL"        F)
            aniAlias    ("t_2hAWalkStrafeR"            1    "s_JumpStand"        0.1    0.1    M.    "t_2hARunStrafeL"        R)

            aniAlias    ("t_2hASneakStrafeL"        1    "s_JumpStand"        0.1    0.1    M.    "t_SneakStrafeL"        F)
            aniAlias    ("t_2hASneakStrafeR"        1    "s_JumpStand"        0.1    0.1    M.    "t_SneakStrafeL"        R)


//////////////////////////
// 2H-AXE TRANSITIONS
//////////////////////////
//    Movement-Modes
            aniBlend     ("t_2hARun_2_2hAWalk"                "s_2hAWalk"        0.2    0.2)
            aniBlend    ("t_2hAWalk_2_2hARun"                "s_2hARun"        0.2    0.2)

            aniBlend    ("t_2hARun_2_2hASneak"                "s_2hASneak"    0.2    0.2)
            aniBlend    ("t_2hASneak_2_2hARun"                "s_2hARun"        0.2    0.2)

            aniBlend    ("t_2hARunL_2_2hAWalkL"                "s_2hAWalkL"    0.2    0.2)
            aniBlend    ("t_2hAWalkL_2_2hARunL"                "s_2hARunL"        0.2    0.2)

            aniBlend    ("t_2hASneakL_2_2hARunL"            "s_2hARunL"        0.2    0.2)
            aniBlend    ("t_2hARunL_2_2hASneakL"            "s_2hASneakL"    0.2    0.2)

//    JumpStand
//    aus dem Rennen direkt Springen
            aniAlias    ("t_2hARunL_2_Jump"                1    "s_Jump"        0.1    0.1    MF    "t_RunL_2_Jump"            F)
            aniAlias    ("t_2hARunR_2_Jump"                1    "s_Jump"        0.1    0.1    MF    "t_RunL_2_Jump"            F)
//    nach dem Sprung direkt weiterrennen, wenn CursorUp weiterhin gedrückt
            aniBlend    ("t_Jump_2_2hARunL"                    "s_2hARunL"        0.2    0.1)


//////////////////////////
// 2H-AXE FIGHTING
//////////////////////////
// Kampf ohne Talent

//    Ausholen
            aniBlend    ("t_2hAWalk_2_2hAAim"            "s_2hAAim"        0.2    0.2)
            aniAlias    ("s_2hAAim"                    1    "s_2hAAim"        0.0    0.0    M.    "s_2hSAim"                F)
            aniBlend    ("t_2hAAim_2_2hAWalk"            "s_2hAWalk"        0.2    0.2)

//    Ausholen während Kampfsteps
            aniBlend    ("t_2hAWalkL_2_2hAAim"            "s_2hAAim"        0.2    0.0)
            aniBlend    ("t_2hAWalkR_2_2hAAim"            "s_2hAAim"        0.2    0.0)


// Attacks
            ani            ("t_2hAAt1Step"                1    "s_2hAWalk"        0.0 0.1 M.    "Hum_2hAttackS1_M01.asc"    F    1    23)
            {
                *eventTag    (0    "DEF_OPT_FRAME"        "12")
                *eventSFX    (8    "2hAttackT")
            }
            ani            ("t_2hAAt1"                    1    "s_2hAWalk"        0.0 0.1 M.    "Hum_2hAttack1_M01.asc"    F    1    23)
            {
                *eventTag    (0    "DEF_OPT_FRAME"        "12")
                *eventSFX    (8    "2hAttackT")
            }

//            aniAlias    ("t_2hAAttackL"                1    "s_2hAWalk"        0.1 0.1 MR    "t_1hSAttackL"    F)
//            aniAlias    ("t_2hAAttackR"                1    "s_2hAWalk"        0.1 0.1 MR    "t_1hSAttackR"    F)

//    Paraden
            ani            ("t_2hAAim_2_2hADefend"        1    "s_2hADefend"    0.0 0.0 M.    "Hum_1hSParade_M01.asc"    F    1    5)
            ani            ("s_2hADefend"                1    "s_2hADefend"    0.0 0.0 M.    "Hum_1hSParade_M01.asc"    F    6    6)
            ani            ("t_2hADefend_2_2hAAim"        1    "s_2hAWalk"        0.0 0.0 M.    "Hum_1hSParade_M01.asc"    F    14    18)
                                                                                                                        
            ani            ("t_2hAParadeL"                1    "s_2hAWalk"        0.0 0.0 M.    "Hum_1hSParade_M01.asc"    F    7    11)                 
            aniAlias    ("t_2hAParadeM"                1    "s_2hAWalk"        0.0 0.0 M.    "t_2hAParadeL"            F)
            aniAlias    ("t_2hAParadeS"                1    "s_2hAWalk"        0.0 0.0 M.    "t_2hAParadeL"            F)
 

Trazege

Участник форума
Регистрация
20 Фев 2008
Сообщения
1.760
Благодарности
1.394
Баллы
340
void StrafeLeft()
void StrafeRight()
Вот тут скорее всего лежит лекарство для любителей перекатов. В ранних версиях игры цикл стрейфа не прерывался при отпускании клавиши. В релизе анимация прерывается. Для перекатов нужна старая схема. В идеале можно сделать в мдс скрипте свой ключ-указатель (или перенастроить R), какую схему использовать. И тогда перекат будет перекатом без возможности прерывания в момент, когда герой находится в полжении жопой кверху.

Не знаю как у других, у себя с помощью Юни я давно сделал вменяемый перекат без всякой зациклености, отдающий правильное состояние и прочее. Но нет нормальной анимации, хотя бы в 1 экземпляре, чтобы гг не катался как колобок по полу, а как бы в прыжке в бок переваливался со спины на ноги

Рун в пре-альфах вообще не существовало. В закрытом разделе уже давал более менее развернутую информацию по части реализации магической системы этих версий. Режим пси-магии был полностью отделен от классической и включал в себя уникальный набор анимаций.
Код:
// PSIONIC
            ani            ("t_Run_2_Psi"            1    "s_Psi"            0.1 0.0 M.    "Hum_Ready_Psi_A01.asc"        F    1     9)
            ani            ("s_Psi"                1    "s_Psi"            0.0 0.0 M.    "Hum_Ready_Psi_A01.asc"        F    10    10)
            ani            ("t_Psi_2_PsiRun"        1    "s_PsiRun"        0.0 0.1 M.    "Hum_Ready_Psi_A01.asc"        F    11    19)

            aniAlias    ("t_PsiRun_2_Psi"        1    "s_Psi"            0.1 0.0 M.    "t_Psi_2_PsiRun"            R)
            aniAlias    ("t_Psi_2_Run"            1    "s_Run"            0.0 0.1 M.    "t_Run_2_Psi"                R)

// TRANSITIONS Psionic
            aniBlend    ("t_Psi_2_Bow"            "s_Bow"                0.1    0.2)
            aniBlend    ("t_Psi_2_CBow"            "s_CBow"            0.1    0.2)
            aniBlend    ("t_Psi_2_Fist"            "s_Fist"            0.1    0.2)
            aniBlend    ("t_Psi_2_1h"            "s_1h"                0.1    0.2)
            aniBlend    ("t_Psi_2_2hS"            "s_2hS"                0.1    0.2)
            aniBlend    ("t_Psi_2_2hA"            "s_2hA"                0.1    0.2)


//////////////////////////
// PSI MOVEMENT
//////////////////////////

//    Psi-RUN
            aniAlias    ("s_PsiRun"                    1    "s_PsiRun"        0.1 0.1 M.    "s_MagRun"                F)
            aniAlias    ("t_PsiRun_2_PsiRunL"        1    "s_PsiRunL"        0.0    0.0    M.    "t_MagRun_2_MagRunL"    F)

//    Psi-Run-Loop
            aniAlias    ("s_PsiRunL"                1    "s_PsiRunL"        0.0    0.0    M.    "s_MagRunL"                F)

            aniAlias    ("t_PsiRunL_2_PsiRun"        1    "s_PsiRun"        0.0    0.1    M.    "t_MagRunL_2_MagRun"    F)
            aniBlend    ("t_PsiRunR_2_PsiRun"            "s_PsiRun"        0.3    0.3)

//    Psi-Run Backwards Movement
            aniAlias    ("t_PsiJumpB"                1    "s_PsiRun"        0.1 0.0 M.     "t_JumpB"                F)

//    Psi-WALK
            aniAlias    ("s_PsiWalk"                1    "s_PsiWalk"        0.1    0.1    M.    "s_MagRun"                F)
            ani            ("t_PsiWalk_2_PsiWalkL"        1    "s_PsiWalkL"    0.0    0.0    M.    "Hum_WalkLoop_M01.asc"    F    1    9)

//    Psi-Walk-Loop
            ani            ("s_PsiWalkL"                1    "s_PsiWalkL"    0.0    0.0    M.    "Hum_WalkLoop_M01.asc"    F    10    33)

            ani            ("t_PsiWalkL_2_PsiWalk"        1    "s_PsiWalk"        0.0    0.0    M.    "Hum_WalkLoop_M01.asc"    F    34    39)
            aniBlend    ("t_PsiWalkR_2_PsiWalk"            "s_PsiWalk"        0.2    0.2)

//    Psi-Walk Backwards Movement
            aniBlend    ("t_PsiWalk_2_PsiWalkBL"        "s_PsiWalkBL"    0.2    0.2)

//    Psi-Walk-Loop backwards
            aniAlias    ("s_PsiWalkBL"                1    "s_PsiWalkBL"    0.0    0.0    M.    "s_PsiWalkL"            R)

            aniBlend    ("t_PsiWalkBL_2_PsiWalk"        "s_PsiWalk"        0.2    0.2)
            aniBlend    ("t_PsiWalkBR_2_PsiWalk"        "s_PsiWalk"        0.2    0.2)


//    Psi-SNEAK
            aniAlias    ("s_PsiSneak"                1    "s_PsiSneak"    0.3    0.3    MI    "s_Sneak"                F)
            aniAlias    ("t_PsiSneak_2_PsiSneakL"    1    "s_PsiSneakL"    0.0    0.0    M.    "t_Sneak_2_SneakL"        F)

//    Psi-Sneak-Loop
            aniAlias    ("s_PsiSneakL"                1    "s_PsiSneakL"    0.0    0.0    M.    "s_SneakL"                F)

            aniBlend    ("t_PsiSneakL_2_PsiSneak"        "s_PsiSneak"    0.2    0.2)
            aniBlend    ("t_PsiSneakR_2_PsiSneak"        "s_PsiSneak"    0.2    0.2)

//    Psi-Sneak Backwards Movement
            aniBlend    ("t_PsiSneak_2_PsiSneakBL"        "s_PsiSneakBL"    0.2    0.2)

//    Psi-Sneak-Loop backwards
            aniAlias    ("s_PsiSneakBL"                1    "s_PsiSneakBL"    0.0    0.0    M.    "s_SneakL"                R)

            aniBlend    ("t_PsiSneakBL_2_PsiSneak"        "s_PsiSneak"    0.2    0.2)
            aniBlend    ("t_PsiSneakBR_2_PsiSneak"        "s_PsiSneak"    0.2    0.2)


//////////////////////////
// PSI TURNING
//////////////////////////

//            aniAlias    ("t_PsiRunTurnL"            20    "t_PsiRunTurnL"        0.2    0.2    M.    "t_MagRunTurnL"            F)
//            aniAlias    ("t_PsiRunTurnR"            20    "t_PsiRunTurnR"        0.2    0.2    M.    "t_MagRunTurnL"            R)

//            aniAlias    ("t_PsiWalkTurnL"            20    "t_PsiWalkTurnL"    0.2    0.2    M.    "t_MagRunTurnL"            F)
//            aniAlias    ("t_PsiWalkTurnR"            20    "t_PsiWalkTurnR"    0.2    0.2    M.    "t_MagRunTurnL"            R)

//            aniAlias    ("t_PsiSneakTurnL"            20    "t_PsiSneakTurnL"    0.2    0.2    M.    "t_MagRunTurnL"            F)
//            aniAlias    ("t_PsiSneakTurnR"            20    "t_PsiSneakTurnR"    0.2    0.2    M.    "t_MagRunTurnL"            R)


//////////////////////////
// PSI STRAFING
//////////////////////////

            aniAlias    ("t_PsiRunStrafeL"            1    "s_JumpStand"    0.1    0.1    M.    "t_RunStrafeL"        F)
            aniAlias    ("t_PsiRunStrafeR"            1    "s_JumpStand"    0.1    0.1    M.    "t_RunStrafeL"        R)

            aniAlias    ("t_PsiWalkStrafeL"            1    "s_JumpStand"    0.1    0.1    M.    "t_WalkStrafeL"        F)
            aniAlias    ("t_PsiWalkStrafeR"            1    "s_JumpStand"    0.1    0.1    M.    "t_WalkStrafeL"        R)

            aniAlias    ("t_PsiSneakStrafeL"        1    "s_JumpStand"    0.1    0.1    M.    "t_SneakStrafeL"    F)
            aniAlias    ("t_PsiSneakStrafeR"        1    "s_JumpStand"    0.1    0.1    M.    "t_SneakStrafeL"    R)


//////////////////////////
// PSI TRANSITIONS
//////////////////////////
//    Movement-Modes
            aniBlend    ("t_PsiRun_2_PsiWalk"            "s_PsiWalk"        0.1    0.1)
            aniBlend    ("t_PsiWalk_2_PsiRun"            "s_PsiRun"        0.1    0.1)

            aniBlend    ("t_PsiRun_2_PsiSneak"            "s_PsiSneak"    0.2    0.2)
            aniBlend    ("t_PsiSneak_2_PsiRun"            "s_PsiRun"        0.2    0.2)

            aniBlend    ("t_PsiRunL_2_PsiWalkL"            "s_PsiWalkL"    0.2    0.2)
            aniBlend    ("t_PsiWalkL_2_PsiRunL"            "s_PsiRunL"        0.2    0.2)

            aniBlend    ("t_PsiSneakL_2_PsiRunL"        "s_PsiRunL"        0.2    0.2)
            aniBlend    ("t_PsiRunL_2_PsiSneakL"        "s_PsiSneakL"    0.2    0.2)


//    JumpStand
//    aus dem Rennen direkt Springen
            aniAlias    ("t_PsiRunL_2_Jump"            1    "s_Jump"        0.1    0.1    MF    "t_RunL_2_Jump"        F)
            aniAlias    ("t_PsiRunR_2_Jump"            1    "s_Jump"        0.1    0.1    MF    "t_RunL_2_Jump"        F)
//    nach dem Sprung direkt weiterrennen, wenn CursorUp weiterhin gedrückt
            aniBlend    ("t_Jump_2_PsiRunL"            "s_PsiRunL"        0.2    0.1)


//////////////////////////
// PSI FIGHTING
//////////////////////////

// Überwindungs-Zauber (z.B. Kontrolle; Co)
//            ani            ("t_PsiWalk_2_CoCast"        1    "s_CoCast"        0.1 0.0 M.    "Hum_PsiCoCast_A01.asc"        F    28    36)
//            ani            ("s_CoCast"                    1    "s_CoCast"        0.0 0.0 M.    "Hum_PsiCoCast_A01.asc"        F    37    37)
//            ani            ("t_CoCast_2_PsiWalk"        1    "s_PsiWalk"        0.0 0.1 M.    "Hum_PsiCoCast_A01.asc"        F    38    49)

    // Kontrolle geglückt, eigener Körper in "Ruhestellung"
//            ani            ("t_CoCast_2_CoSucc"        1    "s_CoSucc"        0.0 0.0 M.    "Hum_PsiCoCast_A01.asc"        F    52    64)
//            ani            ("s_CoSucc"                    1    "s_CoSucc"        0.0 0.1 M.    "Hum_PsiCoCast_A01.asc"        F    65    65)
//            aniBlend    ("t_CoSucc_2_Run"                "s_Run"            0.2    0.2)

    // Körperhaltung des Opfers während Kontrollversuch
//            ani            ("s_CoVictim"                1    "s_CoVictim"    0.1 0.1 M.    "Hum_PsiCoVictim_A01.asc"    F    1    10)


// Sofort-Zauber (noch keiner vorhanden)
// Vergessen
            ani            ("t_PsiWalk_2_Forget"        1    "s_Forget"        0.0    0.0    M.    "Hum_PsiForget_M01.asc"        F    1    14)
            ani            ("s_Forget"                    1    "s_Forget"        0.0    0.0    M.    "Hum_PsiForget_M01.asc"        F    15    15)
            ani            ("t_Forget_2_PsiWalk"        1    "s_PsiWalk"        0.0    0.0    M.    "Hum_PsiForget_M01.asc"        F    16    29)

// Aufrechterhaltungs-Zauber (noch keiner vorhanden)

// Auflade-Zauber (z.B. Windfaust; WI)
//            ani            ("t_PsiAim_2_WICast"        1    "s_WICast"        0.1 0.1 M.    "1hHitF.asc"                F    31    -1)
//            ani            ("s_WICast"                    1    "s_WICast"        0.1 0.1 M.    "1hHitF.asc"                F    31    -1)
//            ani            ("t_WICast_2_FBShoot"        1    "s_WIShoot"        0.1 0.1 M.    "1hHitF.asc"                F    31    -1)
//            ani            ("s_WIShoot"                1    "s_WIShoot"        0.1 0.1 M.    "1hHitF.asc"                F    31    -1)
//            ani            ("t_WIShoot_2_PsiAim"        1    "s_PsiAim"        0.1 0.1 M.    "1hHitF.asc"                F    31    -1)
Что касается кинжалов, то даже в ранних пре-альфах блок с анимациями боя для них (Как и у одноручных топоров) был полностью пуст.
Код:
///////////////////////
// DAGGER FIGHTING
///////////////////////
// Noch nicht designt

///////////////////////
// 1H AXE FIGHTING
///////////////////////
// noch nicht implementiert
Все остальные анимации для оружия такого типа использовались от одноручников.
Возможно анимации боя для кинжалов были прописаны позже, после того как происходила съёмка Motion Capture в августе 1999 года, но это не факт и вряд ли когда-либо удастся выяснить.

Из представленных в пре-альфах анимациях, можно ещё выделить блоки для прототипа боёвки на двуручных топорах:
Код:
//////////////////////////
// 2H-AXE MOVEMENT
//////////////////////////

//    2hA-RUN
            ani            ("s_2hARun"                    1    "s_2hARun"        0.1 0.1 M.    "Hum_2hAmbient_M01.asc"    F   0    98)
            ani            ("t_2hARun_2_2hARunL"        1    "s_2hARunL"        0.0    0.0    M.    "Hum_2hRun_M01.asc"        F    1    13)

//    2hA-Run-Loop
            ani            ("s_2hARunL"                1    "s_2hARunL"        0.0    0.0    M.    "Hum_2hRun_M01.asc"        F    14    37)
            {
                *eventSFXGrnd    (14    "Run")
                *eventSFXGrnd    (25    "Run")
            }

            ani            ("t_2hARunL_2_2hARun"        1    "s_2hARun"        0.0    0.0    M.    "Hum_2hRun_M01.asc"        F    38    45)
            aniBlend    ("t_2hARunR_2_2hARun"            "s_2hARun"        0.2    0.2)

//    2hA-Run Backwards Movement
            aniAlias    ("t_2hAJumpB"                 1     "s_2hARun"         0.0 0.0 M.     "t_JumpB"                F)

//    2hA-WALK-Mode, Standing
            ani            ("s_2hAWalk"                1    "s_2hAWalk"        0.1    0.1    M.    "Hum_2hWalk_M01.asc"    F    0    0)

            ani            ("t_2hAWalk_2_2hAWalkL"        1    "s_2hAWalkL"    0.1    0.0    M.    "Hum_2hWalk_M01.asc"    F    1    9)

//    2hA-Walk-Loop
            ani            ("s_2hAWalkL"                1    "s_2hAWalkL"    0.0    0.0    M.    "Hum_2hWalk_M01.asc"    F    10    33)
            {
                *eventSFXGrnd    (10    "Run")
                *eventSFXGrnd    (22    "Run")
            }

            ani            ("t_2hAWalkL_2_2hAWalk"        1    "s_2hAWalk"        0.0    0.2    M.    "Hum_2hWalk_M01.asc"    F    34    38)
            aniBlend    ("t_2hAWalkR_2_2hAWalk"            "s_2hAWalk"        0.2    0.3)

//    2hA-Walk Backwards Movement
            aniAlias    ("t_2hAWalk_2_2hAWalkBL"    1    "s_2hAWalkBL"    0.0    0.0    M.    "t_2hAWalkL_2_2hAWalk"    R)

            aniAlias    ("s_2hAWalkBL"                1    "s_2hAWalkBL"    0.0    0.0    M.    "s_2hAWalkL"            R)

            aniAlias    ("t_2hAWalkBL_2_2hAWalk"    1    "s_2hAWalk"        0.0    0.0    M.    "t_2hAWalk_2_2hAWalkL"    R)
            aniBlend    ("t_2hAWalkBR_2_2hAWalk"        "s_2hAWalk"        0.2    0.2)


//    2hA-SNEAK-Mode, Standing
            aniAlias    ("s_2hASneak"                1    "s_2hASneak"    0.3    0.3    MI    "s_Sneak"                F)
            aniAlias    ("t_2hASneak_2_2hASneakL"    1    "s_2hASneakL"    0.0    0.0    M.    "t_Sneak_2_SneakL"        F)

//    2hA-Sneak-Loop
            aniAlias    ("s_2hASneakL"                1    "s_2hASneakL"    0.0    0.0    M.    "s_SneakL"                F)

            aniBlend    ("t_2hASneakL_2_2hASneak"        "s_2hASneak"    0.2    0.2)
            aniBlend    ("t_2hASneakR_2_2hASneak"        "s_2hASneak"    0.2    0.2)

//    2hA-Sneak Backwards Movement
            aniBlend    ("t_2hASneak_2_2hASneakBL"            "s_2hASneakBL"    0.2    0.2)

            aniAlias    ("s_2hASneakBL"                    1    "s_2hASneakBL"    0.0    0.0    M.    "s_SneakL"            R)

            aniBlend    ("t_2hASneakBL_2_2hASneak"            "s_2hASneak"    0.2    0.2)
            aniBlend    ("t_2hASneakBR_2_2hASneak"            "s_2hASneak"    0.2    0.2)


//////////////////////////
// 2H-AXE TURNING
//////////////////////////

            ani            ("t_2hARunTurnL"            20    "t_2hARunTurnL"        0.0    0.0    M.    "Hum_2hTurn_M01.asc"    F    1    22)
            {
                *eventSFXGrnd    (5    "Run")
                *eventSFXGrnd    (12    "Run")
            }
            aniAlias    ("t_2hARunTurnR"            20    "t_2hARunTurnR"        0.0    0.0    M.    "t_2hARunTurnL"            R)

            aniAlias    ("t_2hAWalkTurnL"            20    "t_2hAWalkTurnL"    0.0    0.0    M.    "t_2hARunTurnL"            F)
            aniAlias    ("t_2hAWalkTurnR"            20    "t_2hAWalkTurnR"    0.0    0.0    M.    "t_2hARunTurnL"            R)

            aniAlias    ("t_2hASneakTurnL"            20    "t_2hASneakTurnL"    0.2    0.2    M.    "t_2hARunTurnL"            F)
            aniAlias    ("t_2hASneakTurnR"            20    "t_2hASneakTurnR"    0.2    0.2    M.    "t_2hARunTurnL"            R)


//////////////////////////
// 2H-AXE STRAFING
//////////////////////////

            ani            ("t_2hARunStrafeL"            1    "s_JumpStand"        0.1    0.1    M.    "Hum_2hStrafe_M01.asc"    F    1    24)
            aniAlias    ("t_2hARunStrafeR"            1    "s_JumpStand"        0.1    0.1    M.    "t_2hARunStrafeL"        R)

            aniAlias    ("t_2hAWalkStrafeL"            1    "s_JumpStand"        0.1    0.1    M.    "t_2hARunStrafeL"        F)
            aniAlias    ("t_2hAWalkStrafeR"            1    "s_JumpStand"        0.1    0.1    M.    "t_2hARunStrafeL"        R)

            aniAlias    ("t_2hASneakStrafeL"        1    "s_JumpStand"        0.1    0.1    M.    "t_SneakStrafeL"        F)
            aniAlias    ("t_2hASneakStrafeR"        1    "s_JumpStand"        0.1    0.1    M.    "t_SneakStrafeL"        R)


//////////////////////////
// 2H-AXE TRANSITIONS
//////////////////////////
//    Movement-Modes
            aniBlend     ("t_2hARun_2_2hAWalk"                "s_2hAWalk"        0.2    0.2)
            aniBlend    ("t_2hAWalk_2_2hARun"                "s_2hARun"        0.2    0.2)

            aniBlend    ("t_2hARun_2_2hASneak"                "s_2hASneak"    0.2    0.2)
            aniBlend    ("t_2hASneak_2_2hARun"                "s_2hARun"        0.2    0.2)

            aniBlend    ("t_2hARunL_2_2hAWalkL"                "s_2hAWalkL"    0.2    0.2)
            aniBlend    ("t_2hAWalkL_2_2hARunL"                "s_2hARunL"        0.2    0.2)

            aniBlend    ("t_2hASneakL_2_2hARunL"            "s_2hARunL"        0.2    0.2)
            aniBlend    ("t_2hARunL_2_2hASneakL"            "s_2hASneakL"    0.2    0.2)

//    JumpStand
//    aus dem Rennen direkt Springen
            aniAlias    ("t_2hARunL_2_Jump"                1    "s_Jump"        0.1    0.1    MF    "t_RunL_2_Jump"            F)
            aniAlias    ("t_2hARunR_2_Jump"                1    "s_Jump"        0.1    0.1    MF    "t_RunL_2_Jump"            F)
//    nach dem Sprung direkt weiterrennen, wenn CursorUp weiterhin gedrückt
            aniBlend    ("t_Jump_2_2hARunL"                    "s_2hARunL"        0.2    0.1)


//////////////////////////
// 2H-AXE FIGHTING
//////////////////////////
// Kampf ohne Talent

//    Ausholen
            aniBlend    ("t_2hAWalk_2_2hAAim"            "s_2hAAim"        0.2    0.2)
            aniAlias    ("s_2hAAim"                    1    "s_2hAAim"        0.0    0.0    M.    "s_2hSAim"                F)
            aniBlend    ("t_2hAAim_2_2hAWalk"            "s_2hAWalk"        0.2    0.2)

//    Ausholen während Kampfsteps
            aniBlend    ("t_2hAWalkL_2_2hAAim"            "s_2hAAim"        0.2    0.0)
            aniBlend    ("t_2hAWalkR_2_2hAAim"            "s_2hAAim"        0.2    0.0)


// Attacks
            ani            ("t_2hAAt1Step"                1    "s_2hAWalk"        0.0 0.1 M.    "Hum_2hAttackS1_M01.asc"    F    1    23)
            {
                *eventTag    (0    "DEF_OPT_FRAME"        "12")
                *eventSFX    (8    "2hAttackT")
            }
            ani            ("t_2hAAt1"                    1    "s_2hAWalk"        0.0 0.1 M.    "Hum_2hAttack1_M01.asc"    F    1    23)
            {
                *eventTag    (0    "DEF_OPT_FRAME"        "12")
                *eventSFX    (8    "2hAttackT")
            }

//            aniAlias    ("t_2hAAttackL"                1    "s_2hAWalk"        0.1 0.1 MR    "t_1hSAttackL"    F)
//            aniAlias    ("t_2hAAttackR"                1    "s_2hAWalk"        0.1 0.1 MR    "t_1hSAttackR"    F)

//    Paraden
            ani            ("t_2hAAim_2_2hADefend"        1    "s_2hADefend"    0.0 0.0 M.    "Hum_1hSParade_M01.asc"    F    1    5)
            ani            ("s_2hADefend"                1    "s_2hADefend"    0.0 0.0 M.    "Hum_1hSParade_M01.asc"    F    6    6)
            ani            ("t_2hADefend_2_2hAAim"        1    "s_2hAWalk"        0.0 0.0 M.    "Hum_1hSParade_M01.asc"    F    14    18)
                                                                                                                       
            ani            ("t_2hAParadeL"                1    "s_2hAWalk"        0.0 0.0 M.    "Hum_1hSParade_M01.asc"    F    7    11)                
            aniAlias    ("t_2hAParadeM"                1    "s_2hAWalk"        0.0 0.0 M.    "t_2hAParadeL"            F)
            aniAlias    ("t_2hAParadeS"                1    "s_2hAWalk"        0.0 0.0 M.    "t_2hAParadeL"            F)

Самих аним в аске нет?
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.882
Баллы
420
Trazege, если в момент выполнения анимации отпустить клавишу стрейфа, анимация прерывается мгновенно. По нормальному, она должна доиграть до конца. Как анимация отскока работает, например.
 

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.228
Благодарности
1.927
Баллы
370
Самих аним в аске нет?
1. Анимации боёвки для двуручных топоров идентичны анимациям боёвки от двуручных мечей.
2. Сами эти анимации не пригодны для использования. Во первых они сами по себе УГ, потому что были сделаны как прототип ещё в 1998 году задолго до съёмки Motion Capture, а во вторых их ещё нужно адаптировать под релизную модель.
 
Последнее редактирование:

Trazege

Участник форума
Регистрация
20 Фев 2008
Сообщения
1.760
Благодарности
1.394
Баллы
340
Trazege, если в момент выполнения анимации отпустить клавишу стрейфа, анимация прерывается мгновенно. По нормальному, она должна доиграть до конца. Как анимация отскока работает, например.

В оригинальной готике именно так и работает стрейф. У меня работает именно так как ты описал.

1. Анимации боёвки для двуручных топоров идентичны анимациям боёвки от двуручных мечей.
2. Сами эти анимации не пригодны для использования. Во первых они сами по себе УГ, потому что были сделаны как прототип ещё в 1998 году задолго до съёмки Motion Capture, а во вторых их ещё нужны адаптировать под релизную модель.

Интересны анимы именно для PSI блока. Для оружия в ремастере Алекса все очень красиво сделано и менять на альфу абсолютно не имеет смысла. Видосиков нет случайно как это все добро выглядит?
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.882
Баллы
420
Trazege, не так оно работает. Поверь.
1. Анимации боёвки для двуручных топоров идентичны анимациям боёвки от двуручных мечей.
Вопрос не в идентичности. Скрипты имеют уникальный ключ A. Пусть это обычный двуруч по сути. Но анимации вызываются другие! А значит, можно отправить в топку пирог из оверлеев. И сделать отдельную ветку прокачки только топоров. Я за то, чтобы каждый тип имел свой блок анимаций в mds скриптах.

Psi похож на sneak. А скрипты боевки на бесконтактную магию. Типа бегает перс и долбит всех на расстоянии силой мысли. Без рун.
 

Phantom95

Участник форума
Регистрация
31 Июл 2014
Сообщения
2.228
Благодарности
1.927
Баллы
370
Интересны анимы именно для PSI блока. Для оружия в ремастере Алекса все очень красиво сделано и менять на альфу абсолютно не имеет смысла. Видосиков нет случайно как это все добро выглядит?
Ну.. Пока могу показать лишь это:
 

Trazege

Участник форума
Регистрация
20 Фев 2008
Сообщения
1.760
Благодарности
1.394
Баллы
340
Trazege, не так оно работает. Поверь.
Вопрос не в идентичности. Скрипты имеют уникальный ключ A. Пусть это обычный двуруч по сути. Но анимации вызываются другие! А значит, можно отправить в топку пирог из оверлеев. И сделать отдельную ветку прокачки только топоров. Я за то, чтобы каждый тип имел свой блок анимаций в mds скриптах.

Psi похож на sneak. А скрипты боевки на бесконтактную магию. Типа бегает перс и долбит всех на расстоянии силой мысли. Без рун.

Скрипты тут не причем...все делается на уровне движка.
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.882
Баллы
420
// 2hA-RUN
ani ("s_2hARun" 1 "s_2hARun" 0.1 0.1 M. "Hum_2hAmbient_M01.asc" F 0 98)
ani ("t_2hARun_2_2hARunL" 1 "s_2hARunL" 0.0 0.0 M. "Hum_2hRun_M01.asc" F 1 13)
И.т.д....

2hA. - для axe. Оружие двуручное, но анимации вызываются не 2h.

2. Сами эти анимации не пригодны для использования. Во первых они сами по себе УГ, потому что были сделаны как прототип ещё в 1998 году задолго до съёмки Motion Capture, а во вторых их ещё нужно адаптировать под релизную модель.
Для справки. Если они мокапом что и наснимали, то почти все отправили в топку. Из живого там бабьи танцы и тренировка с мечом. И инэкстремо. Большая же часть модели это ручная работа. Процентов 10 адаптированные анимации из мокап пакета, который когда-то autodesk бесплатно распространял вместе с 3dsmax.
Я пока ремастер делал, аж слезы счастья пускал. Брал исходники от autodesk и на базе них восстанавливал движения.
 
Последнее редактирование:
Сверху Снизу