Astuces DotNet (Sébastien Courtois)

01/02/2012

[KinectSDK] Affichage des flux vidéo couleur et profondeur de Kinect dans une fenêtre WPF avec MVVM

Filed under: .NET, C#, Débutant, Jeux vidéos, Kinect — Étiquettes : , , , , , — sebastiencourtois @ 05:46

Prérequis pour ce tutoriel :

  • Kinect SDK doit être installé sur votre machine
  • Coding4Fun Kinect Toolkit (la dll utilisée est fournie dans le code exemple a la fin de cet article).
  • Kinect et un câble USB permettant de le connecter à un PC (seules les versions de Kinect achetée séparément de la console en ont un si ma mémoire est bonne. Si vous n’avez pas de câble Kinect/USB, vous devriez pouvoir en trouver sur le Microsoft Store).
  • Créer un projet Windows Application WPF et ajouter les références Microsoft.Research.Kinect (dans GAC) et Coding4Fun.Kinect.Wpf.

Suite à la présentation rapide de Kinect et de son SDK, nous allons maintenant rentrer dans le vif du sujet en créant une application WPF dans lequel nous allons afficher le flux couleur et profondeur de Kinect.

Afin de permettre la réutilisation de ce code, nous allons utiliser une architecture MVVM composée d’un ViewModel pour la fenêtre et d’un « ViewModel » Kinect afin de pouvoir réutiliser la partie Kinect indépendamment dans d’autres projets.

Les fichiers du projet sont :

  • MainWindow.xaml : Fichier xaml représentant la fenêtre.
  • MainWindowViewModel.cs : ViewModel de la fenêtre MainWindow
  • KinectVideoViewModel.cs : « ViewModel » pour acceder aux données Kinect. Une instance de cette classe est incluse dans MainWindowViewModel.

La fenêtre principale (MainWindow.xaml)

kinectdemoblog1

 

 

 

 

 

 

 

 

 

 

Screenshot de l’application finale

La fenêtre est une grille 2 lignes/2colonnes ou la première ligne contient les textes titres. La deuxième ligne contient des images contenant les flux vidéos (flux couleur à gauche et flux profondeur à droite).

Chacune des images voit leur source bindée sur des BitmapSource du KinectViewModel que nous verrons plus tard.

Le ViewModel est créé et lié au DataContext directement dans le fichier XAML.

1 <Window x:Class="KinectWpf.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 xmlns:vm="clr-namespace:KinectWpf.ViewModel" 5 Title="Kinect Demo 1" Width="800" Height="600" > 6 <Window.DataContext> 7 <vm:MainWindowViewModel /> 8 </Window.DataContext> 9 <Grid> 10 <Grid.RowDefinitions> 11 <RowDefinition Height="Auto" /> 12 <RowDefinition Height="*" /> 13 </Grid.RowDefinitions> 14 <Grid.ColumnDefinitions> 15 <ColumnDefinition Width="*" /> 16 <ColumnDefinition Width="*" /> 17 </Grid.ColumnDefinitions> 18 <TextBlock Text="Color Stream" FontWeight="Bold" FontSize="15" VerticalAlignment="Center" Margin="5,0,0,0" /> 19 <TextBlock Text="Depth Stream" Grid.Column="1" FontWeight="Bold" FontSize="15" VerticalAlignment="Center" Margin="5,0,0,0" /> 20 <Image Grid.Row="1" Grid.Column="0" Source="{Binding Kinect.ColorStreamImageSource}" /> 21 <Image Grid.Row="1" Grid.Column="1" Source="{Binding Kinect.DepthStreamImageSource}"/> 22 </Grid> 23 </Window> 24

Le ViewModel de la fenêtre (MainWindowViewModel.cs)

 

1 public class MainWindowViewModel : INotifyPropertyChanged 2 { 3 public KinectViewModel _kinect; 4 public KinectViewModel Kinect 5 { 6 get { return _kinect; } 7 set 8 { 9 this._kinect = value; 10 OnPropertyChanged("Kinect"); 11 } 12 } 13 14 public MainWindowViewModel() 15 { 16 Application.Current.Exit += (sender, args) => { Clean(); }; 17 Kinect = new KinectViewModel(); 18 Kinect.Start(RuntimeOptions.UseColor | RuntimeOptions.UseDepthAndPlayerIndex); 19 } 20 21 public void Clean() 22 { 23 Kinect.Release(); 24 } 25 26 #region INotifyPropertyChanged Interface 27 28 public event PropertyChangedEventHandler PropertyChanged; 29 public void OnPropertyChanged(string name) 30 { 31 if (this.PropertyChanged != null) 32 this.PropertyChanged(this, new PropertyChangedEventArgs(name)); 33 } 34 35 #endregion 36 }

Comme la plupart des ViewModel, cette classe implémente INotifyPropertyChanged afin de pouvoir remonter les changements au moteur de binding de WPF. Nous ajoutons une propriété KinectViewModel afin qu’il soit accessible directement par binding à la vue MainWindow.

Deux méthodes du KinectViewModel seront utilisées ici. La première est la méthode Start qui est chargée d’initialiser et de lancer la capture des flux vidéos (les paramètres de cette méthode seront détaillés dans la suite). La seconde est la méthode Release() charge de libérer les ressources utilisant Kinect.

Le ViewModel Kinect (KinectViewModel.cs)

 

1 public class KinectViewModel : INotifyPropertyChanged 2 { 3 private Runtime KinectRuntime; 4 5 public KinectViewModel(int id = 0) 6 { 7 if (Runtime.Kinects == null || Runtime.Kinects.Count <= id) 8 throw new InvalidOperationException("No kinect runtime found for id="+ id+"."); 9 this.KinectRuntime = Runtime.Kinects[id]; 10 } 11 [...] 12 }

Cette partie concerne l’initialisation du Runtime Kinect. La classe Runtime (provenant de Microsoft.Research.Kinect) référence, dans sa propriété Kinects sous la forme de Kinect[], l’ensemble des Kinects connectés à l’ordinateur. Notre ViewModel va permettre de sélectionner le Kinect souhaite grâce au paramètre id. Dans la plupart des cas, un seul Kinect est branché, on mettra une valeur par défaut id = 0. Une fois l’objet Kinect trouvé, on le conserve dans une variable KinectRuntime que nous utiliserons dorénavant.

 

1 public class KinectViewModel : INotifyPropertyChanged 2 { 3 [...] 4 public void Start(RuntimeOptions options) 5 { 6 this.KinectRuntime.Initialize(options); 7 8 if ((options & RuntimeOptions.UseColor) == RuntimeOptions.UseColor) 9 InitColorStream(); 10 if ((options & RuntimeOptions.UseDepth) == RuntimeOptions.UseDepth) 11 InitDepthStream(); 12 if ((options & RuntimeOptions.UseDepthAndPlayerIndex) == RuntimeOptions.UseDepthAndPlayerIndex) 13 InitDepthAndPlayerIndexStream(); 14 if ((options & RuntimeOptions.UseSkeletalTracking) == RuntimeOptions.UseSkeletalTracking) 15 InitSkeletonTracking(); 16 } 17 [...] 18 }

Une fois le KinectVIewModel crée, il faut initialiser puis démarrer les flux vidéos. Pour cela, il est nécessaire de fournir à Kinect le type des flux que l’on souhaite utiliser. On utilise pour ça l’énumération RuntimeOptions définie par le SDK Kinect comme suit :

 

1 namespace Microsoft.Research.Kinect.Nui 2 { 3 [Flags] 4 public enum RuntimeOptions 5 { 6 UseDepthAndPlayerIndex = 1, 7 UseColor = 2, 8 UseSkeletalTracking = 8, 9 UseDepth = 32, 10 } 11 }

On initialise le Kinect en appelant la méthode Initialize tout en fournissant cette énumération (cette énumération ayant un attribut [Flag], il est possible de les combiner en utilisant les opérateurs binaires). La série de conditions qui suivent la méthode Initialize vont scannes ces RuntimeOptions afin de déterminer les types de flux voulus. Cela va nous permettre d’appeler des méthodes d’initialisation spécifiques à ces flux.

 

1 public class KinectViewModel : INotifyPropertyChanged 2 { 3 [...] 4 #region Color Stream 5 6 public BitmapSource _colorStreamImageSource; 7 public BitmapSource ColorStreamImageSource 8 { 9 get { return _colorStreamImageSource; } 10 set 11 { 12 this._colorStreamImageSource = value; 13 OnPropertyChanged("ColorStreamImageSource"); 14 } 15 } 16 17 private void InitColorStream() 18 { 19 this.KinectRuntime.VideoFrameReady += KinectRuntime_VideoFrameReady; 20 this.KinectRuntime.VideoStream.Open(ImageStreamType.Video, 21 2, 22 ImageResolution.Resolution640x480, 23 ImageType.Color); 24 } 25 26 private void KinectRuntime_VideoFrameReady(object sender, ImageFrameReadyEventArgs e) 27 { 28 this.ColorStreamImageSource = e.ImageFrame.ToBitmapSource(); 29 } 30 31 #endregion 32 [...] 33 }

La partie gérant le flux vidéo couleur comprend 3 parties.

Une propriété bindable ColorStreamImageSource de type BitmapSource lie a un control Image de la MainWindow (<Image Grid.Row="1" Grid.Column="0" Source="{Binding Kinect.ColorStreamImageSource}" />).

Si la méthode Start, décrite ci-dessus, a une option RuntimeOptions.UseColor, alors la méthode InitColorStream ci-dessus sera appelée. Nous commençons par nous abonner à l’événement VideoFrameReady pour récupérer une image lorsque celle-ci est disponible. Une fois récupérer, il suffit de la passer a la méthode d’extension ToBitmapSource() (provenant du Coding4Fun Kinect Toolkit) pour créer le BitmapSource adéquat. Lorsque ce BitmapSource est assigné à la propriété ColorStreamImageSource, le databinding se déclenche pour mettre à jour l’image.

Le lancement du flux vidéo se fait grâce à la propriété VideoStream du KinectRuntime. En appelant la méthode Open avec les paramètres suivants, on lance la récupération des images.

Paramètres de la méthode Open()

Nom du parametre Type Description
streamType ImageStreamType Trois valeurs possibles sur ImageStreamType (Invalid,Video,Depth). Ce paramètre décrit le type de flux recuperer. Dans notre cas, on utilise la valeur Video.
poolSize int

Nombre d’images gardées en buffer par Kinect.

Les valeurs peuvent aller de 0 à 4.

2 est une valeur correcte pour la plupart des applications.

resolution ImageResolution

Résolution de l’image.

4 valeurs sont disponibles dans l’énumération ImageResolution, mais elles ne sont pas toutes disponibles pour tous les flux

Invalid

Resolution80x60 : capteur de profondeur uniquement. rarement utile.

Resolution320x240 : capteur de profondeur uniquement – 15 images/s.

Resolution640x480 : caméra vidéo uniquement – 30 images/s.

Resolution1280x1024 : caméra vidéo uniquement – 15 images/s – en réalité, il s’agit d’une résolution 1280×960.

En cas de valeurs erronées, la méthode Open() remonte une Exception avec le HRESULT=0x80070057

image ImageType

Type d’images/formatage des pixels de l’image.

DepthAndPlayerIndex : Formatage spécifique pour profondeur et player index (16 bits par pixel… 13 bits de profondeur/3 bits pour l’id du joueur. Nous en parlerons dans un prochain article.)

Color : Pixel couleur RGB sur 32 bits (l’ordre exact des couleurs pour chaque pixel est BGRX… 8 bits par couleur)

ColorYuv : Flux video 32 bits en YUV (voir “YUV Video” sur la MSDN pour plus d’informations)

ColorYuvRaw : Flux video 16 bits en YUV

Depth : Formatage spécifique pour la profondeur (16 bits par pixel)

 

1 public class KinectViewModel : INotifyPropertyChanged 2 { 3 [...] 4 #region Depth/PLayerIndex Stream 5 6 public BitmapSource _depthStreamImageSource; 7 public BitmapSource DepthStreamImageSource 8 { 9 get { return _depthStreamImageSource; } 10 set 11 { 12 this._depthStreamImageSource = value; 13 OnPropertyChanged("DepthStreamImageSource"); 14 } 15 } 16 17 private void InitDepthStream() 18 { 19 this.KinectRuntime.DepthFrameReady += KinectRuntime_DepthFrameReady; 20 this.KinectRuntime.DepthStream.Open(ImageStreamType.Depth, 21 2, 22 ImageResolution.Resolution320x240, 23 ImageType.Depth); 24 } 25 26 private void InitDepthAndPlayerIndexStream() 27 { 28 this.KinectRuntime.DepthFrameReady += KinectRuntime_DepthFrameReady; 29 this.KinectRuntime.DepthStream.Open(ImageStreamType.Depth, 30 2, 31 ImageResolution.Resolution320x240, 32 ImageType.DepthAndPlayerIndex); 33 } 34 35 private void KinectRuntime_DepthFrameReady(object sender, ImageFrameReadyEventArgs e) 36 { 37 this.DepthStreamImageSource = e.ImageFrame.ToBitmapSource(); 38 } 39 40 #endregion 41 [...] 42 }

On réalise la même opération pour la profondeur que pour la vidéo couleur. La seule différence résulte dans le fait que le flux vidéo peut renvoyer juste la profondeur ou la profondeur + le player Index. Chacun des deux modes s’initialisant de façon différente, on utilise deux méthodes pour lancer la récupération des images. Les deux s’abonnent au même événements et l’image, dans les deux cas, sera récupéré dans la méthode KinectRuntime_DepthFrameReady.

 

1 public class KinectViewModel : INotifyPropertyChanged 2 { 3 [...] 4 #region Skeleton tracking 5 6 private void InitSkeletonTracking() 7 { 8 throw new NotImplementedException(); 9 } 10 11 #endregion 12 13 #region Cleaning 14 15 public void Release() 16 { 17 this.KinectRuntime.Uninitialize(); 18 } 19 20 #endregion 21 22 #region INotifyPropertyChanged Interface 23 24 public event PropertyChangedEventHandler PropertyChanged; 25 public void OnPropertyChanged(string name) 26 { 27 if (this.PropertyChanged != null) 28 this.PropertyChanged(this, new PropertyChangedEventArgs(name)); 29 } 30 31 #endregion 32 33 }

La méthode InitSkeletonTracking() sera décrite dans un prochain article.

La méthode Release permet de libérer les ressources utilisées par Kinect. Pour cela, il est nécessaire, lors de la fermeture du programme ou lorsque l’on ne souhaite plus utiliser Kinect, il est nécessaire d’appeler la méthode Uninitialize() du KinectRuntime.

Code Source de l’article

Conclusion

Vous savez maintenant comment afficher des flux vidéos couleur et profondeurs provenant de Kinect ainsi que détecter si des joueurs sont visibles (dans ce cas, ils apparaissent colorés dans l’image du capteur de profondeur).

D’autres articles sont prévus sur le traitement d’images ainsi que le tracking des joueurs.

kinectappliTest

Exemple de l’application de test Kinect finale avec vidéo couleur (haut gauche)/profondeur (bas gauche)/traitement d’images (Détecteur de contour Sobel en haut à droite)/tracking de joueurs en bas à droite).

Un grand merci aux deux modèles (Gilles Peron/@GillesPeron et Kim Macrez). On se souviendra de votre sacrifice Smile.

28/01/2012

[Kinect SDK] Presentation de Kinect SDK

Filed under: C#, C++, Débutant, Jeux vidéos, Kinect — Étiquettes : , , , , , , , — sebastiencourtois @ 08:44

Cet article est le premier d’une série d’articles sur le SDK de Kinect qui sort le 1er février. Ce SDK pour PC permet de dialoguer avec Kinect en .NET ainsi qu’en C++.

Au travers de cette série d’articles, vous apprendrez à récupérer les informations que fournissent les différents capteurs Kinect. Ce post d’introduction va présenter les différentes possibilités du SDK.

 

1. Kinect : Le Matériel

kinect-hardware

Kinect est composé de :

* une camera video RGB : Il s’agit d’une caméra couleur d’une résolution 640×480 (30 images/seconde) ou 1280×960 (15 images/seconde).

* une caméra de profondeur : Il s’agit d’un laser infrarouge (capteur de gauche) qui balaie la pièce de rayon infrarouge. Ces rayons sont visualisés par un capteur infrarouge (capteur de droite). La sensibilité de ce capteur s’ajuste automatiquement en fonction des conditions de la pièce (luminosité, obstacles…) Ce capteur de profondeur a une résolution de 320×240 ou 80×60 (30 images par secondes).

* 4 microphones chargés d’enregistrer le son et de réaliser des opérations de traitements du signal afin de supprimer les parasites (bruits extérieurs, éclos…). Ce système de microphone réparti sur l’ensemble du capteur permet de détecter la direction du son et ainsi reconnaitre le joueur qui a parlé.

* Un moteur pour incliner verticalement Kinect. Kinect peut aller de –27 degrés à + 27 degrés d’inclinaison. Cela permet au développeur d’adapter la vue si elle n’est pas adéquate. (Par exemple, si on voit le corps d’une personne, mais pas sa tête, le développeur peut incliner Kinect vers le haut afin d’avoir le corps en entier.)

 

2. Le SDK et la partie logicielle de Kinect

Le SDK Kinect est disponible sur le site : Kinect For Windows.

En plus des fonctions de bases de Kinect, le SDK embarque aussi :

* Le tracking de personnes (Skeleton Tracking) : Kinect peut indiquer si elle reconnait une personne et permet de tracker 20 points du corps en temps réel.

* En plus de la récupération d’un son sans parasites, le SDK fournit des aides pour la reconnaissance de la parole basée sur l’API Windows Speech (aussi utilise dans Windows Vista et 7 pour la reconnaissance de la parole).

kinect-voicelocator

Kinect Voice Locator : Un des samples du SDK

3. Les caractéristiques techniques et limitations de Kinect

Pour la caméra vidéo, Kinect fournit des images de 640×480 (30 images/seconde) ou 1280×960 (15images/seconde). Chaque pixel est codé en BGR sur 32 bits.

Pour le capteur de profondeur, Kinect fournit des images en 320×240 (30 images/seconde). Les données du capteur de profondeur sont codées sur 13 bits. Elle représente une distance en millimètre allant de 800 mm à 4000 mm. Lorsque le tracking des personnes est actif, les données de reconnaissance des personnes sont fusionnées avec les données de profondeur. Au final, chaque pixel correspond à 16 bits (13 pour la profondeur et 3 pour l’identification d’une personne). Il est possible de tracker 2 personnes en temps réel + 4 autres personnes « passives » (les personnes sont détectes, mais il n’y a pas de tracking de leur squelette).

L’une des difficultés est que les images venant de la caméra vidéo et du capteur de profondeur ne sont pas synchronisées par le SDK. Si le développeur souhaite faire du traitement d’images en utilisant les deux capteurs, il devra réaliser lui même la synchronisation. Cela peut s’avérer difficile, car les framerates entre les capteurs peuvent être différents et ne sont pas toujours constants.

Le moteur d’inclinaison de Kinect possède aussi ses limitations. En dehors de sa plage de valeurs (allant de –27 dégrées a +27 dégrées d’inclinaison verticale), il n’est pas possible d’envoyer des ordres a Kinect plus d’une fois par secondes ou plus de quinze fois toutes les 20 secondes. Cela est du a des limitations matériel, car le moteur n’est pas conçu pour bouger constamment. De plus, le fait de bouger la caméra prend du temps et peut perturber les capteurs Kinect.

La reconnaissance de la parole est entièrement basée sur des grammaires que le développeur doit fournir. Les grammaires correspondantes aux mots à reconnaitre. Cela peut être défini dans un fichier XML ou directement dans le code.

 

4. Conclusion

Nous avons fait un petit tour du propriétaire du composant Kinect et de ses possibilités. Dans les prochains articles Kinect, nous verrons comment récupérer les différentes informations (flux vidéo & profondeur, détections et tracking de joueurs…) et comment les utiliser (traitement d’images, dessin des squelettes…).

14/06/2010

Microsoft@E3 : Conférence Microsoft 2/2 (Kinect)

Filed under: E3, Hors Catégorie, Kinect, Natal, XBOX 360 — Étiquettes : , , , , , , — sebastiencourtois @ 22:29

La conférence de Microsoft à l’E3 a été l’occasion de voir enfin Kinect (Ex Natal) en action. (Les vidéos arriveront au fur et à mesure de leur publication par Microsoft).

  • Qu’est ce que Kinect ?

Kinect  (ex Projet Natal) est un accessoire à la xbox 360 composé de de capteurs et de caméras noir et blanc ainsi que de rayon infrarouge permettant ainsi de reconnaitre les mouvements d’une personne dans l’espace avec une bonne précision. Vous pouvez ainsi jouer sans manette. Le but (plus ou moins avoué) de Microsoft est tout simplement de fournir un concurrent à la Wii voire de la dépasser et ainsi conquérir le cœur des joueurs casuals.

Big Brother is watching you

Remarque : Certains d’entre vous auront peut être remarqué que l’utilisation des rayons infrarouge est aussi utilisé par la table Surface.

  • Comment ça marche en interne ?

Si vous vous demandez comment Microsoft a réussi à réaliser cet outil de reconnaissance de personnes, je vous conseille l’article suivant (en anglais). Pour faire simple, ils ont enregistré pendants des heures de nombreuses personnes se déplaçant devant l’accessoire en lui décrivant chaque mouvement (en gros, on lui montre 10 M photos de mains différentes en lui répétant que c’est une main… au bout d’un moment elle comprend et sait reconnaitre une main). Alliant ce gros flux de données corporelles et des algorithmes d’intelligence artificielle (Algorithmes génétiques+apprentissage à  mon avis), on obtient un système (appelé TheBrain).Celui-ci est capable de reconnaitre, à partir des flux vidéos, les parties du corps (30 parties du corps) et ainsi analyser les mouvements de chaque membre en temps réel (30 images/sec …). Il faut aussi rappeler que Kinect peut gérer plusieurs personnes en même temps ce qui montre que l’optimisation du système a du être poussée au maximum.

  • XBOX LIVE et Kinect

La démo faite à l’E3 est assez révélatrice des possibilités de la bête. Une personne se met devant sa télé et fait un signe de la main puis est reconnu directement par le système.Son avatar se met alors à bouger comme lui. Ainsi il a juste à pointé de la main vers la télé pour faire apparaitre un curseur (comme avec une Wiimote). L’utilisateur peut aussi parler et donner des ordres comme “Xbox Play Movie” pour le film sélectionné. Une combinaison des mouvements et de la parole (car Kinect contient un micro) est donc possible grâce à Kinect.

Il est aussi possible de chat par vidéo grâce à cette accessoire qui est monté sur un petit moteur. Celui-ci lui permet de suivre l’utilisateur lors de ses déplacement dans la pièce (pas plus loin … c’est une caméra pas un robot :)).

  • “The time of talk is over !!!” … Les jeux

On attendait beaucoup des jeux présentés pour cet accessoire. 8 jeux ont été présentés et ils seront au nombre de 15 au lancement de la console.

    • Kinectimals

C’est connu, les enfants adorent les animaux. Microsoft a donc créé un logiciel où l’on peut joueur avec des animaux grâce à Kinect. La démo a montré une gamine jouer avec un bébé tigre dans une forêt.Saut,roulade,faire le mort,sauter à la corde, la petite fille s’éclate avec son bébé tigre comme si c’était un vrai en lui donnant des ordres exécutés instantanément par le félin.

Remarque : La vidéo est une version courte de ce qui a été présenté.

Adorant les animaux (et surtout les bébés animaux), j’ai trouvé cette démo attendrissante d’autant que le “contact” animal/enfant semble bien rendu. Graphiquement, c’est assez beau (surtout la fourrure des animaux). Seul petit bémol tout de même avec la présence d’un flou continuel qui ne permet pas d’apprécier l’ensemble de l’environnement à sa juste valeur. Reste à savoir s’il y a un gameplay intéressant. On nous promet 40 animaux différents et 30 activités. J’ai un peu peur que cela ressemble trop au Eye Pet sur PS3 dont je trouvais le concept super (oui je suis un grand gamin :)) mais très limité au niveau activité.

Cela me rappelle une démo qui m’avait marqué l’an dernier lors de l’annonce de Natal :

    • KinectSport

Comme dit précédemment, Microsoft va pomper chez les concurrents et ne s’en cache pas. Ainsi KinectSport est une reproduction de WiiSport à quelque détails près. Tout d’abord le moteur graphique, même s’il reste un peu cartoon avec la possibilité de jouer avec ses avatars xbox, est graphiquement bien supérieur à ce qui se fait sur Wii aujourd’hui. De plus, il y a une plus grand variété d’épreuves : foot / bowling / athlétisme (course de haie, javelot,saut en longueur …) / ping pong  / boxe  / beach volley.

    • Kinect Joy Ride

Clone de Mario Kart avec sensiblement le même gameplay et graphiquement supérieur tout en restant cartoon (avatar xbox 360). Au vu de la démo, je n’ai pas trouvé ça si intéressant que ça. Reste à savoir quand je l’aurais en main.

    • Kinect Adventure

jeu d’aventure dans lequel vous devrez éviter des obstacles seul ou a plusieurs (sorte de tetris humain), vous devrez chevauchez des nuages ou encore descendre des chutes d’eau en canoé. Graphiquement joli (notamment le rendu de l’eau et des éclaboussures) mais toujours cartoon (avec les avatar). Semble assez fun en multi coopération.

    • YourShape (by UbiSoft)

Premier éditeur indépendant à dégainer sur Kinect, UbiSoft (cocorico) qui sort un clone de WiiFit : YourShape.Divisé en 4 grandes sections ( art martiaux, yoga,fitness, mini jeux), il permet de s’entrainer et/ou de se maintenir en forme tout en s’amusant. Certains diront que WiiFit est déjà là et que ce n’est qu’un clone de plus sur le marché du fitness. Toutefois le plus de YourShape est que, avec Kinect, les mouvements sont vérifié visuellement et non plus selon la pression (aléatoire parfois) sur la Wii board. La démo effectué de chacune des sections est sympathique.

 

    • Dance Central (by Harmonix)

Jeu de Dance qu’on pourrait qualifier de clone (encore !) de Just Dance sur Wii. Toutefois c’est encore la puissance de Kinect et la précision de la capture qui devrait permettre au jeu de s’imposer contre la précision aléatoire du jeu Wii (certains se reconnaitront :)). De plus les chorégraphies sont a base de routines bien expliquées et un mode entrainement pour les néophytes permet de rentrer facilement dans le jeu. Enfin le background est en 3D et reproduit vos mouvements :). Pour les musique, principalement de la pop,hip hop,r’n’b (Lady gaga, NoDoubt …).

 

    • Projet secret (by LucasArt)

Un projet initié avec LucastArt sur l’univers Star Wars a été dévoilé permettant à tous les fan-boys d’incarner un jedi en vrai. Un court vidéo de gameplay a été montré et … grosse déception. Les mouvements sont lent et les déplacements du sabre aléatoire parfois ne touchant pas l’ennemi qui tombe. Bref déçu par le gameplay et un moteur graphique correct mais sans claque visuelle (pourtant on joue pas avec un avatar là je crois). Le projet n’est pas prévu avant 2011 donc on espère que ce sera plus au point la prochaine fois.

    • Forza Motorsport Kinect

La référence des jeux de voiture sur XBOX reviendra en 2011 avec un jeu magnifique compatible Kinect. Quelques vidéos de gameplay qui ressemble au dernier opus et un essai d’une Ferrari très belle. ça promet d’envoyer du lourd et ça sera en 2011.

  • Remarques diverses :

Lorsque l’on joue à certains jeux, Kinect prend des photos,vidéos de vous en train de jouer. Celles-ci sont récupérables et il est possible de les envoyer sur Facebook (histoire de pourrir les albums des potes c’est génial).

Il y a une phase de reconnaissance plus longue lors de la première utilisation afin de scanner le corps et le reconnaitre rapidement les fois suivantes. Certains jeux arrivent à détecté lorsque l’utilisateur enlève ou met un vêtements (réalité augmenté dans les futurs jeux XBOX 360 … je vais chercher  ma cape harry potter :)).

  • Conclusion :

Sortie annoncé  : 4 Novembre 2010 aux US (inconnu en France… surement une semaine à un mois après). 15 jeux promis à la sortie. Les rumeurs annoncent un prix plus bas pour ces jeux que les jeux 360 habituels.

Prix : Inconnu pour le moment. Les rumeurs parlent de deux versions (une fixe et une avec caméra qui suit la personne). La version “suiveuse” serait la plus cher à 180 $.

Kinect sur PC : ??? 😦

Kinect via XNA : ??? 😦

Avis : Mitigé. Je suis très emballé par la technologie et je pense que, comme Surface, les développeurs n’ont pas encore pensé leur “Kinect” à fond. Donc on aura un grand temps d’expérimentation de la part des éditeurs avant de  trouver des nouveaux paradigmes de gameplay et de jeux (comme cela a été le cas pour la Wii). Mes grandes craintes sont le prix et la fiabilité du système qui promet beaucoup mais qui, d’après les rumeurs, ne marche pas si bien que cela (pour l’instant le  grand public n’a pas pu y toucher… cela changera peut être dès demain au salon).

Pour terminer, je dirais que Microsoft a frappé un grand coup ce soir mais risque d’avoir dégainé  trop tard face à une Wii déja trop implanté dans la culture vidéo ludique mondiale. Microsoft aurait sorti ce système il y a deux/trois ans,il aurait été les rois du pétrole. Aujourd’hui, il tente un coup de poker pour récupérer le public casual avec un très bon produit mais il néglige clairement les hardcore gamer qui l’ont fait vivre jusqu’à maintenant. En espérant que la sauce prenne …

Bonus : La vidéo de promotion :

Microsoft@E3 : Conférence Microsoft 1/2

Filed under: Débutant, E3, Hors Catégorie, Kinect, Natal, XBOX 360 — Étiquettes : , , , , , , — sebastiencourtois @ 21:59

La conférence Microsoft de E3 vient de se terminer.

Revenons un peu sur ce qui a été montré et annoncé (je mettrais les liens vidéos au fur et à mesure de leur parution

(Note : je parlerai de Kinect dans un post suivant) :

  • La XBOX a 10 ans
  • Metal Gear Rising (Sortie 2011)

Hidéo Kojima est venu présenter son Metal Gear Rising avec un trailer et quelques vidéos de gameplay. Au vue de ces vidéos, je pense que le coté infiltration a été mise de coté pour fournir un beat-them-all au sabre avec un moteur graphique/physique qui assez impressionnant/précis.

  • Gears of Wars 3 (Fin 2010 / 2011)

Démo de gameplay multi (à 4) en coopération. Environnement vaste et impressionant graphiquement. Le jeu reste bien bourrin avec un bestiaire.

  • Fable 3 (Sortie : Fin 2010)

Trailer  ultra rapide du dernier né de Peter Molyneux. Deux ans après le dernier épisode, je n’ai pas trouvé que le moteur graphique s’était grandement améliorer. Maintenant reste à voir le gameplay libre qui tient très à cœur à Peter. J’aurais aimé une petit annonce de compatibilité avec Kinect (surtout vu la démo impressionnante de l’E3 2009) mais il n’a rien dit. 

  • Kindoms (de Crytek)

Trailer énigmatique montrant un guerrier de l’antiquité en sang… ce qui étonne c’est que personne n’avait parlé d’un projet Crytek sur XBOX 360 (exclusif en plus) à part le très attendu Crysis 2… on reste quand même sur notre faim…  plus de réponses dans cet E3 ou en 2011.

  • Halo Reach

Une démo du jeu solo. Pas de grande nouveautés depuis la béta publique multi-joueurs.

  • XBOX LIVE :

Microsoft annonce qu’il y a 25 Millions d’utilisateurs inscrit sur la plateforme

Il est mainteinant possible de regarder/écouter les vidéos/musique/photos à plusieurs tout en chattant (vidéo/audio/text).

Un partenariat a été signé entre ESPN et Microsoft pour fournir du foot US (College football uniquement), Basket et Soccer directement sur le 360. Apparemment, ce service serait gratuit pour les membres XBOX LIVE GOLD (à vérifier).

  • XBOX 360 SLIM

Une nouvelle 360 est disponible dès aujourd’hui au même prix que la précédent. Elle inclus le WIFI (Norme N) par défaut + HDD 250 Go. Je pense aussi que les composants internes sont plus fiables que les versions précédents. Elle a été aussi complètement redesigné et est beaucoup moins encombrantes.

Conclusion et avis sur cette conférence :

Si on excepte Kinect, la conférence a été pauve en annonce et Microsoft a voulu privilégié le casual gaming par rapport aux hardcore gamer (Peter Molineux est resté 30 secondes chrono sur scène :)). On sent clairement une intention de vouloir marcher sur les platebande de la Wii… malheureusement avec 2 ou 3 ans de retard.

Bref pas grand chose à se mettre sous la dent à part du Kinect…

Propulsé par WordPress.com.

%d blogueurs aiment cette page :