Junior_Djjr
Junior_Djjr
Scripter CLEO - Avançado
Scripter CLEO - Avançado
Título : Censurando since 2011
Mensagens : 22701
Reputação : 727
Desde : 03/05/2012
Idade : 24
Localização : Ibitinga - SP
Link : www.MixMods.com.br
http://MixMods.com.br
  • Reputação da mensagem: 100% (1 votos)
em Sex 03 Mar 2017, 10:06
#. Uso de animações Cat-improvement-how-to-do-tutorial

Animações — crucial quando você for criar cenas de missões, assim outros mods de ações/tarefas que você esteja pensando em fazer. Entender como usar animações é altamente importante.

Concluindo este tutorial você vai:
Saber como usar os principais comandos de tarefa de animações em chars, tendo uma introdução sobre animações e diferenças entre eles e uso de seus parâmetros.



Como usar animações?


O uso de IFP já foi explicado no tutorial de como manipular modelos e criar entidades. Só lembrando: Se você for usar o PED.IFP, não precisa carregar!


Comandos


Há realmente vários comandos que pedem animações, e são todos basicamente os mesmos (geralmente alguns que, além de fazer alguma coisa, também pede uma anim etc).

Os principais são:
TASK_PLAY_ANIM — Toca uma animação num char, podendo ser interrompido caso este seja morto, atropelado ou coisa do tipo.
TASK_PLAY_ANIM_NON_INTERRUPTABLE — Mesmo acima, mas agora ele nunca será interrompido, ele fará a animação seja o que for, mesmo que morra.
TASK_PLAY_ANIM_SECONDARY — Usado para animações "parciais" (partials) onde só move parcialmente o corpo. Por exemplo: Fumar só mexe o braço e cabeça, assim você pode fumar e andar ao mesmo tempo.

Há alguns outros, mas você dificilmente usará outro a não ser estes. Escolha dependente da situação.


Argumentos


Os argumentos para os três acima são iguais e você pode ir no "See online reference" (ou clicar aqui mesmo ) para ver melhor. Vou repetir, traduzir e explicar diferente:
[char handle] — O handle do char.
[string1] — Nome da animação dentro do .ifp
[string2] — Nome do .ifp
[flt] — Taxa de velocidade (por padrão, "4.0". Você dificilmente vai querer usar outro número a não ser 4.0)
[int1] — Ativa repetição (loop)
[int2] — Faz o char continuar na coordenada X (esquerda-direita) quando a animação termina. Você dificilmente vai querer ativar isso.
[int3] — Faz o char continuar na coordenada Y (frente-atrás) quando a animação termina. Você dificilmente vai querer ativar isso.
[int4] — Trava o char na posição final da animação, assim, quando a animação terminar, ele continuará na mesma pose do frame final dela.
[int5] — Tempo (duração) em milissegundos. Use "-1" para ser o tempo total da animação.

Já está tudo explicado.

Vamos fazer o CJ coçar o saco:
#. Uso de animações Gta-sa-tutorial-cleo-gta3script
Código copiável:

Código:
SCRIPT_START
{
LVAR_INT scplayer

GET_PLAYER_CHAR 0 scplayer

REQUEST_ANIMATION MISC
LOAD_ALL_MODELS_NOW

main_loop:
WAIT 0
IF IS_KEY_PRESSED VK_KEY_Y
    TASK_PLAY_ANIM scplayer Scratchballs_01 MISC 4.0 0 0 0 0 -1
    WHILE IS_KEY_PRESSED VK_KEY_Y
        WAIT 0
    ENDWHILE
ENDIF
GOTO main_loop
}
SCRIPT_END
Você pode querer digitar este comando de várias maneiras. Como eu já disse, você pode usar os carácteres ( ) , de forma cosmética para melhorar a leitura. Ou usar constantes TRUE/FALSE / ON/OFF, ou maiúsculas/minúsculas, ou aspas... GTA3script deve ser uma das linguagens mais freestyle (as aspas foram incluídas por causa da CLEO, no original GTA3script nem exist aspas).
Código:
TASK_PLAY_ANIM scplayer Scratchballs_01 MISC 4.0 0 0 0 0 -1
TASK_PLAY_ANIM scplayer (Scratchballs_01, MISC) 4.0 0 0 0 0 -1
TASK_PLAY_ANIM scplayer (Scratchballs_01, MISC) 4.0 (0 0 0 0) -1
TASK_PLAY_ANIM scplayer (Scratchballs_01, MISC) 4.0 (FALSE, FALSE, FALSE, FALSE) -1
TASK_PLAY_ANIM scplayer (SCRATCHBALLS_01, MISC) 4.0 (FALSE, FALSE, FALSE, FALSE) -1
TASK_PLAY_ANIM scplayer "SCRATCHBALLS_01" "MISC" 4.0 (0, 0, 0, 0) -1
Tudo funciona.

Tente fazer misturas de argumentos, deixando esta animação em loop durante 10 segundos. Consegue?

Para você forçar a parada de uma animação (útil caso você tenha deixado uma animação em loop infinito), use comandos como CLEAR_CHAR_TASKS ou CLEAR_CHAR_TASKS_IMMEDIATELY.

Quando algum comando pede uma animação mas você não quer usar, como por exemplo TASK_PICK_UP_OBJECT, use "NULL" onde pede o nome da animação e IFP.

Como dito, nas animações parciais use o comando TASK_PLAY_ANIM_SECONDARY
Código:
TASK_PLAY_ANIM_SECONDARY scplayer plyr_shkhead MISC 4.0 0 0 0 0 -1
Neste exemplo, o CJ fará uma animação tipo "FACEPALM", e ao mesmo tempo você pode andar.

Note inclusive que você pode usar animações em objetos! PLAY_OBJECT_ANIM


Como saber os nomes das animações e .ifp?


Para encontrar os nomes das animações e seus .ifp, atualmente recomendo altamente o GTA Anim Manager do Ryosuke839. Baixe aqui .
Se você não sabe usar, dê uma olhada na seção "9. Abrindo uma animação" no tutorial de como criar animações, lá tem uma rápida explicação do GTA Anim Manager.
É tudo muito fácil... Só carregue o anim.img (ele é um arquivo não usado pelo jogo, mas enfim, todas as animações que estão nele estão no gta3.img, e é mais prático abrir ele do que o gta3.img), e vendo as animações você pode escolhê-las. Para saber se uma animação é parcial, você verá que na animação somente por exemplo os braços se movem, e não as pernas (assim, o personagem no GTA Anim Manager pode aparecer virado de lado, bugado).

No caso de um .ifp adicionado, simplesmente instale normalmente e carregue-o. Sem problemas.

______________________________
BMS agora em nova plataforma:
Forum.MixMods.com.br
AlphA
AlphA
Mensagens Nível 69
Mensagens Nível 69
Mensagens : 83
Reputação : 0
Desde : 01/03/2017
Idade : 15
Localização : São João da Boa Vista-SP
em Sex 03 Mar 2017, 13:35
Aí sim
Fabricio8
Fabricio8
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 19
Reputação : 0
Desde : 12/02/2017
em Sab 22 Jul 2017, 23:28
sabe se é possível coverter os peds com as animações originais do gta vc para san ?
Inan-Ahammad
Inan-Ahammad
Mensagens Nível 1
Mensagens Nível 1
Mensagens : 14
Reputação : 0
Desde : 21/04/2018
Localização : Bangladesh
Link : gtaforums.com/uploads/profile/photo-1056481.jpg
https://inanahammad.blogspot.com/
em Seg 30 Jul 2018, 03:46
but how do i stop an animation and load another one.My script
Código:

SCRIPT_START
{
    NOP
    LVAR_INT sc_player sc_char
    GET_PLAYER_CHAR 0 sc_player
    main:
    wait 0
    IF GET_CHAR_PLAYER_IS_TARGETING 0 sc_char
        REQUEST_ANIMATION handsup
        LOAD_ALL_MODELS_NOW
        TASK_PLAY_ANIM sc_char handsup ped 4.0 0 0 0 1 -1
        WHILE IS_PLAYER_TARGETTING_CHAR 0 sc_char
            wait 0
        ENDWHILE
    ENDIF

    IF NOT IS_PLAYER_TARGETTING_CHAR 0 sc_char
        TASK_PLAY_ANIM sc_char handsup ped 4.0 0 0 0 0 1
        REQUEST_ANIMATION sprint_panic
        LOAD_ALL_MODELS_NOW
        TASK_PLAY_ANIM sc_char sprint_panic ped 4.0 0 0 0 1 -1
    ENDIF
    GOTO main
}
SCRIPT_END
the ped seems to become a statue after finishing first anim him/her anymore and if i interrupt them(hit them) it seems to continue the second anim.
Conteúdo patrocinado
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum