Role Playing Games

  • View
    27

  • Download
    0

Embed Size (px)

DESCRIPTION

Role Playing Games. Game AI 2007 CASANAS Sylvain PASTOR Antoine PERCHET Frederic VERHEYE Fabien. Plan. Principe Architecture Animation Analyse de RPG Modèles de comportement Avenir du RPG. Principe. Issu du JDR papier Un personnage ou groupe à incarner Des quêtes à accomplir. - PowerPoint PPT Presentation

Text of Role Playing Games

  • Game AI 2007CASANAS SylvainPASTOR AntoinePERCHET FredericVERHEYE Fabien

  • PrincipeArchitectureAnimationAnalyse de RPGModles de comportementAvenir du RPG

  • Issu du JDR papier

    Un personnage ou groupe incarner

    Des qutes accomplir

  • Diffrents types de JDRClassique : Baldurs Gate, Fallout, NeverwinterNigthsAction/aventure : Oblivion, GothicHackn slash: Diablo, Titan QuestMMORPG : WoW, EverquestTactical : FF Tactics, Golden SunDiffrents universMdival FantastiquePost ApocalyptiqueSpace OpraContemporain

  • Dfinis par une feuille de personnage

    Fallout 2

  • Possdent un inventaireNeverWinterNigths2

  • Un personnage unique ou un groupe

    Acteurs de lhistoire Contrls par le joueurEvolue au fil du jeuNeverWinterNigths2

  • Moteur GraphiqueMoteur de sonJeuMoteur physique

  • Model du personnage structur en 2 parties :SqueletteAnatomie

    MeshMaillage du model 3D

    VertexLes sommets du maillages

    BoneOs du squelette

  • 2 models de skinning :Rigid skinningSmooth skinning On rcupre la rotation du bone.

    On transforme cette rotation dans le repre du mesh.

    On rcupre les vertices influencs par ce bone dans le mesh.

    On applique la rotation sur chaque vertex.

    Chacun de ces bones a une influence appele un poids sur un vertex.

    Pour chaque vertex on rcupre les matrices de rotation des n bones qui linfluencent ainsi que les poids correspondant.

    On modifie les vertices et les normales au vertex avec la formule suivante : V = M0*V*W0 + M1*V*W1 + + Mn*V*Wn

  • Anim par le squeletteSqueletteContient les animations

    MeshMaillage du model 3D

    VertexLes sommets du maillages

    BoneOs du squelette

    Bones influenantsPoids des bones

    Vertices influencerVertices attachs au bone

    AnimationCls danimation

  • Interpolation de mouvementsUne animation se compose de keyframes (translation et rotation sur un bone linstant ti)Connatre chaque instant t les positions des bones

    On rcupre les 2 keyframes bornant t On utilise une formule dinterpolation de mouvement pour trouver la position des bones linstant t

  • Interpolation de mouvements avec tangentesPermet des mouvements plus soupleDirection dans laquelle on arrive ou on part : tangente in et tangente out

  • Composition de mouvements (Animation blending)Enchainement de mouvements : mme principe dinterpolation mais entre 2 keyframes danimations diffrentes. Un poids croissant ou dcroissant sur les animations.Cross fade, continuous blending.

  • Composition de mouvements (Animation blending)Mlange de mouvements : Feather blending.Exemple : un personnage qui marche et fait tourner son pe.Un modificateur de poids sur chaque os dune animation :Anim1 (marcher) : 100% sur les jambes, 20% sur les bras.Anim2 (tourner pe) : 100% sur les bras, 0% sur les jambes.

  • Motion Capture

    Making of The Witcher

  • Interactions PNJ :Qutes : OblivionDialogues : Fallout 2Combat : NeverWinterNigths 2

  • Journal de qutesDfinie par une prioritUne qute divise en quest stagesavec une valeur indiquant lavancement de la quteMise jour du journalEvolution du dialogue des PNJMise jour du marqueur sur la carte

    Exemple

    10 : qute accepte20 : 1re tape valide30 : 2me tape valide40 : qute termine

  • Journal de qutesOblivion

  • Journal de qutes

    Oblivion Construction Set

  • IA des PNJ de Fallout 2Les fichiers .ssl

    procedure pickup_p_proc : Si le joueur tente de voler le PNJ procedure talk_p_proc : Dbut du dialogue procedure destroy_p_proc : Dcs du PNJ procedure look_at_p_proc : Le joueur regarde le PNJ procedure description_p_proc : Le joueur regarde le PNJ avec attention procedure use_skill_on_p_proc : Le joueur utilise une comptence sur le PNJ. procedure damage_p_proc : Le PNJ perd des points d'impact. procedure map_enter_p_proc : Le joueur entre sur la map du PNJ. C'est ici par exemple qu'est dfinie la team du PNJou son ia.

  • Exemple de dialogue

    procedure talk_p_proc begin Evil_Critter:=0; Slavery_Tolerant:=SLAVE_VERY_INTOLERANT; Karma_Perception:=KARMA_PERCEPTION1;

    if (dude_iq < 4) then begin start_gdialog(NAME,self_obj,4,-1,-1); gSay_Start; call Node012; gSay_End; end_dialogue; endelse if (global_var(GVAR_ARROYO_DOG) == DOG_FINISHED_BAD) then begin floater(128); end

    else if (global_var(GVAR_ARROYO_DOG) == DOG_ACCEPTED) then begin set_local_var(LVAR_Herebefore,1); start_gdialog(NAME,self_obj,4,-1,-1); gSay_Start; call Node005; gSay_End; end_dialogue; endprocedure Node012 begin Reply(129); NLowOption(130,Node999);End

    procedure Node005 begin Reply(114); NOption(115,Node004,004); NOption(116,Node999,004);end{129}{}{J'ai faire, imbcile. Va jouer ailleurs.}{130}{}{Gaaaah}

    {114}{}{As-tu retrouv Fumace ?}{115}{}{Non, pas encore. O as-tu dit que se trouvait le terrain de chasse ?}{116}{}{Non, pas encore.}

    {128}{}{Fumace me manque. Pourquoi ne peux-tu pas le sauver ? Tu es l'Etre Elu.}

  • Autres procdures

    procedure damage_p_proc beginif (source_obj == dude_obj) then begin set_local_var(LVAR_Personal_Enemy,1); set_global_var(GVAR_ENEMY_ARROYO,1); end

    end

    procedure pickup_p_proc begin if (source_obj == dude_obj) then begin set_local_var(LVAR_Hostile,2); endend

  • Dpend de la distance au joueurLOD (Level of detail)

    Dpend du type de crature1222313334444445555512345PJ25%10%5%2%Charge CPU

  • AnimauxAnimaux dambiance : oiseaux, insectesDplacements basiques

    Autres animaux : ours, loups, cerf Algos de vie : nourriture, protection, chasse, erranceOblivion

  • Ours

    Normal errer(); si (a_faim() et voit_nourriture() ) { aller_a(nourriture-vue); animation(manger); }

    Est_attaque while(est_vivant(attaquant)) {attaquer();}

  • VillageoisErrent dans la villeOccupation naturelles en fonction du moment de la journeDplacements dans la fouleAssassins creed

  • Marchand Accroche du PJComportements dpendant des actions du PJAchats prcdentsAide apporteNgociationPopularit dans la ville

  • GardeSuit un tour de gardeRenseigne le PJEnqute sur les vnements suspects (cadavre, inconnu)Donne lalerte

  • *