DE102018217898A1 - Verschiedene Perspektiven aus einer gemeinsamen virtuellen Umgebung - Google Patents

Verschiedene Perspektiven aus einer gemeinsamen virtuellen Umgebung Download PDF

Info

Publication number
DE102018217898A1
DE102018217898A1 DE102018217898.4A DE102018217898A DE102018217898A1 DE 102018217898 A1 DE102018217898 A1 DE 102018217898A1 DE 102018217898 A DE102018217898 A DE 102018217898A DE 102018217898 A1 DE102018217898 A1 DE 102018217898A1
Authority
DE
Germany
Prior art keywords
virtual environment
virtual
mode
view
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102018217898.4A
Other languages
English (en)
Inventor
Robert Wesley Murrish
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honda Motor Co Ltd
Original Assignee
Honda Motor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Publication of DE102018217898A1 publication Critical patent/DE102018217898A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/847Cooperative playing, e.g. requiring coordinated actions from several players to achieve a common goal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Einem oder mehreren Aspekten gemäß werden hierin Systeme und Verfahren zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung beschrieben. Ein virtuelles Umgebungsmodell, das mit einer virtuellen Umgebung assoziiert ist, einschließlich eines ersten virtuellen Objekts, das mit virtuellen Umgebungskoordinaten assoziiert ist, eines ersten Satzes Funktionen, der einem ersten virtuellen Umgebungsmodus entspricht, und eines zweiten Satzes Funktionen, der einem zweiten virtuellen Umgebungsmodus entspricht, kann in einer Datenbank gespeichert sein. Eine virtuelle Umgebungs-Engine kann eine erste virtuelle Umgebungsansicht des ersten virtuellen Objekts basierend auf dem ersten virtuellen Umgebungsmodus generieren und eine zweite virtuelle Umgebungsansicht des ersten virtuellen Objekts basierend auf dem zweiten virtuellen Umgebungsmodus generieren. Die erste virtuelle Umgebungsansicht und die zweite virtuelle Umgebungsansicht werden jeweils zeitgleich auf verschiedenen Vorrichtungen gerendert.

Description

  • STAND DER TECHNIK
  • Wahrhaft immersive virtuelle Realitäts- und Augmented-Reality-Systeme können Umgebungen schaffen, die das Wahrnehmungssystem eines Benutzers in computergenerierte Stimuli eintauchen lassen (z. B. eine virtuelle Welt oder eine virtuelle Umgebungsansicht). Üblicherweise fesseln diese Systeme die Sinne des Benutzers, während sie Stimuli der physischen Welt verdrängen. Die virtuelle Welt kann infolge einer Eingabe des Benutzers und/der einer Interaktion des Benutzers mit der virtuellen Welt verändert werden.
  • Obwohl ein Ziel dieser Systeme die Schaffung einer immersiven Umgebung ist, kann die physische Welt dennoch benutzt werden, um einen Kontext für die immersive Umgebung bereitzustellen. Insbesondere kann es wichtig sein, die Umgebung und den Kontext des Benutzers in Betracht zu ziehen. Beispielsweise können im Kontext des Benutzers in einem Fahrzeug die immersiven virtuellen Realitäts- und Augmented-Reality-Systeme Informationen über den Benutzer, das Fahrzeug und den Benutzer im Verhältnis zum Fahrzeug in Betracht ziehen. Diese Informationen können benutzt werden, um eine immersive Umgebung zu generieren, die auf den Benutzer und die Umgebung des Benutzers zugeschnitten ist, und kann es dem Benutzer ermöglichen, die immersive Umgebung bequem wahrzunehmen.
  • KURZDARSTELLUNG
  • Einem oder mehreren Aspekten gemäß kann ein System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung eine Datenbank, einen Arbeitsspeicher und einen Prozessor einschließlich einer virtuellen Umgebungs-Engine beinhalten. Die Datenbank kann ein virtuelles Umgebungsmodell speichern, das mit einer virtuellen Umgebung assoziiert ist, einschließlich eines ersten virtuellen Objekts, das mit virtuellen Umgebungskoordinaten assoziiert ist, eines ersten Satzes Funktionen, der einem ersten virtuellen Umgebungsmodus entspricht, und eines zweiten Satzes Funktionen, der einem zweiten virtuellen Umgebungsmodus entspricht. Der Arbeitsspeicher kann eine oder mehrere Anweisungen speichern. Die virtuelle Umgebungs-Engine kann eine oder mehrere der im Arbeitsspeicher gespeicherten Anweisungen ausführen, um eine erste virtuelle Umgebungsansicht des ersten virtuellen Objekts basierend auf dem ersten virtuellen Umgebungsmodus generieren und eine zweite virtuelle Umgebungsansicht des ersten virtuellen Objekts basierend auf dem zweiten virtuellen Umgebungsmodus generieren. Die erste virtuelle Umgebungsansicht und die zweite virtuelle Umgebungsansicht werden jeweils zeitgleich auf verschiedenen Vorrichtungen gerendert. Das erste virtuelle Objekt hat ein erstes Rendering in der ersten virtuellen Umgebungsansicht und ein zweites Rendering in der zweiten virtuellen Umgebungsansicht, das sich von dem ersten Rendering unterscheidet.
  • Die erste virtuelle Umgebungsansicht des ersten virtuellen Objekts kann auf einer ersten Vorrichtung gerendert werden und die zweite virtuelle Umgebungsansicht des ersten virtuellen Objekts kann auf einer zweiten Vorrichtung gerendert werden. Die erste Vorrichtung und der erste virtuelle Umgebungsmodus können mit einem ersten Benutzertyp assoziiert sein und die zweite Vorrichtung und der zweite virtuelle Umgebungsmodus können mit einem zweiten Benutzertyp assoziiert sein. Der Benutzertyp kann basierend auf Demografiken, die mit einem Benutzer assoziiert sind, oder vom Benutzer getroffenen Auswahlen in Bezug auf ein Spiel-Genre, ein ausgewähltes Spiel, einen ausgewählten Avatar, Spielbewertungen, vorheriges Gameplay definiert sein.
  • Das erste virtuelle Objekt kann ein erster Benutzer sein. Das erste Rendering des ersten Benutzers kann mit einem ersten Skin gerendert werden und das zweite Rendering des ersten Benutzers kann mit einem ersten Skin gerendert werden. Der erste Satz Funktionen kann eine erste Dialogfunktion beinhalten und der zweite Satz Funktionen kann eine zweite Dialogfunktion beinhalten. Der erste virtuelle Umgebungsmodus und der zweite virtuelle Umgebungsmodus können virtuelle Umgebungsmodus-Datentypen sein. Die Datenbank kann einen Ansichtsklassenknoten einschließlich Funktionen zum Generieren der ersten virtuellen Umgebungsansicht oder der zweiten virtuellen Umgebungsansicht jeweils basierend auf dem ersten virtuellen Umgebungsmodus und dem zweiten virtuellen Umgebungsmodus als virtuelle Umgebungsmodus-Datentypen speichern.
  • Die virtuelle Umgebung kann ein zweites virtuelles Objekt, das mit virtuellen Umgebungskoordinaten assoziiert ist, einen ersten Satz Funktionen, der dem ersten virtuellen Umgebungsmodus entspricht, und einen zweiten Satz Funktionen, der dem zweiten virtuellen Umgebungsmodus entspricht, beinhalten. Die virtuelle Umgebungs-Engine oder der Prozessor können die erste virtuelle Umgebungsansicht des zweiten virtuellen Objekts basierend auf dem ersten virtuellen Umgebungsmodus generieren und die zweite virtuelle Umgebungsansicht des zweiten virtuellen Objekts basierend auf dem zweiten virtuellen Umgebungsmodus generieren. Die erste virtuelle Umgebungsansicht und die zweite virtuelle Umgebungsansicht des zweiten virtuellen Objekts kann jeweils zeitgleich auf den verschiedenen Vorrichtungen gerendert werden. Das zweite virtuelle Objekt kann eine nicht spielbare Figur sein.
  • Der erste Satz Funktionen kann eine Eins-zu-eins-Auslöserentsprechung mit dem zweiten Satz Funktionen aufweisen. Der erste Satz Funktionen kann eine Eins-zu-eins-Animationsentsprechung mit dem zweiten Satz Funktionen aufweisen. Der erste Satz Funktionen kann eine Eins-zu-eins-Argumententsprechung mit dem zweiten Satz Funktionen aufweisen.
  • Gemäß einem oder mehreren Aspekten kann ein System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung eine Datenbank, einen Arbeitsspeicher und einen Prozessor einschließlich einer virtuellen Umgebungs-Engine beinhalten. Die Datenbank kann ein virtuelles Umgebungsmodell, das mit einer virtuellen Umgebung assoziiert ist, einschließlich eines virtuellen Objekts, das mit virtuellen Umgebungskoordinaten assoziiert ist, einer ersten Funktion, die einem ersten virtuellen Umgebungsmodus entspricht, und einer zweiten Funktion, die einem zweiten virtuellen Umgebungsmodus entspricht, speichern. Der Arbeitsspeicher kann eine oder mehrere Anweisungen speichern. Die virtuelle Umgebungs-Engine des Prozessors kann eine oder mehrere der in dem Arbeitsspeicher gespeicherten Anweisungen ausführen, um eine erste virtuelle Umgebungsansicht des virtuellen Objekts basierend auf einem ersten virtuellen Umgebungsskin des ersten virtuellen Umgebungsmodus zu generieren und eine zweite virtuelle Umgebungsansicht des virtuellen Objekts basierend auf einem zweiten virtuellen Umgebungsskin des zweiten virtuellen Umgebungsmodus zu generieren, das sich von dem ersten virtuellen Umgebungsskin unterscheidet. Die erste virtuelle Umgebungsansicht und die zweite virtuelle Umgebungsansicht kann jeweils zeitgleich auf den verschiedenen Vorrichtungen gerendert werden.
  • Das erste virtuelle Umgebungsskin der ersten virtuellen Umgebungsansicht des virtuellen Objekts kann mit einer ersten Größe assoziiert sein, und das zweite virtuelle Umgebungsskin der zweiten virtuellen Umgebungsansicht des virtuellen Objekts kann mit einer zweiten Größe assoziiert sein, die sich von der ersten Größe unterscheidet.
  • Einem oder mehreren Aspekten gemäß kann ein System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung kann eine Datenbank, einen Arbeitsspeicher, eine erste Vorrichtung und eine zweite Vorrichtung beinhalten. Die Datenbank kann ein virtuelles Umgebungsmodell speichern, das mit einer virtuellen Umgebung assoziiert ist, einschließlich eines virtuellen Objekts, das mit virtuellen Umgebungskoordinaten assoziiert ist, einer ersten Funktion, die einem ersten virtuellen Umgebungsmodus entspricht, und einer zweiten Funktion, die einem zweiten virtuellen Umgebungsmodus entspricht. Der Arbeitsspeicher kann eine oder mehrere Anweisungen speichern. Die erste Vorrichtung kann eine virtuellen Umgebungs-Engine beinhalten, der eine oder mehrere auf dem Arbeitsspeicher gespeicherte Anweisungen ausführt, um ein Rendern einer ersten virtuellen Umgebungsansicht des virtuellen Objekts basierend auf dem ersten virtuellen Umgebungsmodus durchzuführen. Die zweite Vorrichtung kann eine virtuellen Umgebungs-Engine beinhalten, der eine oder mehrere auf dem Arbeitsspeicher gespeicherte Anweisungen ausführt, um ein Rendern einer zweiten virtuellen Umgebungsansicht des virtuellen Objekts basierend auf dem zweiten virtuellen Umgebungsmodus durchzuführen. Das virtuelle Objekt kann als ein erstes Objekt in der ersten virtuellen Umgebungsansicht gerendert werden und als ein zweites Objekt in der zweiten virtuellen Umgebungsansicht gerendert werden, das sich von dem ersten Objekt unterscheidet.
  • Die erste Vorrichtung kann mit einer ersten Eingabe und einer zweiten Eingabe assoziiert sein. Die zweite Vorrichtung kann mit einer ersten Eingabe und einer zweiten Eingabe assoziiert sein. Der Empfang der ersten Eingabe an der ersten Vorrichtung kann die erste Funktion auslösen und der Empfang der ersten Eingabe an der zweiten Vorrichtung kann die zweite Funktion auslösen. Die erste und die zweite Funktion können entsprechende Animationen aufweisen.
  • Figurenliste
    • 1 ist eine schematische Ansicht einer beispielhaften Betriebsumgebung für ein System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten.
    • 2 ist eine schematische Ansicht des Systems zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten.
    • 3 ist ein Blockdiagramm der beispielhaften virtuellen Umgebungs-Engine aus 1 gemäß einem oder mehreren Aspekten.
    • 4 ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten.
    • 5 ist ein Ablaufdiagramm eines beispielhaften Verfahrens zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten.
    • 6 ist ein Diagramm eines beispielhaften virtuellen Umgebungsmodells einschließlich Datenfluss gemäß einem oder mehreren Aspekten.
    • 7 ist ein beispielhaftes schematisches Klassendiagramm einer virtuellen Umgebung einschließlich des virtuellen Umgebungsmodells aus 6 gemäß einem oder mehreren Aspekten.
    • 8 ist eine beispielhafte erste virtuelle Umgebungsansicht gemäß einem oder mehreren Aspekten.
    • 9 ist eine beispielhafte zweite virtuelle Umgebungsansicht, die der ersten virtuellen Umgebungsansicht aus 8 entspricht, gemäß einem oder mehreren Aspekten.
    • 10 ist eine weitere beispielhafte erste virtuelle Umgebungsansicht gemäß einem oder mehreren Aspekten.
    • 11 ist eine weitere beispielhafte zweite virtuelle Umgebungsansicht, die der ersten virtuellen Umgebungsansicht aus 10 entspricht, gemäß einem oder mehreren Aspekten.
    • 12 ist eine beispielhafte Ansicht einer Realweltumgebung, auf der eine virtuelle Umgebungsansicht basieren kann, gemäß einem oder mehreren Aspekten.
    • 13 ist eine schematische Ansicht einer beispielhaften Systemarchitektur, die das hierin beschriebene virtuelle Umgebungssystem implementiert, gemäß einem oder mehreren Aspekten.
    • 14A-B stellen eine beispielhafte erste und zweite virtuelle Umgebungsansicht einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten dar.
    • 15A-B stellen eine beispielhafte erste und zweite virtuelle Umgebungsansicht einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten dar.
    • 16A-B stellen eine beispielhafte erste und zweite virtuelle Umgebungsansicht einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten dar.
    • 17 ist eine Veranschaulichung eines beispielhaften computerlesbaren Mediums oder einer computerlesbaren Vorrichtung einschließlich prozessorausführbarer Anweisungen, dazu konfiguriert, gemäß einem oder mehreren Aspekten eine oder mehrere der hierin beschriebenen Bereitstellungen auszuführen.
    • 18 ist eine Veranschaulichung einer beispielhaften Rechenumgebung, in der eine oder mehrere der hierin beschriebenen Bereitstellungen gemäß einem oder mehreren Aspekten implementiert sind.
  • DETAILLIERTE BESCHREIBUNG
  • 1 ist eine schematische Ansicht einer beispielhaften Betriebsumgebung für ein System 100 zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten. Das System 100 zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung kann eine Rechenvorrichtung 102 beinhalten. Die Rechenvorrichtung 102 kann einen Prozessor 104, einen Arbeitsspeicher 106, eine Festplatte 108, ein globales Positionierungssystem (GPS) 110, eine Eingabe-/Ausgabeschnittstelle 112 und einen Bus 114 beinhalten, der die jeweiligen Komponenten miteinander verbindet. Der Prozessor 104 kann eine virtuelle Umgebungs-Engine 116 beinhalten. Die Festplatte 108 und die virtuelle Umgebungs-Engine 116 können dazu konfiguriert sein, verschiedenen Benutzern basierend auf einer einzigen virtuellen Umgebung, die auf der Festplatte 108 gespeichert ist, mehrfache virtuelle Umgebungsansichten zu präsentieren. Der Arbeitsspeicher 106 kann eine oder mehrere Anweisungen speichern und der Prozessor 104 oder dessen virtuelle Umgebungs-Engine 116 können eine oder mehrere auf dem Arbeitsspeicher 106 gespeicherte Anweisungen ausführen, um das Generieren einer oder mehrerer virtueller Umgebungsansichten wie hierin im Folgenden beschrieben durchzuführen. Das System 100 kann je nach Betriebsumgebung eine Schnittstelle zu anderen Systemen oder Komponenten aufweisen oder mit diesen kommunizieren. Beispielsweise kann das System 100 eine Schnittstelle mit einem oder mehreren Fahrzeugsystemen 118, einem oder mehreren Fahrzeugsensoren 120 aufweisen oder mit diesen kommunizieren oder über ein Netzwerk 122 mit anderen Rechenvorrichtungen wie etwa Servern kommunizieren.
  • Letztlich können eine oder mehrere Vorrichtungen 124, wie zum Beispiel ein virtuelle Realitätskopfhörer, ein Rendering-Feed von der virtuellen Umgebungs-Engine 116 des Systems 100 empfangen. In anderen Ausführungsformen kann sich die virtuelle Umgebungs-Engine 116 auf einem der Server (nicht gezeigt) über dem Netzwerk 122 befinden, und zugehörige Berechnungen oder Verarbeitung können entfernt durchgeführt werden. Die Vorrichtung 124 kann eine tragbare Vorrichtung sein (z. B. ein Smartphone usw.).
  • Einem oder mehreren Aspekten gemäß kann die virtuelle Umgebung basierend auf einer Realweltumgebung generiert werden. Beispielsweise können die Fahrzeugsensoren 120 ein oder mehrere Merkmale der Realweltumgebung erfassen, erkennen oder ertasten und die virtuelle Umgebung entsprechend aufbauen, wie in 12 ausführlicher beschrieben.
  • 2 ist eine schematische Ansicht des Systems 100 zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten. In 2 beinhaltet das System 100 den Prozessor 104, der die virtuelle Umgebungs-Engine 116 beinhaltet, den Arbeitsspeicher 106, eine Datenbank 108 (z. B. als die Festplatte 108 aus 1 ausgeführt) und eine Kommunikationsschnittstelle 112 (z. B. als die Eingabe-/Ausgabeschnittstelle 112 aus 1 ausgeführt). Über die Kommunikationsschnittstelle 112 kann das System 100 verschiedenen Vorrichtungen einen oder mehrere Rendering-Feed bereitstellen. Beispielsweise kann eine erste Vorrichtung, wie etwa eine mobile Vorrichtung oder ein Smartphone 224a, ein erstes Rendering-Feed empfangen, ein Tablet 224b kann ein zweites Rendering-Feed empfangen, und ein virtueller Realitätskopfhörer 224c kann ein drittes Rendering-Feed über die Kommunikationsschnittstelle 112 von der virtuellen Umgebungs-Engine 116 des Systems 100 empfangen. Die Vorrichtungen 124 aus 1 können unter anderem ein beliebiges von dem Smartphone 224a, dem Tablet 224b oder dem virtuellen Realitätskopfhörer 224c aus 2 beinhalten. Die Rendering-Feed können eine oder mehrere virtuelle Umgebungsansichten (z. B. können eine oder mehrere nacheinander generierte virtuelle Umgebungsansichten eine Animation für das Rendering-Feed bilden) beinhalten, die von der virtuellen Umgebungs-Engine 116 des Prozessors 104 generiert werden.
  • 3 ist ein Blockdiagramm der beispielhaften virtuellen Umgebungs-Engine 116 aus 1 gemäß einem oder mehreren Aspekten. Die virtuelle Umgebungs-Engine 116 kann Daten, die mit einer virtuellen Umgebung assoziiert sind, verwalten oder generieren. Diese Daten, die mit der virtuellen Umgebung assoziiert sind, können als ein virtuelles Umgebungsmodell 310 bezeichnet werden und in der Datenbank 108 aus 2 gespeichert sein. Deshalb kann die Datenbank 108 die virtuelle Umgebung oder die mit ihr assoziierten Daten speichern, wie etwa das virtuelle Umgebungsmodell 310. Das virtuelle Umgebungsmodell 310 kann ein oder mehrere virtuelle Objekte beinhalten (z. B. ein erstes virtuelles Objekt, ein zweites virtuelles Objekt, ein drittes virtuelles Objekt usw.), die mit entsprechenden virtuellen Umgebungskoordinaten assoziiert sind. Jedes virtuelle Objekt kann mit unterschiedlichen Sätzen von Funktionen assoziiert sein, wie zum Beispiel einem ersten Satz Funktionen, der einem ersten virtuellen Umgebungsmodus entspricht, und einem zweiten Satz Funktionen, der einem zweiten virtuellen Umgebungsmodus entspricht. Der erste Satz Funktionen kann eine erste Funktion beinhalten und der zweite Satz Funktionen kann einen zweiten Satz Funktionen beinhalten. Somit kann die erste Funktion dem ersten virtuellen Umgebungsmodus entsprechen und die zweite Funktion kann dem zweiten virtuellen Umgebungsmodus entsprechen.
  • Beispielsweise kann das erste virtuelle Objekt virtuellen Umgebungskoordinaten, einem ersten Satz Funktionen, die dem ersten virtuellen Umgebungsmodus entsprechen, und mit einem zweiten Satz Funktionen, die dem zweiten virtuellen Umgebungsmodus entsprechen, assoziiert sein. Ähnlich kann das zweite virtuelle Objekt virtuellen Umgebungskoordinaten und einem (z. B. seinem eigenen) Satz Funktionen, die dem ersten visuellen Umgebungsmodus entsprechen, und mit einem zweiten Satz Funktionen, die dem zweiten virtuellen Umgebungsmodus entsprechen, assoziiert sein.
  • Virtuelle Objekte können Objekte, Personen oder Figuren repräsentieren oder auf diese hinweisen (z. B. andere Benutzer oder nicht spielbare Figuren) und mit verschiedenen Sätzen von Eigenschaften, Charakteristika, Reaktionen, Dialog usw. assoziiert sein, die durch die verschiedenen Sätze von Funktionen oder Knoten ausgeführt sind, die mit dem virtuellen Objekt assoziiert sind.
  • Die virtuelle Umgebungs-Engine 116 kann verschiedene virtuelle Umgebungsansichten desselben virtuellen Objekts basierend auf dem entsprechenden virtuellen Umgebungsmodus generieren, wie im Folgenden ausführlicher beschrieben wird. Beispielsweise kann die virtuelle Umgebungs-Engine 116 des Prozessors 104 eine erste virtuelle Umgebungsansicht (z. B. erste Perspektive) des ersten virtuellen Objekts basierend auf dem ersten virtuellen Umgebungsmodus und eine zweite virtuelle Umgebungsansicht (z. B. zweite Perspektive) basierend auf dem zweiten virtuellen Umgebungsmodus generieren. Die virtuelle Umgebungs-Engine 116 kann somit Ansichten für jedes virtuelle Objekt in der virtuellen Umgebung generieren. Als weiteres Beispiel kann die virtuelle Umgebungs-Engine 116 des Prozessors 104 die erste virtuelle Umgebungsansicht des zweiten virtuellen Objekts basierend auf dem ersten virtuellen Umgebungsmodus generieren und die zweite virtuelle Umgebungsansicht des zweiten virtuellen Objekts basierend auf dem zweiten virtuellen Umgebungsmodus generieren.
  • Anders ausgedrückt kann die virtuelle Umgebungs-Engine 116 des Prozessors 104 eine erste virtuelle Umgebungsansicht des virtuellen Objekts basierend auf einem ersten virtuellen Umgebungsskin, das mit dem ersten Umgebungsmodus assoziiert ist, generieren, und die zweite virtuelle Umgebungsansicht des virtuellen Objekts basierend auf dem zweiten virtuellen Umgebungsskin, das mit dem zweiten virtuellen Umgebungsmodus assoziiert ist, generieren. Das zweite virtuelle Umgebungsskin, das mit dem zweiten virtuellen Umgebungsmodus assoziiert ist, kann sich von dem ersten virtuellen Umgebungsskin unterscheiden. Ferner können die virtuellen Umgebungsskins mit verschiedenen virtuellen Objekteigenschaften assoziiert sein.
  • Beispielsweise kann das erste virtuelle Umgebungsskin für das virtuelle Objekt mit einer ersten Größe, einer ersten Form, einer ersten Farbe usw. assoziiert sein. Das zweite virtuelle Umgebungsskin der zweiten virtuellen Umgebungsansicht des virtuellen Objekts kann mit einer zweiten Größe (die sich von der ersten Größe unterscheidet), einer zweiten Form (die sich von der ersten Form unterscheidet), einer zweiten Farbe (die sich von der ersten Farbe unterscheidet) usw. assoziiert sein. In jedem Fall unterscheidet sich die Wahrnehmung, Perspektive oder Ansicht zwischen verschiedenen Benutzern, wenn sich ihre jeweiligen virtuellen Umgebungsmodi unterscheiden oder unterschiedliche Wert aufweisen (z. B. erlebt der Benutzer 802 aus 8 einen ersten Modus und der Benutzer 902 aus 9 erlebt einen zweiten Modus, wie im Folgenden ausführlicher erläutert).
  • Auf diese Weise erlebt ein erster Benutzer, dem die erste virtuelle Umgebungsansicht präsentiert wird, das erste virtuelle Objekt anders als ein zweiter Benutzer, dem die zweite virtuelle Umgebungsansicht präsentiert wird, obwohl die beiden Benutzer dasselbe virtuelle Objekt (z. B. das erste virtuelle Objekt) aus demselben Winkel in der virtuellen Umgebung zur selben Zeit mit ähnlicher Ausrüstung nach Bereitstellung ähnlicher Eingaben (z. B. haben beide Benutzer eine „A“-Schaltfläche gedrückt) usw. betrachten. Somit kann die virtuelle Umgebungs-Engine 116 (und Module desselben) das Generieren mehrfacher virtueller Umgebungsansichten der virtuellen Umgebung ermöglichen, die von verschiedenen Benutzern oder virtuellen Realitätsteilnehmern unterschiedlich wahrgenommen oder gesehen werden (z. B. erlebt ein erster Benutzer, der einen ersten Satz Auswahlen im Spiel getroffen hat, den ersten Modus, und ein zweiter Benutzer, der einen zweiten Satz Auswahlen im Spiel getroffen hat, die sich vom ersten Satz Auswahlen im Spiel unterscheiden, erlebt den zweiten Modus, oder ein Kind erlebt einen anderen Modus als ein Teenager). Jeder dieser Benutzer oder Teilnehmer erlebt die virtuelle Umgebung des virtuellen Umgebungsmodells 310 aus seiner eigenen, einzigartigen Perspektive oder virtuellen Umgebungsansicht, die auf dem mit ihnen assoziiert virtuellen Umgebungsmodus beruht (d. h. je nach Benutzer bestimmt).
  • Anders ausgedrückt kann die erste virtuelle Umgebungsansicht auf dem Smartphone 224a gleichzeitig oder zeitgleich gerendert werden, während die zweite virtuelle Umgebungsansicht auf dem Tablet 224b gerendert wird. Auf diese Art werden die erste virtuelle Umgebungsansicht und die zweite virtuelle Umgebungsansicht jeweils zeitgleich auf den verschiedenen Vorrichtungen 224a und 224b gerendert. Auf andere Art beschrieben, weist das erste virtuelle Objekt ein erstes Rendering in der ersten virtuellen Umgebungsansicht (z. B. für den ersten Benutzer) und ein zweites Rendering in der zweiten virtuellen Umgebungsansicht, das sich von dem ersten Rendering unterscheidet, auf (z. B. für den zweiten Benutzer), wodurch beiden Benutzern unterschiedliche Erlebnisse aus der gemeinsamen virtuellen (z. B. einer mit demselben, gemeinsamen oder einzigen virtuellen Umgebungsmodell 310 assoziierten) Umgebung bereitgestellt werden.
  • Beispielsweise kann die erste virtuelle Umgebungsansicht des ersten virtuellen Objekts auf dem Smartphone 224a gerendert werden, und die zweite virtuelle Umgebungsansicht des ersten virtuellen Objekts kann auf dem Tablet 224b gerendert werden.
  • Das in der Datenbank 108 gespeicherte virtuelle Umgebungsmodell 310 kann Daten oder Anweisungen zum Generieren einer oder mehrerer der verschiedenen virtuellen Umgebungsansichten (z. B. der ersten virtuellen Umgebungsansicht, der zweiten virtuellen Umgebungsansicht usw.) basierend auf einem oder mehreren der verschiedenen virtuellen Umgebungsmodi (z. B. dem ersten virtuellen Umgebungsmodus, dem zweiten virtuellen Umgebungsmodus usw.) beinhalten. Obwohl die folgende Beschreibung und die folgenden Figuren zwei verschiedene virtuelle Umgebungsansichten beinhalten, die mit zwei verschiedenen virtuellen Umgebungsmodi assoziiert sind (z. B. unter anderem mit unterschiedlichen Ansichten, Renderings, Charakteristika, Eigenschaften, Funktionen, Benutzern assoziiert), werden zusätzliche (z. B. ein dritter, vierter, fünfter usw. Umgebungsmodus) virtuelle Umgebungsmodi und virtuelle Umgebungsansichten in Betracht gezogen.
  • In jedem Fall können das Smartphone 224a und der erste virtuelle Umgebungsmodus mit einem ersten Benutzertyp assoziiert sein, und das Tablet 224b und der zweite virtuelle Umgebungsmodus können mit einem zweiten Benutzertyp assoziiert sein. Ein Benutzertyp (z. B. der erste Benutzertyp, zweite Benutzertyp usw.) kann durch oder basierend auf Demografiken, die mit einem Benutzer 312 assoziiert sind, einem Account, das mit dem Benutzer 312 assoziiert ist, Hardware (z. B. Hardware des Smartphones 224a im Gegensatz zu Hardware des Tablets 224b), die mit dem Benutzer 312 assoziiert ist, definiert sein. Beispiele für Demografiken beinhalten u. a. Alter, Geschlecht, Bildungsniveau, Einkommensniveau, Familienstand, Beruf, Religionszugehörigkeit. Zusätzlich kann der Benutzertyp von der virtuellen Umgebungs-Engine 116 beispielsweise basierend auf einer oder mehreren Benutzerauswahlen definiert werden. Eine Benutzerauswahl kann sich auf ein Gameplay beziehen, muss aber nicht unbedingt eine direkt Auswahl eines Spiel-Skins sein. Beispielsweise kann die Benutzerauswahl eines Spielgenres, eines Spieltyps, eines ausgewählten Spiels, eines ausgewählten Avatars, in Spielbewertungen oder vorheriges Gameplay benutzt werden, um zu beeinflussen, ob der erste virtuelle Umgebungsmodus oder der zweite virtuelle Umgebungsmodus benutzt wird.
  • In dieser Hinsicht kann, wenn ein Benutzer ein erstes Spiel auswählt, der erste virtuelle Umgebungsmodus angewendet werden, und wenn der Benutzer ein zweites Spiel auswählt, kann der zweite virtuelle Umgebungsmodus von der virtuellen Umgebungs-Engine 116 angewendet werden. Ein Beispiel verschiedener Spiele (z. B. ein erstes und zweites Spiel) sind im Folgenden in 14-16 beschrieben. Ferner können Benutzerbewertungen von zuvor gespielten Spielen von der virtuellen Umgebungs-Engine 116 verwendet werden, um einen entsprechenden virtuellen Umgebungsmodus zu bestimmen. Anders ausgedrückt, wenn ein Benutzer negatives Feedback in Bezug auf das erste Spiel hinterlässt, das in Verbindung mit dem ersten virtuellen Umgebungsmodus ausgeführt wird, kann die Auswahl desselben Spiels in Zukunft in der Ausführung des zweiten Spiels durch die virtuelle Umgebungs-Engine 116 resultieren, das mit dem virtuellen Umgebungsmodus assoziiert ist. Ähnlich kann die Auswahl eines ersten Avatars in der Verwendung des ersten virtuellen Umgebungsmodus für diesen Benutzer resultieren, während die Auswahl eines zweiten Avatars in der Verwendung des zweiten virtuellen Umgebungsmodus für diesen Benutzer resultieren kann. Ein anderer Benutzer, der den ersten Avatar auswählt, kann jedoch aufgrund anderer Benutzerauswahlen, wie zum Beispiel verschiedene Spielauswahl, den zweiten virtuellen Umgebungsmodus erleben.
  • In jedem Fall kann der Benutzer 312 die virtuelle Umgebungsansicht durch die Vorrichtung(en) 124 basierend auf Eingaben von den Fahrzeugsystemen 118, den Fahrzeugsensoren 120 erleben, die Fahrzeugdaten 318, Benutzerdaten 320 oder andere Daten 322 bereitstellen können. Die Informationen von den Fahrzeugsystemen 118 und den Fahrzeugsensoren 120 können von der virtuellen Umgebungs-Engine 116 verarbeitet werden und an einem virtuellen Umgebungsdatenmodul 302 der virtuellen Umgebungs-Engine 116 empfangen werden. Ein dynamisches virtuelles Umgebungsmodul 306 kann die virtuelle Umgebungsansicht generieren, während ein Rendering-Modul 308 die virtuelle Umgebungsansicht rendern kann. In 3 ist die virtuelle Umgebungs-Engine 116 eine von der Vorrichtung 124 getrennte Komponente und kann sich beispielsweise an einem Fahrzeug befinden.
  • In anderen Ausführungsformen kann die Vorrichtung 124 ihre eigene virtuellen Umgebungs-Engine (z. B. 1320 aus 13) aufweisen und das Verarbeiten, die Berechnungen, das Generieren der virtuellen Umgebungsansicht oder das Rendern der virtuellen Umgebungsansicht kann zwischen der virtuellen Umgebungs-Engine 116 und/oder Prozessor 104 des Systems 100 oder dem Fahrzeug und der virtuellen Umgebungs-Engine 1320 und/oder Prozessor 1324 der Vorrichtung 124 aufgeteilt oder geteilt werden. Beispielsweise kann das Generieren der virtuellen Umgebungsansicht an dem dynamischen virtuellen Umgebungsmodul 306 der virtuellen Umgebungs-Engine 116 des Systems 100 (z. B. aufseiten des Fahrzeugs) stattfinden und das Rendern der virtuellen Umgebungsansicht kann an einem Rendering-Modul einer virtuellen Umgebungs-Engine der Vorrichtung 124 (z. B. aufseiten der virtuellen Umgebungsvorrichtung, wie etwa der virtuellen Umgebungs-Engine-Rahmenstruktur 1320 aus 13) stattfinden.
  • 4 ist ein Ablaufdiagramm eines beispielhaften Verfahrens 400 zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten. Beispielsweise kann das Verfahren das Empfangen von Fahrzeugdaten und Benutzerdaten bei 402 beinhalten. Die Benutzerdaten können den virtuellen Umgebungsmodus beinhalten, der darauf hinweist, wie die virtuelle Umgebung von der virtuellen Umgebungs-Engine 116 gerendert oder generiert werden soll. Bei 404 kann eine virtuelle Umgebungsansicht basierend auf den Fahrzeugdaten und Benutzerdaten generiert werden. Bei 406 kann die virtuelle Umgebungsansicht basierend auf dem virtuellen Umgebungsmodus gerendert werden. Bei 408 kann die virtuelle Umgebungsansicht aktualisiert und erneut gerendert werden.
  • 5 ist ein Ablaufdiagramm eines beispielhaften Verfahrens 500 zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten. Bei 502 kann das Verfahren das Speichern oder Zugreifen auf die virtuelle Umgebung beinhalten. Jedes virtuelle Objekt kann mit Sätzen von Funktionen assoziiert sein, die den ersten und zweiten virtuellen Umgebungsmodi oder Skins entsprechen. Bei 504 kann das Verfahren das Generieren oder Rendern, wie etwa für das Smartphone 224a, der ersten virtuellen Umgebungsansicht des virtuellen Objekts basierend auf dem ersten virtuellen Umgebungsmodus oder dem ersten virtuellen Umgebungsskin beinhalten. Bei 506 kann das Verfahren das Generieren oder Rendern, wie etwa für das Tablet 224b, der zweiten virtuellen Umgebungsansicht des virtuellen Objekts basierend auf dem zweiten virtuellen Umgebungsmodus (als ein anderes Objekt) oder zweiten virtuellen Umgebungsskin zeitgleich mit der ersten virtuellen Umgebungssicht beinhalten.
  • 6 ist ein Diagramm eines beispielhaften virtuellen Umgebungsmodells einschließlich Datenfluss gemäß einem oder mehreren Aspekten. 7 ist ein beispielhaftes schematisches Klassendiagramm 700 einer virtuellen Umgebung einschließlich des virtuellen Umgebungsmodells 310 aus 6 gemäß einem oder mehreren Aspekten. Ein beispielhaftes virtuellen Umgebungsmodell 310 wird jetzt unter Bezugnahme auf 6-7 beschrieben. Die Klassenknoten, Funktionen, Objekte, Eigenschaften, Bezugnahmen, Verfahren, Auslöser und Ereignisse (z. B. die Komponenten, welche die virtuelle Umgebungsansicht 706 definieren), die unter Bezugnahme auf 6-7 erläutert werden, sind ihrem Wesen nach beispielhaft und sollen nicht als einschränkend ausgelegt werden.
  • In 6 kann das virtuelle Umgebungsmodell 310 eine oder mehrere Komponenten beinhalten, die eine virtuelle Umgebungsansicht 706 definieren. Beispielsweise beinhaltet das Modell in 6 einen Ansichtsklassenknoten 602, einen Umgebungsstrukturklassenknoten 604, einen EventsEin-Klassenknoten 606, einen EventsAus-Klassenknoten 608, welche die virtuelle Umgebungs-Engine 116 dazu veranlassen können, virtuelle Ereignisse (engl. Events) 610 auszugeben, zu generieren oder zu rendern oder anderweitig Funktionen auszuführen, die einem oder mehreren der oben genannten Klassenknoten 602, 604, 606, 608 usw. Die Klassenknoten in 6 können ähnliche Verfahren, Eigenschaften, Felder und Bezugnahmen beinhalten wie die unter Bezugnahme auf 7 beschriebenen Klassenknoten. 6 veranschaulicht auch einen beispielhaften Datenfluss zu den Klassenknoten, beispielsweise zum Verstärken (engl. augmenting) der Klassenknoten. Insbesondere kann das dynamische virtuelle Umgebungsmodul 306 diese Datentypen benutzen, um spezifische Klassenknoten zu verstärken.
  • Wie in 3 erläutert können die Daten Fahrzeugdaten 318, Benutzerdaten 320 und/oder andere Daten 322 beinhalten. Die in 6 veranschaulichten Datentypen sind Typen von Fahrzeugdaten 318, Benutzerdaten 320 und/oder andere Daten 322 in 3. Insbesondere beinhalten die Daten in 6, ohne darauf beschränkt zu sein, Fahrzeugbewegungsdaten 612 (einschließlich Fahrzeugdynamikdaten), Benutzerbewegungsdaten 613, prognostizierende Fahrzeugbewegungsdaten 614, Navigationsdaten 616, Big Data 618 und Fahreraktionsdaten 620.
  • Allgemein ist das virtuelle Umgebungsmodell 310 eine Sammlung vieler individueller Vorgänge (z. B. Funktionen oder Sätze von Funktionen) und virtueller Objekte 710, welche die virtuelle Umgebung 702 und zumindest zwei virtuelle Umgebungsansichten 706 definieren, von denen jede mit einem entsprechenden Umgebungsmodus assoziiert ist. Gemäß der vorliegenden Offenbarung ist jedes virtuelle Objekt 710 mit zwei oder mehreren virtuellen Umgebungsansichten 706 assoziiert, die von der virtuellen Umgebungs-Engine 116 je nach oder basierend auf einem virtuellen Umgebungsmodus gerendert oder generiert werden, der an die/den virtuelle/n Umgebungs-Engine 116, -Knoten oder -Funktion übergeben wird (z. B. als ein Argument). Einem oder mehreren Aspekten gemäß kann der virtuelle Umgebungsmodus ein numerischer Datentyp sein (z. B. Modus 1, Modus 2, Modus 3 usw.) Beispielsweise kann der virtuelle Umgebungsmodus einen ersten Modus, einen zweiten Modus, einen dritten Modus usw. beinhalten. In anderen Ausführungsformen kann der virtuelle Umgebungsmodus sein eigener Datentyp sein (z. B. ein virtueller Umgebungsmodus-Datentyp). Beispielsweise kann der virtuelle Umgebungsmodus einen ersten Modus und einen zweiten Modus beinhalten. In einem anderen Beispiel kann der virtuelle Umgebungsmodus einen Kleinkindmodus, einen Kindergartenmodus, einen Grundschulmodus, einen Teenagermodus, einen jungen Erwachsenenmodus, eine Erwachsenenmodus usw. beinhalten.
  • In jedem Fall kann, unabhängig vom spezifischen Modus, vom Namen des Modus oder vom Datentyp, der benutzt wird, die virtuelle Umgebungs-Engine 116 die virtuelle Umgebungsansicht 706 entsprechend generieren (z. B. mittels der Klassenknoten, Knoten innerhalb der Klassenknoten, Funktionen innerhalb der Klassenknoten und des virtuellen Umgebungsmodus als eine Eingabe oder als ein Argument). Obwohl die vorliegende Offenbarung den ersten Modus und den zweiten Modus als Beispiele beschreibt (z. B. 8 und 10 für den ersten Modus und 9 und 11 für den zweiten Modus), gilt die hierin bereitgestellte Liste von Modi nicht als einschränkend und andere Modi werden in Betracht gezogen.
  • Das virtuelle Umgebungsmodell 310 kann mittels verschiedener Modellierungs- oder Programmierungssprachen definiert werden, beispielsweise unter anderem Virtual Environment Modeling Language (VRML), DirectX, OpenGL, Unity. Wie in 7 veranschaulicht kann die virtuelle Umgebung 702 eine oder mehrere virtuelle Umgebungsansichten 706 beinhalten. Die virtuelle Umgebung 702 und die virtuellen Umgebungsansichten 706 können ein oder mehrere virtuelle Objekte 710 beinhalten. Die virtuellen Umgebungsansichten 706 und die virtuellen Objekte 710 sind durch eine oder mehrere Klassenknoten definiert, wie etwa die beispielhaften Klassenknoten 704. Gemäß einem oder mehreren Aspekten können Knoten in eine oder mehrere virtuelle Umgebungsansichten 706 und/oder virtuelle Objekte 710 in einer hierarchischen Struktur gruppiert und auf diese angewendet werden. Beispielsweise kann die Gruppe Klassenknoten 704 für Eltern- und Kindknoten der virtuellen Umgebungsansichten 706 und/oder virtuelle Objekte 710, die mit einer bestimmten Gruppe Knoten assoziiert sind (z. B. der Gruppe Klassenknoten 704), gelten.
  • Jeder der Klassenknoten 704 kann Komponenten beinhalten, welche die Klassenknoten definieren und/oder modifizieren, wie zum Beispiel andere Knoten, Eigenschaften, Felder, Verfahren, Funktionen und/oder Bezugnahmen. Einem oder mehreren Aspekten gemäß können die Knoten, Eigenschaften, Felder, Verfahren und/oder Bezugnahmen basierend auf der virtuellen Umgebung 702 (z. B. unter anderem für ein bestimmtes Thema, Spiel) vordefiniert sein. Zudem können in anderen Ausführungsformen die Knoten, Eigenschaften, Felder, Verfahren und/oder Bezugnahmen basierend auf dem Benutzer 312 oder Benutzerpräferenz vordefiniert sein. Andere Klassenknoten, Eigenschaften, Felder, Verfahren und/oder Bezugnahmen, die nicht in 6-7 enthalten sind, können implementiert werden und können auf den verschiedenen, hierin erläuterten Modellierungs- und Programmierungssprachen beruhen.
  • In 7 beinhalte die Gruppe Klassenknoten 704 einen Ansichtsklassenknoten 712, einen Umgebungsstrukturklassenknoten 714, einen EventsEin-Klassenknoten 716 und einen EventsAus-Klassenknoten 718. Einem oder mehreren Aspekten gemäß kann die virtuelle Umgebungs-Engine 116 des Prozessors 104 eine virtuelle Umgebungsansicht 706 basierend auf dem virtuellen Umgebungsmodell 310, virtuellen Objekten 710, die in dem virtuellen Umgebungsmodell 310 dargestellt sind, und den entsprechenden virtuellen Umgebungsmodus generieren. Beispielsweise können diese Variablen als Argumente an den Ansichtsklassenknoten 712 übergeben werden.
  • Der Ansichtsklassenknoten 712 kann eine Funktion beinhalten, die eine Ansicht basierend auf einem virtuellen Umgebungsmodus als Eingabevariable oder Parameter, die als Argumente an die Knoten der Ansichtsklassenknoten 712 übergeben werden, generiert. Die Ansichtsklassenknoten 712 können eine Position und/oder eine Ausrichtung der virtuellen Umgebungsansicht 706, des virtuellen Objekts 710, Funktionen und/oder Vorgänge, die mit der virtuellen Umgebungsansicht 706 und/oder dem virtuellen Objekt 710 assoziiert sind, definieren.
  • Beispielsweise kann in 7 der Transformknoten benutzt werden, um geometrische Transformationen durchzuführen, und kann mit Position, Drehung und Maßstab assoziierte Eigenschaften beinhalten, die basierend auf dem virtuellen Umgebungsmodus als ein Argument an Funktionen berechnet werden können, die mit dem Transformknoten assoziiert sind. Der BildEffekt-Knoten kann Bildnachbearbeitungseffekte basierend auf dem virtuellen Umgebungsmodus auf ähnliche Weise handhaben. Beispielhafte Bildnachbearbeitungseffekte beinhalten unter anderem Tiefenschärfe, Bewegung und Unschärfe. Der Verhaltensmodus kann dazu verwendet werden, unterschiedliche Verhalten zu aktivieren und zu deaktivieren, wie etwa Animation und Bewegung basierend auf dem virtuellen Umgebungsmodus. Der visuelleEffekte-Knoten kann dazu benutzt werden, visuelle Effekte zu definieren, wie zum Beispiel unter anderem Linien-Renderer, Haloeffekte, Trail-Renderer basierend auf dem virtuellen Umgebungsmodus. Der Rendering-Knoten kann dazu benutzt werden, Einstellungen und Komponenten zum Rendern von Spiel- und Benutzerschnittstellenelementen basierend auf dem virtuellen Umgebungsmodus zu definieren.
  • Beispielsweise kann der Umgebungsstrukturklassenknoten 714 eine Funktion beinhalten, die einen oder mehrere Aspekte oder Charakteristiken der Ansicht basierend auf dem virtuellen Umgebungsmodus als ein Argument für die Funktion definiert. Beispielsweise kann die Textur eines gegebenen virtuellen Objekts 710 basierend auf dem virtuellen Umgebungsmodus unterschiedlich definiert sein (z. B. unter anderem dem ersten virtuelle Umgebungsmodus, dem zweiten virtuellen Umgebungsmodus). Zu anderen Eigenschaften, die von dem Umgebungsstrukturklassenknoten 714 definiert werden, können unter anderem Größe, Form, Erscheinungsbild, Textur, Material, Kollisionseffekte, Transparenz, Vorhandensein, Geometrie gehören. Beispielsweise kann das virtuelle Objekt 710 im ersten virtuelle Umgebungsmodus vorhanden sein, jedoch nicht im zweiten virtuellen Umgebungsmodus. Das virtuelle Objekt 710 kann mit einer ersten Größe im ersten virtuellen Umgebungsmodus assoziiert sein und im zweiten virtuellen Umgebungsmodus mit einer zweiten Größe assoziiert sein.
  • Der Umgebungsstrukturklassenknoten 714 kann die Struktur und das Erscheinungsbild der virtuellen Umgebungsansicht 706, des virtuellen Objekts 710, von damit assoziierten Funktionen und/oder Vorgängen definieren. Ähnlich wie der Umgebungsstrukturklassenknoten 712 können Knoten des Umgebungsstrukturklassenknotens 714 die Struktur basierend auf dem virtuellen Umgebungsmodus als ein Argument definieren oder berechnen. In dieser Hinsicht kann der Geometrieknoten dazu benutzt werden, mit dem virtuellen Objekt 710 assoziierte Formen basierend auf dem virtuellen Umgebungsmodus zu definieren. Der Erscheinungsbildmodus kann dazu benutzt werden, sichtbare Eigenschaften wie etwa Textur und Material basierend auf dem virtuellen Umgebungsmodus zu definieren. Der Geländemodus kann dazu benutzt werden, Aspekte eines Geländes und einer Landschaft basierend auf dem virtuellen Umgebungsmodus zu definieren, wie in 8-11 gezeigt. Der Kollisionsknoten kann definieren, welche Objekte in einer virtuellen Umgebungsansicht 706 mit Kollisionszuständen (z. B. ob ein anderes virtuelles Objekt durch das virtuelle Objekt passieren kann, ohne mit dem virtuellen Objekt zu kollidieren) basierend auf dem virtuellen Umgebungsmodus assoziiert sind. Wiederum kann der virtuelle Umgebungsmodus mit verschiedenen Vorrichtungen 124 assoziiert sein und basierend auf den Demografiken des Benutzers, einem mit dem Benutzer assoziierten Account, der Hardware der Vorrichtung 124 oder der Hardware des virtuellen Realitätskopfhörers bestimmt werden.
  • Der EventsEin-Klassenknoten 716 kann eine Funktion beinhalten, die einen oder mehrere Auslöser für den EventsAus-Klassenknoten 718 definiert. Beispielsweise kann der Empfang eines Antippens einer „A“-Schaltfläche ein Ausgabe-Event auslösen. Der EventsEin-Klassenknoten 716 definiert die Typen und Namen von Events, die jeder Knoten empfangen (z. B. Auslöser) oder generieren kann. Beispielsweise kann der EventManager-Knoten individualisierte Events definieren und Event-Handler und -Hörer definieren, die Eventauslöser bestimmen (z. B. bestimmt nach Benutzerdaten, Benutzereingabedaten oder Fahrzeugdaten), um spezifische Events zu initialisieren oder auszulösen. Das Typenfeld definiert einen Eventtyp, das Knotenfeld definiert, für welche(n) Knoten das Event gilt und das set_fieldname(Feldnamen einstellen)-Verfahren kann dazu benutzt werden, einen Wert eines Felds während einem Event zu modifizieren. Der EventsAus-Klassenknoten 718 kann die Ausführung und das Routing des Events managen. Das fieldname_changed(Feldname geändert)-Feld gibt an, welche(s) Feld(er) während des Events geändert werden, das Typenfeld definiert den Eventtyp, das Knotenfeld kann definieren, für welchen Knoten das Event gilt, und das Routenverfahren definiert, wie das Event zu einem Knoten gesendet wird und wie das Event von einem Knoten empfangen und generiert wird. Obwohl dies in der Ausführungsform in 7 nicht abgebildet ist, können die anderen Klassenknoten 716 und 718 ähnlich wie der Ansichtsklassenknoten 712 und der Umgebungsstrukturklassenknoten 714 den virtuellen Umgebungsmodus als ein Argument empfangen.
  • Die Klassenknoten und/oder assoziierte Funktionen oder Knoten können in der Datenbank 108 in 2 gespeichert sein. Somit können diese Konten oder Funktionen die erste virtuelle Umgebungsansicht oder die zweite virtuelle Umgebungsansicht basierend darauf generieren, dass der virtuelle Umgebungsmodus jeweils der erste virtuelle Umgebungsmodus oder der zweite virtuelle Umgebungsmodus ist. Einem oder mehreren Aspekten gemäß kann der virtuelle Umgebungsmodus ein numerischer Datentyp (z. B. Modus 1, Modus 2, Modus 3 usw.) sein oder seinen eigenen Datentypen aufweisen (z. B. den virtuellen Umgebungsmodus-Datentyp).
  • Die Klassenknoten und Komponenten können gemäß mindestens einem von den Fahrzeugdaten und den Benutzerdaten verstärkt werden, um eine dynamische virtuelle Umgebung 702 und/oder virtuelle Umgebungsansichten 706 für den Benutzer 312 zu generieren. Einem oder mehreren Aspekten gemäß können Fahrzeugdaten 612, 614, 616 und die Benutzerdaten 613, 620 dazu benutzt werden, Knoten zu initialisieren, Eigenschaften und Felder einzustellen und Events zu initialisieren oder zu definieren.
  • 8 ist eine beispielhafte erste virtuelle Umgebungsansicht 800 gemäß einem oder mehreren Aspekten. 9 ist eine beispielhafte zweite virtuelle Umgebungsansicht 900, die der ersten virtuellen Umgebungsansicht 800 aus 8 entspricht, gemäß einem oder mehreren Aspekten.
  • In 8 beinhaltet die erste virtuelle Umgebungsansicht eine Erste-Person-Perspektive oder -Ansicht für einen ersten Benutzer 802 gemäß einem ersten virtuellen Umgebungsmodus. Die erste virtuelle Umgebungsansicht des ersten Benutzers beinhaltet einen anderen Benutzer oder einen zweiten Benutzer 804. Hier in diesem Beispiel kann der erste Benutzer 802 durch die erste virtuelle Umgebungsansicht sehen, dass der zweite Benutzer 804 mit einem virtuellen Objekt interagiert, das als Drache 806 (z. B. eine nicht spielbare Figur) gerendert ist. Beispielsweise erscheint der zweite Benutzer 804 hier derart, als würde er den Drachen 806 bekämpfen. Die erste virtuelle Umgebungsansicht der virtuellen Umgebung kann andere virtuelle Objekte beinhalten, wie etwa das Schloss 810. Das virtuelle Objekt des Schlosses 810 ist mit virtuellen Objekteigenschaften assoziiert, einschließlich Größe, Länge, Höhe 812, Breite 814 usw., die von einem oder mehreren Knoten oder Funktionen eines Klassenknotens 704 definiert sein können.
  • Ferner kann die erste virtuelle Umgebungsansicht andere virtuelle Objekte beinhalten, wie etwa ein Schwert 820, eine Mauer 830, einen Baum 840 usw. Zudem kann die erste virtuelle Umgebungsansicht virtuelle Umgebungsmerkmale beinhalten, wie etwa Gras 862, einen Ziegelsteinweg 864 und einen Weg 866. Eines oder mehrere der virtuellen Objekte oder virtuellen Umgebungsmerkmale können eine Eins-zu-eins-Entsprechung mit virtuellen Objekten oder virtuellen Umgebungsmerkmalen aufweisen, die mit der zweiten virtuellen Umgebungsansicht assoziiert sind, wie etwa die zweite virtuelle Umgebungsansicht 900 of 9.
  • In 9 beinhaltet die zweite virtuelle Umgebungsansicht 900 eine Erste-Person-Perspektive oder -Ansicht für den ersten Benutzer 902 gemäß einem zweiten virtuellen Umgebungsmodus. Die zweite virtuelle Umgebungsansicht beinhaltet sowohl den ersten Benutzer 902 als auch den zweiten Benutzer 904. In 9 kann der erste Benutzer 902 durch die erste virtuelle Umgebungsansicht sehen, dass der zweite Benutzer 904 mit einem virtuellen Objekt interagiert, das als Pony 906 (z. B. eine nicht spielbare Figur) gerendert ist. Hier erscheint der zweite Benutzer 904 derart, als würde er das Pony 906 streicheln. Die zweite virtuelle Umgebungsansicht kann andere virtuelle Objekte beinhalten, wie etwa ein Haus 910. Das virtuelle Objekt des Hauses 910 ist mit virtuellen Objekteigenschaften assoziiert, einschließlich Größe, Form, Länge, Höhe 912, Breite 914 usw., die von einem oder mehreren Knoten oder Funktionen eines Klassenknotens definiert sein können.
  • Obwohl die Koordinaten des Hauses 910 aus 9 den Koordinaten des Schlosses 810 aus 8 entsprechen, kann die Breite 914 des Hauses 910 sich von der Breite 814 des Schlosses 810 unterscheiden, und die Höhe 912 des Hauses 910 kann sich von der Höhe 812 des Schlosses 810 unterscheiden. Die virtuellen Umgebungskoordinaten, die mit einer Mitte assoziiert sind (z. B. einem Massenschwerpunkt, einem Mittelpunkt oder seitlichen Mitte), können jedoch dieselben für das Schloss 810 und das Haus 910 sein. Auf diese Art können virtuellen Objekte zwischen verschiedenen virtuellen Umgebungsmodi unterschiedlich wahrgenommen werden (z. B. ist dasselbe virtuelle Objekt aus 8-9 mit einer ersten Größe im ersten virtuellen Umgebungsmodus und mit einer zweiten Größe im zweiten virtuellen Umgebungsmodus assoziiert).
  • Die zweite virtuelle Umgebungsansicht 900 kann andere virtuelle Objekte beinhalten, wie etwa einen Stab 920, die Mauer 830 und einen Baum 940, der anders als der Baum 840 aus 8 gerendert ist. Die zweite virtuelle Umgebungsansicht 900 kann eine Scheune 950 und Gras bei 960 beinhalten, die aufgrund von Kollisionsfunktionen, die mit den Klassenknoten assoziiert sind, die den ersten und zweiten virtuellen Umgebungsmodus unterschiedlich interpretieren, in der ersten virtuellen Umgebungsansicht 800 aus 8 nicht vorhanden sind oder keine entsprechenden Renderings haben. Zudem kann die zweite virtuelle Umgebungsansicht virtuelle Umgebungsmerkmale der virtuellen Umgebung beinhalten, wie etwa Gras 962, einen Feldweg 964 und einen Weg 966, und kann dem Gras 862, Ziegelsteinweg 864 und Weg 866 aus 8 entsprechen. Eines oder mehrere der virtuellen Objekte oder virtuellen Umgebungsmerkmale können eine Eins-zu-eins-Entsprechung mit virtuellen Objekten oder virtuellen Umgebungsmerkmalen aufweisen, die mit der ersten virtuellen Umgebungsansicht assoziiert sind, wie etwa die erste virtuelle Umgebungsansicht aus 8.
  • Während manche der virtuellen Objekte mit übereinstimmenden Eigenschaften, Funktionen, Knoten usw. assoziiert sind oder anderweitig eine Eins-zu-eins-Entsprechung zwischen dem ersten und zweiten virtuellen Umgebungsmodus aufweisen, können andere virtuelle Objekte nicht unbedingt dieselbe Beziehung zwischen verschiedenen Umgebungsmodi aufweisen. Beispielsweise können das Schwert 820 aus 8 und der Stab 920 aus 9 dasselbe Bewegungsmuster oder dieselbe Animationsfunktion, Größeneigenschaften usw. aufweisen. Im Gegensatz dazu kann die Scheune 950 aus 9 basierend auf dem virtuellen Umgebungsmodus als ein Argument für eine oder mehrere der Funktionen der Klassenknoten in 8 unsichtbar und nichtkollidierbar sein. Wie bereits erläutert können das Schloss 810 aus 8 und das Haus 910 aus 9 unterschiedliche Größeneigenschaften oder Charakteristika aufweisen. Ferner können andere virtuelle Objekte zwischen dem ersten virtuellen Umgebungsmodus und dem zweiten virtuellen Umgebungsmodus identisch erscheinen. Beispielsweise erscheint die Mauer 830 gleich und ist identisch und in derselben Position in den beiden unterschiedlichen virtuellen Umgebungsmodi von 8-9 gerendert.
  • Das virtuelle Umgebungsmodell 310 kann eines oder mehrere virtuelle Objekte beinhalten, die gemäß der ersten virtuellen Umgebungsansicht Umgebungsansicht (z. B. mit dem ersten virtuellen Umgebungsmodus assoziiert) gerendert sind wie der erste Benutzer 802, der zweite Benutzer 804, der Drache 806, das Schloss 810, das Schwert 820, die Mauer 830 und der Baum 840, die jeweils ihre eigenen virtuellen Umgebungskoordinaten in der virtuellen Umgebung aufweisen. Dieselben virtuellen Objekte können gemäß der zweiten virtuellen Umgebungsansicht (z. B. mit dem zweiten virtuellen Umgebungsmodus assoziiert) gerendert sein wie jeweils der erste Benutzer 902, der zweite Benutzer 904, das Pony 906, das Haus 910, der Stab 920, die Mauer 830 und der Baum 940 und identische oder entsprechende virtuelle Umgebungskoordinaten aufweisen.
  • Einem oder mehreren Aspekten gemäß weist der erste Satz Funktionen eine Eins-zu-eins-Auslöserentsprechung mit dem zweiten Satz Funktionen auf. Anders ausgedrückt kann der Empfang einer Eingabe von dem Benutzer oder eine erste Benutzereingabe entsprechende Funktionen zur Ausführung veranlassen oder auslösen. Beispielsweise kann die Datenbank 108 das virtuelle Umgebungsmodell 310, das mit den abgebildeten virtuellen Umgebungen aus 8-9 assoziiert ist, speichern. Wenn wir den Drachen 806 aus 8 und das Pony 906 aus 9 als das erste virtuelle Objekt in diesem Beispiel nehmen, kann der Drache 806 aus 8 mit einer ersten Funktion assoziiert sein, während dasselbe erste virtuelle Objekt, das in 9 als das Pony 906 dargestellt ist, mit einer zweiten Funktion assoziiert sein kann. Beispielsweise können die erste Funktion und die zweite Funktion untätige Verhaltensfunktionen sein, welche die Bewegung, Animation, das Erscheinungsbild und die Textur usw. des ersten virtuellen Objekts als den Drachen 806 oder das Pony 906 diktieren.
  • In 8, wo der erste Benutzer 802 mit dem ersten virtuellen Umgebungsmodus assoziiert ist, kann das dynamische virtuelle Umgebungsmodul 306 der virtuellen Umgebungs-Engine 116 des Prozessors 104 die erste virtuelle Umgebungsansicht derart generieren, dass sie eine Szene beinhaltet, in welcher der Drache 806 in einem Bereich oder innerhalb eines vorbestimmten Perimeters (nicht gezeigt) herumläuft und Feuer spuckt, womit er das Gras 862 in der virtuellen Umgebung verbrennt. Entsprechend kann in 9, wo der erste Benutzer 902 mit dem zweiten virtuellen Umgebungsmodus assoziiert ist, das dynamische virtuelle Umgebungsmodul 306 der virtuellen Umgebungs-Engine 116 des Prozessors 104 die zweite virtuelle Umgebungsansicht derart generieren, dass sie eine Szene beinhaltet, in der das Pony 906 in dem Bereich oder innerhalb des vorbestimmten Perimeters (nicht gezeigt) herumläuft und das Gras 962 in der virtuellen Umgebung frisst.
  • Auf diese Art können die erste Funktion, die mit dem ersten virtuellen Umgebungsmodus assoziiert ist, und die zweite Funktion, die mit dem zweiten virtuellen Umgebungsmodus assoziiert ist, einander entsprechen (z. B. weil die beiden Funktionen den vorbestimmten Parameter als eine Variable teilen und sich auf das Steuern des Aspekts des untätige Verhaltens des ersten virtuellen Objekts entweder als Drache 806 oder Pony 906 beziehen). In dieser Hinsicht kann der erste Satz Funktionen oder die erste Funktion eine Eins-zu-eins-Argumententsprechung mit dem zweiten Satz Funktionen oder der zweiten Funktion aufweisen. Beispielsweise können die erste Funktion und die zweite Funktion beide dieselbe Anzahl von Argumenten empfangen, dieselbe Anzahl von Eingaben und Ausgaben aufweisen, wobei die Argumente dieselben Datentypen usw. aufweisen.
  • Einem oder mehreren Aspekten gemäß weist der erste Satz Funktionen oder die erste Funktion eine Eins-zu-eins Animationsentsprechung mit dem zweiten Satz Funktionen oder der zweiten Funktion auf. Beispielsweise kann, bei Empfang einer ersten Eingabe von einem ersten Benutzer, der mit dem ersten virtuellen Umgebungsmodus oder demselben Typ Benutzerdaten assoziiert ist, das dynamische virtuelle Umgebungsmodul 306 der virtuellen Umgebungs-Engine 116 des Prozessors 104 die erste virtuelle Umgebungsansicht (die mit dem ersten virtuellen Umgebungsmodus und dem Smartphone 224a assoziiert ist) derart generieren, dass sie eine Szene beinhaltet, in welcher der erste Benutzer das Schwert 820 schwingt. Im Gegensatz dazu oder entsprechend kann, bei Empfang desselben Typs erster Eingabe von dem ersten Benutzer, das dynamische virtuelle Umgebungsmodul 306 der virtueller Umgebungs-Engine 116 des Prozessors 104 die zweite virtuelle Umgebungsansicht (die mit dem ersten virtuellen Umgebungsmodus und dem Tablet 224b assoziiert ist) derart generieren, dass sie eine Szene beinhaltet, in welcher der erste Benutzer einen Stab 920 schwingt. Einem oder mehreren Aspekten gemäß können Klassenknoten und Knoten der Klassenknoten dieselben Variablen als Eingaben verwenden, entsprechende Berechnungen durchführen oder entsprechende Ansichten generieren, die teilweise identische Merkmale und/oder teilweise unterschiedliche Merkmale beinhalten können.
  • Beispielsweise können in dem oben beschriebenen Szenario mit dem Schwingen des Schwerts 820 und Stabs einem oder mehreren Aspekten gemäß das Schwert 820 und der Stab 920 identische Geometrie, identisches Verhalten oder identische Animationen (z. B. Bewegung oder Bewegungsabläufe), jedoch eine unterschiedliche Textur und ein unterschiedliches Erscheinungsbild aufweisen. Insoweit können der Benutzer 802, der mit dem ersten virtuellen Umgebungsmodus assoziiert ist, und der Benutzer 902, der mit dem zweiten virtuellen Umgebungsmodus assoziiert ist, das Schwert 820 und den Stab 920 als virtuelle Objekte mit denselben Abmessungen oder derselben Größe und in Bewegung mit denselben Bewegungsmustern sehen.
  • Einem oder mehreren Aspekten gemäß kann die Animationsfunktion oder Knoten des Verhaltensknotens des Ansichtsklassenknotens 712 basierend auf dem virtuellen Umgebungsmodus eine Anzahl von Schwertschwüngen oder Stabschwüngen ausführen. Beispielsweise kann basierend auf den verschiedenen virtuellen Umgebungsmodi das Stabschwingen nur zwei Mal auftreten, während das Schwertschwingen drei Mal auftritt. In anderen Ausführungsformen können die Funktionen, Konten usw. basierend auf einem mit der Figur assoziierten Level unterschiedlich ausgeführt werden. Beispielsweise kann ein(e) Level-zehn-Krieger(in) 802 sein oder ihr Schwert 820 zehn Mal schwingen, während ein(e) Level-drei-Krieger(in) 802 sein oder ihr Schwert nur drei Mal schwingt.
  • Da der Erscheinungsbildknoten (z. B. mit Bezugnahme auf 7) unterschiedliche Textur- oder Materialeigenschaften für das Schwert 820 und den Stab 920 generieren kann, kann einer von beiden glänzend erscheinen, während der andere dunkel und matt erscheint. Ferner kann ein Audioeffektknoten (nicht in 7 gezeigt) unterschiedliche Audioeffekte generieren (z. B. einen schwertschwingenden Klang für das Schwert 820 und einen Zauberstabklang für den Stab 920).
  • Einem oder mehreren Aspekten gemäß können Benutzer belohnt werden und/oder kann ein Punktestand für Interaktion oder das Interagieren mit den virtuellen Objekten der virtuellen Umgebung verfolgt oder gezählt werden. Beispielsweise, wenn der Benutzer 802 aus 8 den Drachen 806 angreift (z. B. die erste Funktion, die mit dem ersten virtuellen Umgebungsmodus assoziiert ist, durchführt) kann die virtuelle Umgebungs-Engine 116 dem Benutzer 802 eine Belohnung bereitstellen (z. B. Prämienpunkte für das mit ihm assoziierte Benutzerkonto usw.) Basierend auf der Eins-zu-eins Entsprechung zwischen der ersten Funktion und der zweiten Funktion kann, wenn der Benutzer 902 aus 9 mit dem Stab 920 dem Pony 906 zuwinkt (z. B. die zweite Funktion, die mit dem zweiten virtuellen Umgebungsmodus assoziiert ist, durchführt), die virtuelle Umgebungs-Engine 116 dem Benutzer 902 aus 9 eine ähnliche oder entsprechende Belohnung bereitstellen (z. B. Prämienpunkte für das mit ihm assoziierte Benutzerkonto usw.).
  • 10 ist eine weitere beispielhafte erste virtuelle Umgebungsansicht 1000 gemäß einem oder mehreren Aspekten. 11 ist eine weitere beispielhafte zweite virtuelle Umgebungsansicht 1100, die gemäß einem oder mehreren Aspekten der ersten virtuellen Umgebungsansicht 1000 aus 10 entspricht. 10-11 werden unter Bezugnahme aufeinander beschrieben, da die zweite virtuelle Umgebungsansicht aus 11 der ersten virtuellen Umgebungsansicht aus 10 entspricht.
  • Wie wir in 10 gesehen haben, gibt es zwei Benutzer 802 und 804 (z. B. ein virtueller Objekttyp), die in der beispielhaften ersten virtuellen Umgebungsansicht veranschaulicht sind - ein erster Benutzer 802 und ein zweiter 804. In dieser ersten virtuellen Umgebungsansicht, die auf dem ersten virtuellen Umgebungsmodus basiert, wird ein erstes Rendering der ersten virtuellen Umgebungsansicht einem dritten Benutzer (nicht gezeigt) präsentiert, und der erste Benutzer 802 ist mit einem ersten Skin gerendert.
  • In 11 sind dieselben zwei Benutzer 902 und 904 präsent. In dieser zweiten virtuellen Umgebungsansicht wird ein zweites Rendering der zweiten virtuellen Umgebungsansicht einem vierten Benutzer (nicht gezeigt) präsentiert, und der erste Benutzer 902 ist mit einem zweiten Skin gerendert. Anders ausgedrückt sind, da die zweite virtuelle Umgebungsansicht basierend auf dem zweiten virtuellen Umgebungsmodus ausgewählt ist, der erste Benutzer 902 und der zweite Benutzer 904 aus 11 unterschiedliche gerendert und sind mit unterschiedlichen Sätzen von Funktionen assoziiert. Beispielsweise kann der erste Benutzer 802 mit einer ersten Dialogfunktion in 10 assoziiert sein, und der erste Benutzer 902 kann mit einer zweiten Dialogfunktion in 11 assoziiert sein.
  • Anders ausgedrückt kann, wenn der dritte Benutzer eine an den ersten Benutzer 802 aus 10 gerichtete Eingabe bereitstellt, die erste Dialogfunktion ausgeführt werden, wodurch dem dritten Benutzer ein erster Satz Dialog präsentiert wird. Im Gegensatz dazu kann, wenn der vierte Benutzer dieselbe oder entsprechende an den ersten Benutzer 902 aus 11 gerichtete Eingabe bereitstellt, die zweite Dialogfunktion ausgeführt werden, wodurch dem vierten Benutzer ein zweiter Satz Dialog präsentiert wird. Auf diese Art kann die virtuelle Umgebungs-Engine 116 die Konten der Klassenknoten verwenden (z. B. Verhalten, Geometrie und Erscheinungsbild), um es den Benutzern zu ermöglichen, miteinander zu interagieren, jedoch ihre Interaktion über verschiedene Skins oder verschiedene Perspektiven unterschiedliche wahrzunehmen. Nicht alle Funktionen oder Knoten der Klassenknoten müssen die oben beschriebenen Eins-zu-eins-Entsprechungen aufweisen. Beispielsweise kann, einem Aspekt gemäß, der erste Dialog nur ein Textrendering und/oder Audio beinhalten, während der zweite Dialog ein entsprechendes Textrendering, Audio und eine Animation beinhalten kann, wie etwa das Übergeben eines virtuellen Objekts einer Blume durch den Benutzer.
  • Obwohl der dritte Benutzer aus 10 mit dem ersten virtuellen Umgebungsmodus assoziiert ist und der vierte Benutzer aus 11 mit dem zweiten virtuellen Umgebungsmodus assoziiert ist, kann der dritte Benutzer aus 10 mit dem vierten Benutzer aus 11 interagieren. Anders ausgedrückt können Benutzer miteinander in der gemeinsamen virtuellen Umgebung interagieren, jedoch virtuelle Objekte in der virtuellen Umgebung unterschiedlich wahrnehmen und basierend auf ihrem assoziierten Umgebungsmodus unterschiedliche Interaktionen haben.
  • In dieser Hinsicht ist 10 eine beispielhafte Veranschaulichung eines Szenarios, in dem der dritte Benutzer die virtuelle Umgebung gemäß dem ersten Modus erlebt, und 11 ist eine beispielhafte Veranschaulichung eines Szenarios, in dem der vierte Benutzer die virtuelle Umgebung gemäß dem zweiten Modus erlebt, wobei alle Dinge dieselben sind (z. B. Position, Koordinaten, Benehmen der Benutzer, Eingaben, die von dem jeweiligen Benutzer bereitgestellt werden), mit Ausnahme dessen, dass der virtuelle Umgebungsmodus für 10 in einem ersten Modus (z. B. erster Modus) ist und für 11 in einem zweiten Modus (z. B. zweiter Modus) ist.
  • Somit kann die virtuelle Umgebungs-Engine 116 des Prozessors 104 unter Verwendung des Ansichtsklassenknotens 712 die erste virtuelle Umgebungsansicht des ersten Benutzers als den das Schwert 820 tragenden Krieger für den dritten (z. B. mit ersten virtuellen Umgebungsmodus assoziierten) Benutzer generieren, während er die zweite virtuelle Umgebungsansicht des ersten (z. B. mit zweiten virtuellen Umgebungsmodus assoziierten) Benutzers als die den Stab 920 tragende Prinzessin 904 für den vierten Benutzer generiert. Da die mit dem Ansichtsklassenknoten 712 und dem Umgebungsstrukturklassenknoten 714 assoziierten Knoten und Funktionen mit dem virtuellem Umgebungsmodus des entsprechenden Benutzers als Argumente bereitgestellt werden (wie unter Bezugnahme auf 7 erläutert), können die Funktionen oder Knoten, wie etwa Transformieren, BildEffekt, Verhalten, VisuelleEffekte, Geometrie und Erscheinungsbild, die virtuelle Umgebungs-Engine 116 dazu befähigen, die virtuellen Objekte aus 10-11 für den dritten und vierten Benutzer unterschiedlich zu rendern oder zu generieren (und unterschiedliche Animationen, Reaktionen, Auslöser, EventsEin oder EventsAus aufzuweisen).
  • Auf noch andere Art erklärt kann derselbe Benutzer aus 10-11 von einem anderen Benutzer anders wahrgenommen, gerendert oder gesehen werden (z. B. kann der dritte Benutzer den ersten Benutzer als männlich wahrnehmen und der vierte Benutzer nimmt den ersten Benutzer als weiblich war), basierend auf dem mit dem Benutzer assoziierten virtuellen Umgebungsmodus, der basierend auf Auswahlen bestimmt oder ausgewählt werden kann, die von dem Benutzer vorgenommen werden, die nicht unbedingt direkt mit der Auswahl eines Spielskins zusammenhängen. Somit können von der virtuellen Umgebungs-Engine 116 basierend auf dem virtuellen Umgebungsmodus zwei verschiedene virtuelle Umgebungsperspektiven (und damit Spiele) derselben oder gemeinsamen virtuellen Umgebung geschaffen oder generiert werden.
  • 12 ist eine beispielhafte Ansicht einer Realweltumgebung 1200, auf der gemäß einem oder mehreren Aspekten eine virtuelle Umgebungsansicht basieren kann. Die Realweltumgebung kann ein Gebäude 1210, einen Zaun 1230, einen Baum 1240, einen Hydranten 1250, ein Stoppschild 1260, eine erste Straße 1262, eine zweite Straße 1264 und einen Gehweg 1266 beinhalten. Wie zuvor erläutert können die Fahrzeugsensoren 120 des Systems 100 Daten aus der Realweltumgebung erfassen, ertasten oder erkennen und diese Daten dem virtuellen Umgebungsmodell 310 zuführen, das in der Datenbank 108 gespeichert ist. Auf diese Art können die Fahrzeugsensoren 120 Merkmale aus der Realtweltumgebung ertasten oder erkennen, die dazu benutzt werden können, Aspekte in der virtuellen Umgebung zu generieren oder widerzuspiegeln, die mit dem virtuellen Umgebungsmodell 310 assoziiert ist.
  • In dem Beispiel aus 12 kann das Gebäude 1210 dem virtuellen Objekt des Schlosses 810 oder des Hauses 910 entsprechen, je nach dem virtuellen Umgebungsmodus. Ähnlich kann der Zaun 1230 dem virtuellen Objekt der Mauer 830 entsprechen, die sich in dem hier beschriebenen Beispiel basierend auf dem virtuellen Umgebungsmodus nicht ändert. Der Baum 1240 kann dem virtuellen Objekt entsprechen, das basierend auf dem virtuellen Umgebungsmodus als die Bäume 840 und 940 in 8-9 gerendert ist. Ähnlich können je nach dem virtuellen Umgebungsmodus die Straßen und der Gehweg 1262, 1264 und 1266 Merkmalen der virtuellen Umgebung als 862, 864 und 866 oder 962, 964 und 966 in 8-9 entsprechen. Andere Elemente, wie etwa der Feuerhydrant 1250 und das Stoppschild 1260 können nur in einem (z. B. dem zweiten) der virtuellen Umgebungsmodi (z. B. als die Scheune 950 und das Gras 960) und nicht dem anderen (z. B. dem zweiten) virtuellen Umgebungsmodus erscheinen. In diesem Beispiel betrifft die Entsprechung die virtuellen Umgebungskoordinaten oder die räumlichen Beziehungen zwischen Elementen der Realweltumgebung und der virtuellen Umgebung.
  • Damit wird ein virtuelles Umgebungserlebnis im Fahrzeug bereitgestellt, bei dem mehrere Spieler (z. B. Benutzer) ein virtuelles Umgebungsspiel spielen können, bei dem verschiedene Perspektiven oder verschiedene virtuelle Welten von der virtuellen Umgebungs-Engine 116 unter Verwendung desselben virtuellen Umgebungsmodells 310 und/oder virtuellen Umgebungskoordinaten generiert werden.
  • 13 ist eine schematische Ansicht einer beispielhaften Systemarchitektur, die das hierin beschriebene virtuelle Umgebungssystem implementiert, gemäß einem oder mehreren Aspekten. Beispielsweise kann die Vorrichtung 124 aus 13 der virtuelle Realitätskopfhörer 224c aus 2 sein. Einem oder mehreren Aspekten gemäß kann der virtuelle Realitätskopfhörer 224c die virtuelle Umgebungs-Engine 1320 beinhalten, der die virtuelle Umgebungsansicht des virtuellen Objekts basierend auf dem virtuellen Umgebungsmodus rendert. Einem oder mehreren Aspekten gemäß kann die virtuelle Umgebungs-Engine 1320 aus 13 mindestens einige der Funktionen und Berechnungen der oben beschriebenen virtuellen Umgebungs-Engine aus 1-3 ausführen.
  • In 13 beinhaltet die Vorrichtung 124 eine Anwendungsebene 1302, eine Middleware-Ebene 1304, eine Betriebssystem(OS)-Ebene 1306 und eine Hardwareebene 1308. Eine beispielhafte OS-Ebene 1306 kann ein Android OS sein. Es versteht sich, dass andere Betriebssysteme umgesetzt werden können. Ferner versteht es sich, dass eine oder mehrere Komponenten aus 13 kombiniert, ausgelassen oder in andere Architekturen organisiert werden können. Beispielsweise kann die Anwendungsebene 1302 Komponenten der OS-Anwendungsebene beinhalten.
  • Die Anwendungsebene 1302 kann native Anwendungen 1310, nicht-native Anwendungen 1312 (z. B. Drittanwendungen) und Gerätehersteller(OEM)-Anwendungen 1314 beinhalten, die auf der Vorrichtung 124 laufen. Die nativen Anwendungen 1310 sind lokal installiert und vom Hersteller der Vorrichtung 124 so ausgestaltet, dass sie auf dem Betriebssystem der Vorrichtung laufen (z. B. Android). Beispielsweise können native Anwendungen 1310 Anwendungen wie etwa eine Kontakte-Anwendung, eine Telefon-Anwendung und eine Browseranwendung beinhalten. Nicht-native Anwendungen 1312 beinhalten Anwendungen, die von Drittparteien bereitgestellt werden. OEM-Anwendungen 1314 beinhalten Anwendungen, die von einem Fahrzeug-OEM zur Interaktion mit dem Fahrzeug (nicht gezeigt) und der Vorrichtung 124 bereitgestellt werden. Die OEM-Anwendungen 1314 können mit einer grafischen Benutzeroberfläche (Graphic User Interface - GUI) zum Starten von OEM-Anwendungen 1314 auf der Vorrichtung 124 assoziiert sein, die von einem OEM-Server bereitgestellt werden (z. B. damit verbunden sind, wie etwa über das Netzwerk 122 in 1).
  • Die Middleware-Ebene 1304 kann Bibliotheken, Rahmenstrukturen (engl. frameworks) und Anwendungsprogrammierungsschnittstellen (Application Programming Interfaces - API) zum Betreiben der Vorrichtung 124 und Anwendungen auf der Vorrichtung 124 beinhalten. Beispielsweise beinhaltet die Kommunikationsrahmenstruktur (Kom.-FW) 1316 Bereitstellungen zur Konnektivität und Kommunikation mit externen Servern und zur Vorrichtungs- und Anwendungsauthentifizierung. Die Fahrzeugrahmenstruktur (Fahrzeug-FW) 1318 ist eine spezifische Rahmenstruktur zum Kommunizieren mit einem Fahrzeug (z. B. dem Fahrzeug 200 aus 2), die Fahrzeugdatenaustausch handhabt (z. B. mit den Fahrzeugsystemen 118 und/oder den Fahrzeugsensoren 120 aus 1) und Berührungstafel-Events zwischen der Vorrichtung 124 und der Rechenvorrichtung 102 aus 1 bereitstellt. Die virtuelle Umgebungs-Engine-Rahmenstruktur (virtuelle Umgebungs-Engine-FW) 1320 ist eine Rahmenstruktur, um dynamische virtuelle Umgebungserlebnisse im Fahrzeug zu ermöglichen. Beispielsweise kommuniziert in einer oder mehreren Ausführungsformen die Umgebungs-Engine-FW 1320 mit der virtuellen Umgebungs-Engine 116 aus 1. In anderen Ausführungsformen kann die virtuelle Umgebungs-Engine-FW 1320 die Funktionen der virtuellen Umgebungs-Engine 116 (z. B. des virtuellen Umgebungsdatenmoduls 302, des dynamischen virtuellen Umgebungsmoduls 306 oder des Rendering-Moduls 308 aus 3) beinhalten oder durchführen.
  • Die OS-Ebene 1306 stellt allgemein Dienste zum Verwalten von Hardware- und Softwareressourcen der Vorrichtung 124 bereit und beinhaltet einen OS-Kern 1322. Der OS-Kern 1322 kann beispielsweise Android, iOS, Mobile Linux, Symbian OS, Windows Mobile, BlackBerry OS, Web OS oder andere Betriebssysteme sein.
  • Ferner kann die Hardwareebene 1308 Bereitstellungen zur direkten Verwaltung von und zum direkten Zugriff auf Hardwareressourcen beinhalten. Die Vorrichtung 124 kann Hardware wie etwa einen Prozessor 1324, einen Arbeitsspeicher 1326, eine Festplatte 1328, Positions- und Bewegungssensoren 1330, Eingabe-/Ausgabevorrichtungen 1332 (z. B. einen Touchscreen der Vorrichtung 124, eine Tastatur der Vorrichtung 124 und ein Mikrofon der Vorrichtung 124 beinhalten. Die Komponenten der Hardwareebene 1308 können miteinander kommunizieren, beispielsweise über einen Bus 1334. Die Vorrichtung 124 kann dieselben oder ähnliche Komponenten wie die Rechenvorrichtung 102 aus 1 beinhalten. Somit kann einem oder mehreren Aspekten gemäß die Vorrichtung 124, insbesondere die Komponenten der Hardwareebene 1308, eine oder mehrere Funktionen, die unter Bezugnahme auf die virtuelle Umgebungs-Engine 116 in 1 beschrieben sind, durchführen. Beispielsweise kann der Arbeitsspeicher 1326 eine oder mehrere Anweisungen speichern und der Prozessor 1324 oder dessen virtuelle Umgebungs-Engine 1320 kann eine oder mehrere der in dem Arbeitsspeicher 1324 gespeicherten Anweisungen ausführen, um das Generieren der hierin beschriebenen virtuellen Umgebungsansichten durchzuführen. In anderen Ausführungsformen kann die virtuelle Umgebungs-Engine 1320 eine oder mehrere der in dem Arbeitsspeicher 106 des Systems 100 gespeicherte Anweisungen ausführen, um das Generieren der virtuellen Umgebungsansichten durchzuführen.
  • Die Positions- und Bewegungssensoren 1330 können hardware- und/oder softwarebasierte Sensoren beinhalten. Beispielsweise können die Bewegungssensoren unter anderem hardwarebasierte Beschleunigungsmesser, Gyroskope, Magnetometer beinhalten. Die Bewegungssensoren können auch softwarebasierte Schwerkraft-, lineare Beschleunigungs- und Rotationsvektorsensoren beinhalten. Einem oder mehreren Aspekten gemäß können die softwarebasierten Sensoren Daten von dem Beschleunigungsmesser und dem Magnetometer ableiten. In anderen Ausführungsformen können die softwarebasierten Sensoren das Gyroskop zum Ableiten dieser Daten verwenden. Die Bewegungssensoren sind nützlich zum Überwachen von Vorrichtungsbewegung, wie zum Beispiel Neigen, Schütteln, Drehen oder Schwingen. Die Bewegung kann eine Reflektion direkter Benutzereingabe sein, doch sie kann auch eine Reflektion der physischen Umgebung sein, in der sich die Vorrichtung 124 befindet. Beispielsweise kann die Vorrichtung 124 Bewegung des Fahrzeugs erkennen, in dem sie sich befindet und/oder an dem sie befestigt ist. Die Komponenten der Hardwareabstraktionsebene können Bewegungsdaten von derartigen Sensoren ableiten, wie etwa dem Gyromodul, dem Beschleunigungsmodul, dem Mag-Modul, dem Rotationsvektormodul, dem linearen Beschleunigungsmodul und dem Schwerkraftmodul.
  • Ähnlich können die Positionssensoren einen hardwarebasierten geomagnetischen Feldsensor und einen Näherungssensor beinhalten. Ein Ausrichtungssensor kann softwarebasiert sein und kann seine Daten von einem Beschleunigungsmesser und/oder unter anderem dem geomagnetischen Feldsensor, Gyroskop, Magnetometer ableiten. Positionssensoren sind nützlich zum Bestimmen der physischen Position der Vorrichtung 124 im Bezugsrahmen der Welt oder in einem anderen Bezugsrahmen, beispielsweise einem Fahrzeugbezugsrahmen (z. B. einem Bewegungsbezugsrahmen des Fahrzeugs). In einer anderen Ausführungsform kann der Ausrichtungssensor (oder ähnliche sensorbasierten Ausrichtungsverfahren) dazu benutzt werden, die Position der Vorrichtung 124 in dem Bezugsrahmen einer Anwendung zu bestimmen.
  • Es versteht sich, dass die Vorrichtung 124 auch andere Sensoren beinhalten kann, zum Beispiel Umgebungssensoren (z. B. Feuchtigkeit, Leuchtdichte, Umgebungsdruck und Umgebungstemperatur). Ferner kann in zusätzlichen Ausführungsformen eine Kamera (nicht gezeigt) der Vorrichtung 124 als ein Sensor zum Erkennen von unter anderem Bewegung, Position, Gestenerkennung von Bilddaten verwendet werden kann, die von der Kamera erfasst werden. Die Positions- und Bewegungssensoren 1330 können Fahrzeugdaten einschließlich Fahrzeugdynamikdaten, unabhängig von den Fahrzeugsystemen 118 und Sensoren 120 erfassen und erhalten, indem sie die Positions- und Bewegungssensoren 1330 nutzen.
  • Unter Bezugnahme auf 2 kann das Smartphone 224a die erste virtuelle Umgebungsansicht des virtuellen Objekts basierend auf dem ersten virtuellen Umgebungsmodus rendern, und das Tablet 224b kann die zweite virtuelle Umgebungsansicht des virtuellen Objekts basierend auf dem zweiten virtuellen Umgebungsmodus rendern. Die erste virtuelle Umgebungsansicht wird von dem Smartphone 224a und die zweite virtuelle Umgebungsansicht von dem Tablet 224b zeitgleich oder gleichzeitig gerendert, sodass dasselbe oder gemeinsame virtuelle Objekte in der ersten virtuellen Umgebungsansicht und in der zweiten virtuellen Umgebungsansicht enthalten oder beinhaltet ist.
  • Das virtuelle Objekt wird in der ersten virtuellen Umgebungsansicht als ein erstes Objekt gerendert und das virtuelle Objekt wird in der ersten virtuellen Umgebungsansicht als ein zweites Objekt gerendert, das sich vom ersten Objekt unterscheidet. Beispiele dafür sind in 8 und 10 sowie 9 und 11 gezeigt, wie zuvor erläutert. Zur Erläuterung sind das virtuelle Objekt des Drachens 806 in 8 und das virtuelle Objekt des Ponys 906 in 9 als dasselbe oder ein einziges virtuelles Objekt in dem virtuellen Umgebungsmodell 310 dargestellt, das in der Datenbank 108 aus 2 gespeichert ist. Da jedoch der Benutzer 802 aus 8 mit dem ersten Modus assoziiert ist und der Benutzer 902 aus 9 mit dem zweiten Modus assoziiert ist, wird dieses virtuelle Objekt als das erste Objekt (z. B. der Drachen 806) in der ersten virtuellen Umgebungsansicht gerendert und wird als zweites Objekt (z. B. das Pony 906) in der zweiten virtuellen Umgebungsansicht gerendert.
  • Die E/A-Schnittstelle 1332 der Vorrichtung 124 kann eine E/A-Vorrichtung, wie etwa eine Steuerung, beinhalten. Die Steuerung kann eine Spielsteuerung mit einer oder mehreren Schaltflächen, Joysticks, Bewegungssensoren usw. sein. In jedem Fall kann die E/A-Schnittstelle 1332 der Vorrichtung 124 eine oder mehrere Eingaben von der E/A-Vorrichtung oder der Steuerung empfangen, wie etwa Benutzereingabe. Beispielsweise kann die Steuerung eine „A“-Schaltfläche, eine „B“-Schaltfläche und eine „Y“-Schaltfläche beinhalten. Als weiteres Beispiel kann die E/A-Schnittstelle 1332 der Vorrichtung 124 eine erste Eingabe, eine zweite Eingabe, eine dritte Eingabe, eine vierte Eingabe usw. empfangen. Insofern kann, unter Bezugnahme auf 2, das Smartphone 224a mit einer ersten Eingabe und einer zweiten Eingabe assoziiert sein. Ähnlich kann das Tablet 224b mit einer ersten Eingabe und einer zweiten Eingabe assoziiert sein. Wenn die jeweiligen Vorrichtungen die erste Eingabe empfangen (z. B. Drücken der „A“-Schaltfläche), kann eine entsprechende Funktion ausgelöst werden.
  • In einem Szenario, bei dem die erste Funktion dem ersten virtuellen Umgebungsmodus entspricht und die zweite Funktion dem zweiten virtuellen Umgebungsmodus entspricht, löst das Empfangen der ersten Eingabe durch die E/A-Schnittstelle 1332 am Smartphone 224a die Ausführung der ersten Funktion aus, und das Empfangen der ersten Eingabe durch die E/A-Schnittstelle 1332 am Tablet 224b löst die Ausführung der zweiten Funktion aus. Beispielsweise kann, unter Bezugnahme auf 8, wenn die erste Eingabe empfangen wird, die Ausführung der ersten Funktion die virtuelle Umgebungs-Engine 116 des Prozessors 104 dazu veranlassen, eine schwertschwingende Animation für das Schwert 820 zu generieren, die von einem schwertschwingenden Soundeffekt usw. begleitet sein kann. Im Gegensatz dazu oder entsprechend kann in 9, wenn die erste Eingabe empfangen wird, die Ausführung der zweiten Funktion die virtuelle Umgebungs-Engine 116 des Prozessors 104 dazu veranlassen, eine stabschwingende Animation für den Stab 920 zu generieren (z. B. Funken oder Funkeln, das von dem Stab 920 ausgeht). Einem oder mehreren Aspekten gemäß können die erste Funktion und die zweite Funktion entsprechende Animationen aufweisen. Beispielsweise können die stabschwingende und die schwertschwingende Animation dieselbe Dauer, dasselbe Bewegungsmuster usw. aufweisen und können auf dem mit dem entsprechenden Benutzer assoziierten virtuellen Umgebungsmodus basieren.
  • 14A-B stellen eine beispielhafte erste und zweite virtuelle Umgebungsansicht einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten dar. Zudem können die hierin beschriebenen ersten und zweiten virtuellen Umgebungsmodi oder -ansichten auf einer abstrakteren Ebene umgesetzt werden als nur durch Bereitstellung unterschiedlicher Skins. Beispielsweise kann, unter Bezugnahme auf 14A-B, eine virtuelle Umgebung basierend auf dem virtuellen Umgebungsmodus oder der virtuellen Umgebungsansicht von 2D auf 3D gemappt oder erneut gemappt werden.
  • In einem ersten, mit 14A assoziiertem virtuellen Umgebungsmodus wird eine Vielfalt von Objekten für einen ersten Benutzer gerendert. Die virtuellen Objekte beinhalten einen ersten virtuellen Benutzer 1410, eine Schatztruhe 1420, einen Vogel 1430, einen Baum 1440, eine Sonne 1450 und einen zweiten virtuellen Benutzer 1490. Diesem Aspekt gemäß sind die virtuellen Objekte 1410, 1420, 1430, 1440, 1450 und 1490 in einer 2D-Ansicht gerendert, basierend auf virtuellen Objektinformationen die in dem virtuellen Umgebungsmodell 310 gespeichert sind. In einem zweiten, mit 14B assoziiertem virtuellen Umgebungsmodus, werden der erste virtuelle Benutzer 1410, die Schatztruhe 1420, der Vogel 1430, der Baum 1440, die Sonne 1450 und der zweite virtuelle Benutzer 1490 von der virtuellen Umgebungs-Engine 116 in einer 3D-Ansicht gerendert. Auf diese Weise können die virtuellen Objekte 1410, 1420, 1430, 1440, 1450 und 1490 basierend auf einem ersten Rendering in der ersten virtuellen Umgebungsansicht gerendert werden und basierend auf einem zweiten Rendering in der zweiten virtuellen Umgebungsansicht gerendert werden, das sich von dem ersten Rendering unterscheidet. Somit kann das System 100 zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf der gemeinsamen virtuellen Umgebung virtuelle Objekte auf eine andere Weise unterschiedlich rendern, als nur verschiedene Skins in verschiedenen Perspektiven oder Ansichten bereitzustellen.
  • Wie bereits erläutert, kann der erste virtuelle Umgebungsmodus auf ein erstes Benutzererlebnis angewendet werden, während der zweite virtuelle Umgebungsmodus von der virtuellen Umgebungs-Engine 116 auf ein zweites Benutzererlebnis angewendet werden kann. Die virtuelle Umgebung kann basierend auf vom Benutzer getroffenen Auswahlen ausgewählt werden, wie etwa Auswahlen in Bezug auf Spielgenre, eine Spielauswahl, eine Avatarauswahl, für ein Spiel hinterlassene Bewertungen, vorheriges Gameplay usw. Gemäß einem oder mehreren anderen Aspekten kann die virtuelle Umgebungs-Engine 116 eine entsprechende virtuelle Umgebung mit einem Benutzer basierend auf Demografiken des Benutzers oder basierend auf Hardwarekapazitäten der Vorrichtung des Benutzers assoziieren. Beispielsweise kann einem ersten Benutzer, der eine erste Vorrichtung mit einer niedrigeren Grafikverarbeitungsleistung verwendet (z. B. ein Smartphone), ein Spiel präsentiert werden, bei dem die Elemente des ersten virtuellen Umgebungsmodus, der mit 14A assoziiert ist, präsentiert werden, während einem zweiten Benutzer, der eine zweite Vorrichtung mit einer höheren Grafikverarbeitungsleistung als die erste Vorrichtung verwendet (z. B. ein Tablet), ein Spiel präsentiert werden kann, bei dem die Elemente des zweiten virtuellen Umgebungsmodus, der mit 14B assoziiert ist, präsentiert werden.
  • Ähnlich wie die verschiedenen Dimensionalitäten der Renderings aus 14A-14B können die jeweiligen virtuellen Objekte basierend auf dem mit dem Erlebnis assoziierten Modus mit verschiedenen Sätzen von Funktionen assoziiert sein. Anders ausgedrückt können die virtuellen Objekte 1410, 1420, 1430, 1440, 1450 und 1490 in 14A, die mit dem ersten Benutzer und dem ersten virtuellen Umgebungsmodus assoziiert sind, mit einem ersten Satz Funktionen assoziiert sein, während dieselben entsprechenden virtuellen Objekte in 14B, die mit dem zweiten Benutzer und dem zweiten virtuellen Umgebungsmodus assoziiert sind, mit einem zweiten Satz Funktionen assoziiert sein können.
  • Der zweite Satz Funktionen muss nicht unbedingt dem ersten Satz Funktionen 1:1 entsprechen. Beispielsweise können, aufgrund der Disparität der Verarbeitungsleistung der mit 14A-B assoziierten Vorrichtungen, bestimmte Funktionen, die dem zweiten Satz Funktionen entsprechen, in dem ersten Satz Funktionen nicht verfügbar sein. Beispiele dafür beinhalten die Präsentation von Audio für Interaktionen mit einem oder mehreren der virtuellen Objekte 1410, 1420, 1430, 1440, 1450 und 1490, die in 14A als Text oder Untertitel präsentiert sein können, jedoch in 14B als Audio und nicht als Untertitel oder Text präsentiert sein können. Auf diese Art weisen die virtuellen Objekte 1410, 1420, 1430, 1440, 1450 und 1490 für den ersten Satz Funktionen eine Eins-zu-eins-Auslöserentsprechung mit dem zweiten Satz Funktionen auf. Doch die Ausgabe, die mit dem ersten und zweiten Satz Funktionen assoziiert ist, kann, wenn sie auf demselben Auslöser basiert, in einem unterschiedlichen Benutzerinteraktionserlebnis resultieren.
  • Ähnlich kann der erste Satz Funktionen eine Eins-zu-eins-Animationsentsprechung mit dem zweiten Satz Funktionen aufweisen, obwohl die Renderings für 14A-B jeweils in 2D und 3D stattfinden. Doch die Eins-zu-eins-Entsprechung zwischen dem ersten Satz Funktionen bedeutet nicht unbedingt, dass der Code zwischen dem ersten und zweiten Satz Funktionen identisch ist (z. B. Ausgeben von Text verglichen mit Abspielen von Audio). Auf diese Weise werden, wenn der Benutzer 1410 sich der Schatztruhe 1420 nähert und eine erste Eingabe bereitstellt, die Schatztruhen 1420 in 14A-B als sich öffnend gerendert, und die Inhalte werden dem Benutzer 1410 geliefert oder dem Inventar des Benutzers hinzugefügt.
  • 15A-B stellen eine beispielhafte erste und zweite virtuelle Umgebungsansicht einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten dar. Die virtuelle Umgebungs-Engine 116 kann einen mit dem ersten Spiel (z. B. Schere, Stein, Papier) aus 15A und dem zweiten Spiel aus 15B assoziierten Punktestand führen. Da das erste Spiel und das zweite Spiel auf der gemeinsamen virtuellen Umgebung beruhen, können Benutzerauswahlen zwischen den zwei Spielen einander wiederspiegeln. Wenn wir beispielsweise davon ausgehen, dass Papier 1520 Stein 1510 schlägt, Schere 1530 Papier 1520 schlägt und Stein 1510 Schere 1530 in dem ersten Spiel schlägt, und davon ausgehen, dass der Hund 1512 des zweiten Spiels mit dem Stein 1510 assoziiert ist, die Maus 1522 mit dem Papier 1520 assoziiert ist und die Katze 1532 mit der Schere 1530 assoziiert ist, können Spielern oder Benutzern, die entsprechende Auswahlen zwischen dem ersten und zweiten Spiel treffen, identische Ergebnisse oder Punktestände von der virtuellen Umgebungs-Engine 116 bereitgestellt werden. Auf diese Art können das erste Spiel und das zweite Spiel eine 1:1-Entsprechung miteinander aufweisen, und das erste und das zweite Spiel weisen unterschiedliche Skins auf, anstatt nur den virtuellen Objekten 1510, 1520, 1530, 1512, 1522, 1532 unterschiedliche Skins bereitzustellen. Anders ausgedrückt, während die virtuellen Objekte in 15A-B ein unterschiedliches Skin aufweisen, werden die Entscheidungsfindung oder Auswahlmöglichkeiten, die dem Spieler präsentiert werden, auch auf andere Weise gerahmt oder gerendert (z. B. das Wählen von Schere, Stein, Papier im Vergleich zur Auswahl eines Tieres). In dieser Hinsicht können in einem Spiel verglichen mit einem anderen zusätzliche Spielelemente gerendert oder präsentiert werden. Beispielsweise wird in Schere, Stein, Papier der Sieg durch eine Zustandsmaschine definiert, wie oben beschrieben, während in 15B ein zusätzliches Element eines Tiersteuerungsagenten 1552 gerendert wird. In 15A werden Auswahlen von Stein, Schere, Papier sowohl für den ersten Benutzer als auch einen zweiten Benutzer gerendert (der ein Computerspieler oder ein anderer Benutzer sein kann). In 15B ist die Auswahl des zweiten Spielers verborgen, und das Ergebnis des Spiels wird anders gerendert. Beispielsweise kann in 15A eine Sieg- oder Niederlagenachricht von der virtuellen Umgebungs-Engine 116 präsentiert oder gerendert werden, während der Tiersteuerungsagenten 1552 die Auswahl des Benutzers in 15B basierend auf einer verlierenden Auswahl „erfassen“ kann, ohne die Auswahl des zweiten Benutzers zu rendern (Hund, Katze, Maus).
  • 16A-B stellen eine beispielhafte erste und zweite virtuelle Umgebungsansicht einer gemeinsamen virtuellen Umgebung gemäß einem oder mehreren Aspekten dar. In 16A kann ein Verließ-Crawler-Spiel über Text-Prompts 1602, 1604 und 1606 bereitgestellt werden. In 16B kann dasselbe Verließ-Crawler-Spiel über eine grafische Benutzeroberfläche (Graphic User Interface - GUI) umgesetzt werden, die virtuelle Objekte 1610 und 1612 jeweils als einen Benutzer und eine Schatztruhe beinhaltet. In 16A wird kein Rendering virtueller Objekte durchgeführt, während in 16B ein Rendering virtueller Objekte von der virtuellen Umgebungs-Engine 116 bereitgestellt wird. Ferner können ein oder mehrere der zweiten Sätze von Funktionen auf der GUI 1600 gerendert werden, wie etwa einer Steuerfläche 1650, und Eingabeschaltflächen 1652, 1654.
  • Noch eine weitere Ausführungsform involviert ein computerlesbares Medium einschließlich prozessorausführbarer Anweisungen, die dazu konfiguriert sind, eine oder mehrere Ausführungsformen der hierin präsentierten Techniken umzusetzen. Eine Ausführungsform eines computerlesbaren Mediums oder einer computerlesbaren Vorrichtung, die auf diese Weise ausgestaltet ist, ist in 17 veranschaulicht, wobei eine Umsetzung 1700 unter anderem ein computerlesbares Medium 1708, wie etwa einen CD-R, DVD-R, Flash-Speicher, eine Platte eines Festplattenlaufwerks, beinhaltet, auf dem computerlesbare Daten 1706 kodiert sind. Diese computerlesbaren Daten 1706, wie etwa binäre Daten, einschließlich einer Vielzahl von Nullen und Einsen, wie in 1706 gezeigt, beinhalten ihrerseits einen Satz prozessorausführbarer Computeranweisungen 1704, die dazu konfiguriert sind, gemäß einem oder mehreren der hierin dargestellten Prinzipien betrieben zu werden. In einer derartigen Ausführungsform 1700 können die prozessorausführbaren Computeranweisungen 1704 dazu konfiguriert sein, ein Verfahren 1702, wie etwa das Verfahren 400 aus 4 oder das Verfahren 500 aus 5, durchzuführen. In einer anderen Ausführungsform können die prozessorausführbaren Computeranweisungen 1704 dazu konfiguriert sein, ein System umzusetzen, wie etwa das System 100 aus 1-2. Viele derartige computerlesbare Medien können vom Durchschnittsfachmann entworfen werden, die dazu konfiguriert sind, gemäß den hier präsentiert Techniken betrieben zu werden.
  • Wie in dieser Anmeldung verwendet, sollen sich die Begriffe „Komponente“, „Modul“, „System“, „Schnittstelle“ und dergleichen allgemein auf eine computerbezogene Entität beziehen, entweder Hardware, eine Kombination aus Hardware und Software, Software oder Software in Ausführung. Eine Komponente kann beispielsweise, ohne darauf beschränkt zu sein, ein auf einem Prozessor ablaufender Prozess sein, eine Verarbeitungseinheit, ein Objekt, eine ausführbare Datei, ein Ausführungsthread, ein Programm oder ein Computer sein. Zur Veranschaulichung: Sowohl eine Anwendung, die auf einer Steuerung abläuft, als auch eine Steuerung können eine Komponente darstellen. Eine oder mehrere Komponenten, die innerhalb eines Prozesses oder Ausführungsthreads angeordnet sind, und eine Komponente können sich auf einem Computer befinden oder zwischen zwei oder mehr Computern verteilt sein.
  • Ferner wird der beanspruchte Gegenstand als ein Verfahren, eine Einrichtung oder ein Herstellungserzeugnis mittels standardmäßiger Programmierungs- und Ingenieurstechniken zum Produzieren von Software, Firmware, Hardware oder eine Kombination davon umgesetzt, um einen Computer dahingehend zu steuern, den offenbarten Gegenstand umzusetzen. Der Begriff „Herstellungserzeugnis“ wie er hierin verwendet wird, soll ein Computerprogramm mit einschließen, das von einer beliebigen computerlesbaren Vorrichtung, einem computerlesbaren Träger oder Medium zugreifbar ist. Natürlich können viele Modifikationen an dieser Konfiguration vorgenommen werden, ohne vom Umfang oder Geist des beanspruchten Gegenstands abzuweichen.
  • 18 und die folgende Erläuterung stellt eine Beschreibung einer geeigneten Rechenumgebung bereit, um Ausführungsformen einer oder mehrerer der hier dargestellten Bereitstellungen umzusetzen. Die Betriebsumgebung aus 18 ist nur ein Beispiel für eine geeignete Betriebsumgebung und soll keinerlei Beschränkungen in Bezug auf den Umfang der Nutzung oder Funktionalität der Betriebsumgebung suggerieren. Zu beispielhaften Rechenvorrichtungen gehören, ohne darauf beschränkt zu sein, PCs, Servercomputer, Handheld- oder Laptop-Geräte, wie etwa Mobiltelefone, Personal Digital Assistants (PDAs), Mediaplayer und Ähnliches, MultiProzessor-Systeme, Verbraucherelektronik, Minicomputer, Mainframe-Computer, dezentralisierte Rechenumgebungen, welche beliebige der oben genannten Systeme oder Vorrichtungen beinhalten, und andere.
  • Im Allgemeinen werden Ausführungsformen im allgemeinen Kontext von „computerlesbaren Anweisungen“ beschrieben, die von einer oder mehreren Rechenvorrichtungen ausgeführt werden. Computerlesbare Anweisungen können über computerlesbare Medien verteilt werden, wie unten näher erläutert. Computerlesbare Anweisungen können als Programmmodule, wie etwa Funktionen, Objekte, Anwendungsprogrammierungsschnittstellen (Application Programming Interfaces - APIs), Datenstrukturen und Ähnlichem umgesetzt sein, die eine oder mehrere Aufgaben erfüllen oder einen oder mehrere abstrakte Datentypen umsetzen. Üblicherweise wird die Funktionalität der computerlesbaren Anweisungen nach Wunsch in verschiedenen Umgebungen kombiniert oder verteilt.
  • 18 veranschaulicht ein System 1800 einschließlich einer Rechenvorrichtung 1812, die dazu konfiguriert ist, eine oder mehrere hierin bereitgestellte Ausführungsformen umzusetzen. In einer Konfiguration beinhaltet die Rechenvorrichtung 1812 mindestens eine Verarbeitungseinheit 1816 und Arbeitsspeicher 1818. Je nach der genauen Konfiguration und Art der Rechenvorrichtung, kann der Arbeitsspeicher 1818 flüchtig sein, wie etwa RAM, nichtflüchtig, wie etwa ROM, Flash-Speicher und andere, oder eine Kombination der beiden. Diese Konfiguration ist in 18 durch die gestrichelte Linie 1814 dargestellt.
  • In anderen Ausführungsformen beinhaltet die Rechenvorrichtung 1812 zusätzliche Merkmale oder Funktionalitäten. Beispielsweise kann die Rechenvorrichtung 1812 zusätzliche Arbeitsspeicher wie etwa entfernbare Arbeitsspeicher oder nicht entfernbare Arbeitsspeicher beinhalten, einschließlich, ohne darauf beschränkt zu sein, magnetische Arbeitsspeicher, optische Arbeitsspeicher und andere. Derartige zusätzliche Arbeitsspeicher sind in 18 durch Datenspeicher 1820 veranschaulicht. Einem oder mehreren Aspekten gemäß befinden sich computerlesbare Anweisungen zum Umsetzen einer oder mehrerer der hierin bereitgestellten Ausführungsformen im Datenspeicher 1820. Der Datenspeicher 1820 kann andere computerlesbare Anweisungen speichern, um ein Betriebssystem, ein Anwendungsprogramm und andere umzusetzen. Computerlesbare Anweisungen können beispielsweise in den Arbeitsspeicher 1818 zur Ausführung durch die Verarbeitungseinheit 1816 geladen werden. Einem oder mehreren Aspekten gemäß kann die virtuelle Umgebungs-Engine 116 über die Verarbeitungseinheit 1816 umgesetzt und dazu konfiguriert sein, eine oder mehrere der in dem Arbeitsspeicher 1818 gespeicherten Anweisungen auszuführen.
  • Der Begriff „computerlesbaren Medien“ wie hierin verwendet beinhaltet Computerspeichermedien. Computerspeichermedien beinhaltet flüchtige und nichtflüchtige, entfernbare und nichtentfernbare Medien, die mit einem beliebigen Verfahren oder einer beliebigen Technologie zum Speichern von Informationen umgesetzt sein können, wie etwa computerlesbare Anweisungen oder andere Daten. Arbeitsspeicher 1818 und Datenspeicher 1820 sind Beispiele für Computerspeichermedien. Computerspeichermedien beinhalten, ohne darauf beschränkt zu sein, RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologie, CD-ROM, Digital Versatile Disks (DVDs) oder andere optische Speicher, magnetische Kassetten, Magnetband, Plattenspeicher oder andere magnetische Speichervorrichtungen oder ein beliebiges anderes Medium, das dazu benutzt werden kann, die gewünschten Informationen zu speichern und auf das die Rechenvorrichtung 1812 zugreifen kann. Jegliche derartige Computerspeichermedien sind Teil der Rechenvorrichtung 1812.
  • Der Begriff „computerlesbare Medien“ beinhaltet Kommunikationsmedien. Kommunikationsmedien verkörpern üblicherweise computerlesbare Anweisungen oder andere Daten in einem „modulierten Datensignal“ wie etwa einer Trägerwelle oder einem anderen Transportmechanismus und beinhalten beliebige Informationslieferungsmedien. Der Begriff „moduliertes Datensignal“ beinhaltet ein Signal, bei dem ein oder mehrere seiner Charakteristika auf derartige Weise eingestellt ist oder geändert wird, das Informationen in dem Signal kodiert werden.
  • Die Rechenvorrichtung 1812 beinhaltet Ausgabevorrichtung(en) 1824 wie etwa eine Tastatur, Maus, einen Stift, eine Spracheingabevorrichtung, eine Berührungseingabevorrichtung, Infrarotkameras, Videoeingabevorrichtungen oder eine beliebige andere Eingabevorrichtung. Ausgabevorrichtung(en) 1822 wie etwa eine oder mehrere Anzeigen, Lautsprecher, Drucker oder eine beliebige andere Ausgabevorrichtung kann mit der Rechenvorrichtung 1812 beinhaltet sein. Eingabevorrichtung(en) 1824 und Ausgabevorrichtung(en) 1822 können an die Rechenvorrichtung 1812 über eine verdrahtete Verbindung, eine drahtlose Verbindung oder einer beliebigen Kombination davon angeschlossen sein. Einem oder mehreren Aspekten gemäß kann eine Eingabevorrichtung oder eine Ausgabevorrichtung von einer anderen Rechenvorrichtung als Eingabevorrichtung(en) 1824 oder Ausgabevorrichtung(en) 1822 für die Rechenvorrichtung 1812 benutzt werden. Die Rechenvorrichtung 1812 kann Kommunikationsverbindung(en) 1826 beinhalten, um Kommunikationen mit einer oder mehreren anderen Vorrichtungen 1830 zu erleichtern, wie etwa über das Netzwerk 1828.
  • Es versteht sich, das verschiedene der oben offenbarten und andere Merkmale und Funktionen, oder Alternativen oder Versionen davon, nach Wunsch in viele andere Systeme oder Anwendungen eingebracht werden können. Ebenso können vom Fachmann vielfältige, nicht vorhergesehene oder nicht erwartete Alternativen, Modifikationen, Variationen und Verbesserungen vorgenommen werden, die ebenfalls von den nachfolgenden Patentansprüchen abgedeckt werden sollen.
  • Einem oder mehreren Aspekten gemäß werden hierin Systeme und Verfahren zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung beschrieben. Ein virtuelles Umgebungsmodell, das mit einer virtuellen Umgebung assoziiert ist, einschließlich eines ersten virtuellen Objekts, das mit virtuellen Umgebungskoordinaten assoziiert ist, eines ersten Satzes Funktionen, der einem ersten virtuellen Umgebungsmodus entspricht, und eines zweiten Satzes Funktionen, der einem zweiten virtuellen Umgebungsmodus entspricht, kann in einer Datenbank gespeichert sein. Eine virtuelle Umgebungs-Engine kann eine erste virtuelle Umgebungsansicht des ersten virtuellen Objekts basierend auf dem ersten virtuellen Umgebungsmodus generieren und eine zweite virtuelle Umgebungsansicht des ersten virtuellen Objekts basierend auf dem zweiten virtuellen Umgebungsmodus generieren. Die erste virtuelle Umgebungsansicht und die zweite virtuelle Umgebungsansicht werden jeweils zeitgleich auf verschiedenen Vorrichtungen gerendert.

Claims (20)

  1. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung, umfassend: eine Datenbank, die ein virtuelles Umgebungsmodell speichert, das mit einer virtuellen Umgebung assoziiert ist, einschließlich eines ersten virtuellen Objekts, das mit virtuellen Umgebungskoordinaten assoziiert ist, eines ersten Satzes Funktionen, der einem ersten virtuellen Umgebungsmodus entspricht, und eines zweiten Satzes Funktionen, der einem zweiten virtuellen Umgebungsmodus entspricht; einen Speicher, der eine oder mehrere Anweisungen speichert; und einen Prozessor, einschließlich einer virtuellen Umgebungs-Engine, die eine oder mehrere der in dem Arbeitsspeicher gespeicherten Anweisungen ausführt, um Folgendes durchzuführen: Generieren einer ersten virtuellen Umgebungsansicht des ersten virtuellen Objekts basierend auf dem ersten virtuellen Umgebungsmodus; und Generieren einer zweiten virtuellen Umgebungsansicht des zweiten virtuellen Objekts basierend auf dem zweiten virtuellen Umgebungsmodus, wobei die erste virtuelle Umgebungsansicht und die zweite virtuelle Umgebungsansicht jeweils zeitgleich auf verschiedenen Vorrichtungen gerendert werden, und wobei das erste virtuelle Objekt ein erstes Rendering in der ersten virtuellen Umgebungsansicht und ein zweites Rendering in der zweiten virtuellen Umgebungsansicht hat, das sich vom ersten Rendering unterscheidet.
  2. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach Anspruch 1, wobei: die erste virtuelle Umgebungsansicht des ersten virtuellen Objekts auf einer ersten Vorrichtung gerendert wird; und die zweite virtuelle Umgebungsansicht des ersten virtuellen Objekts auf einer zweiten Vorrichtung gerendert wird.
  3. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach Anspruch 2, wobei: die erste Vorrichtung und der erste virtuelle Umgebungsmodus mit einem ersten Benutzertyp assoziiert sind; und die zweite Vorrichtung und der zweite virtuelle Umgebungsmodus mit einem zweiten Benutzertyp assoziiert sind.
  4. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach Anspruch 3, wobei der Benutzertyp basierend auf Demografiken, die mit einem Benutzer oder von einem Benutzer getroffenen Auswahlen in Bezug auf ein Spiel-Genre, ein ausgewähltes Spiel, einen ausgewählten Avatar, Spielbewertungen, vorheriges Gameplay assoziiert sind, definiert wird.
  5. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach einem der verhergehenden Ansprüche, wobei: das erste virtuelle Objekt ein erster Benutzer ist, das erste Rendering des ersten Benutzers mit einem ersten Skin gerendert wird, das zweite Rendering des ersten Benutzers mit einem zweiten Skin gerendert wird.
  6. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach einem der vorhergehenden Ansprüche, wobei: der erste Satz Funktionen eine erste Dialogfunktion beinhaltet; und der zweite Satz Funktionen eine zweite Dialogfunktion beinhaltet.
  7. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach einem der vorhergehenden Ansprüche, wobei der erste virtuelle Umgebungsmodus und der zweite virtuelle Umgebungsmodus virtuelle Umgebungsmodus-Datentypen sind.
  8. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach einem der vorhergehenden Ansprüche, wobei die Datenbank einen Ansichtsklassenknoten einschließlich Funktionen zum Generieren der ersten virtuellen Umgebungsansicht oder der zweiten virtuellen Umgebungsansicht jeweils basierend auf dem ersten virtuellen Umgebungsmodus und dem zweiten virtuellen Umgebungsmodus als virtuelle Umgebungsmodus-Datentypen speichert.
  9. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach einem der vorhergehenden Ansprüche, wobei die virtuelle Umgebung ein zweites virtuelles Objekt, das mit virtuellen Umgebungskoordinaten assoziiert ist, einen ersten Satz Funktionen, der dem ersten virtuellen Umgebungsmodus entspricht, und einen zweiten Satz Funktionen, der dem zweiten virtuellen Umgebungsmodus entspricht, beinhaltet.
  10. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach einem der vorhergehenden Ansprüche, wobei der Prozessor: die erste virtuelle Umgebungsansicht des zweiten virtuellen Objekts basierend auf dem ersten virtuellen Umgebungsmodus generiert; und die zweite virtuelle Umgebungsansicht des zweiten virtuellen Objekts basierend auf dem zweiten virtuellen Umgebungsmodus generiert, wobei die erste virtuelle Umgebungsansicht und die zweite virtuelle Umgebungsansicht des zweiten virtuellen Objekts jeweils zeitgleich auf den verschiedenen Vorrichtungen gerendert werden.
  11. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach einem der vorhergehenden Ansprüche, wobei das zweite virtuelle Objekt eine nicht spielbare Figur ist.
  12. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach einem der vorhergehenden Ansprüche, wobei der erste Satz Funktionen eine Eins-zu-eins-Auslöserentsprechung mit dem zweiten Satz Funktionen aufweist.
  13. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach einem der vorhergehenden Ansprüche, wobei der erste Satz Funktionen eine Eins-zu-eins-Animationsentsprechung mit dem zweiten Satz Funktionen aufweist.
  14. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach einem der vorhergehenden Ansprüche, wobei der erste Satz Funktionen eine Eins-zu-eins-Argumententsprechung mit dem zweiten Satz Funktionen aufweist.
  15. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung, umfassend: eine Datenbank, die ein virtuelles Umgebungsmodell, das mit einer virtuellen Umgebung assoziiert ist, einschließlich eines virtuellen Objekts, das mit virtuellen Umgebungskoordinaten assoziiert ist, einer ersten Funktion, die einem ersten virtuellen Umgebungsmodus entspricht, und einer zweiten Funktion, die einem zweiten virtuellen Umgebungsmodus entspricht, speichert; ein Speicher, der eine oder mehrere Anweisungen speichert; und einen Prozessor, einschließlich einer virtuellen Umgebungs-Engine, die eine oder mehrere der in dem Speicher gespeicherten Anweisungen ausführt, um Folgendes durchzuführen: Generieren einer ersten virtuellen Umgebungsansicht des virtuellen Objekts basierend auf einem ersten virtuellen Umgebungsskin des ersten virtuellen Umgebungsmodus; und Generieren einer zweiten virtuellen Umgebungsansicht des virtuellen Objekts basierend auf einem zweiten virtuellen Umgebungsskin des zweiten virtuellen Umgebungsmodus, das sich von dem ersten virtuellen Umgebungsskin unterscheidet, wobei die erste virtuelle Umgebungsansicht und die zweite virtuelle Umgebungsansicht jeweils zeitgleich auf verschiedenen Vorrichtungen gerendert werden.
  16. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach Anspruch 15, wobei das erste virtuelle Umgebungsskin der ersten virtuellen Umgebungsansicht des virtuellen Objekts mit einer ersten Größe assoziiert ist; und wobei das zweite virtuelle Umgebungsskin der zweiten virtuellen Umgebungsansicht des virtuellen Objekts mit einer zweiten Größe assoziiert ist, die sich von der ersten Größe unterscheidet.
  17. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung, umfassend: eine Datenbank, die ein virtuelles Umgebungsmodell speichert, das mit einer virtuellen Umgebung assoziiert ist, einschließlich eines virtuellen Objekts, das mit virtuellen Umgebungskoordinaten assoziiert ist, einer ersten Funktion, die einem ersten virtuellen Umgebungsmodus entspricht, und einer zweiten Funktion, die einem zweiten virtuellen Umgebungsmodus entspricht; einen Speicher, der eine oder mehrere Anweisungen speichert; und eine erste Vorrichtung, einschließlich einer virtuellen Umgebungs-Engine, die eine oder mehrere der auf dem Arbeitsspeicher gespeicherten Anweisungen ausführt, um eine erste virtuelle Umgebungsansicht des virtuellen Objekts basierend auf dem ersten virtuellen Umgebungsmodus zu rendern; und eine zweite Vorrichtung, einschließlich einer virtuellen Umgebungs-Engine, die eine oder mehrere der in dem Arbeitsspeicher gespeicherten Anweisungen ausführt, um eine zweite virtuelle Umgebungsansicht des virtuellen Objekts basierend auf dem zweiten virtuellen Umgebungsmodus zu rendern, wobei die erste virtuelle Umgebungsansicht und die zweite virtuelle Umgebungsansicht zeitgleich von jeweiligen Vorrichtungen gerendert werden, und wobei das virtuelle Objekt als ein erstes Objekt in der ersten virtuellen Umgebungsansicht gerendert wird und das virtuelle Objekt als ein zweites Objekt in der zweiten virtuellen Umgebungsansicht gerendert wird, das sich vom ersten Objekt unterscheidet.
  18. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach Anspruch 17, wobei die erste Vorrichtung mit einer ersten Eingabe und einer zweiten Eingabe assoziiert ist; und wobei die zweite Vorrichtung mit einer ersten Eingabe und einer zweiten Eingabe assoziiert ist.
  19. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach Anspruch 18, wobei der Empfang der ersten Eingabe an der ersten Vorrichtung die erste Funktion auslöst; und wobei der Empfang der ersten Eingabe an der zweiten Vorrichtung die zweite Funktion auslöst.
  20. System zum Bereitstellen verschiedener virtueller Umgebungsperspektiven basierend auf einer gemeinsamen virtuellen Umgebung nach einem der Ansprüche 17-19, wobei die erste Funktion und die zweite Funktion entsprechende Animationen aufweisen.
DE102018217898.4A 2017-11-06 2018-10-18 Verschiedene Perspektiven aus einer gemeinsamen virtuellen Umgebung Withdrawn DE102018217898A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/804,530 US10616033B2 (en) 2017-11-06 2017-11-06 Different perspectives from a common virtual environment
US15/804,530 2017-11-06

Publications (1)

Publication Number Publication Date
DE102018217898A1 true DE102018217898A1 (de) 2019-05-09

Family

ID=66179124

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018217898.4A Withdrawn DE102018217898A1 (de) 2017-11-06 2018-10-18 Verschiedene Perspektiven aus einer gemeinsamen virtuellen Umgebung

Country Status (4)

Country Link
US (1) US10616033B2 (de)
JP (1) JP7292846B2 (de)
CN (1) CN109754470A (de)
DE (1) DE102018217898A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10957119B2 (en) * 2017-03-15 2021-03-23 Facebook, Inc. Visual editor for designing augmented-reality effects
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
US10748342B2 (en) * 2018-06-19 2020-08-18 Google Llc Interaction system for augmented reality objects
US11587292B2 (en) * 2018-07-30 2023-02-21 Disney Enterprises, Inc. Triggered virtual reality and augmented reality events in video streams
US11004269B2 (en) * 2019-04-22 2021-05-11 Microsoft Technology Licensing, Llc Blending virtual environments with situated physical reality
CN111176621B (zh) * 2019-12-27 2024-02-09 北京富迪广通科技发展有限公司 虚拟维修训练平台开发系统

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3269797B2 (ja) 1997-12-12 2002-04-02 株式会社ナムコ 画像生成装置及び情報記憶媒体
US6348927B1 (en) * 1998-02-27 2002-02-19 Oracle Cor Composing a description of a virtual 3D world from values stored in a database and generated by decomposing another description of a virtual 3D world
US20030174178A1 (en) 2002-01-31 2003-09-18 Hodges Matthew Erwin System for presenting differentiated content in virtual reality environments
US8683386B2 (en) * 2006-10-03 2014-03-25 Brian Mark Shuster Virtual environment for computer game
US8732591B1 (en) * 2007-11-08 2014-05-20 Google Inc. Annotations of objects in multi-dimensional virtual environments
US8108468B2 (en) * 2009-01-20 2012-01-31 Disney Enterprises, Inc. System and method for customized experiences in a shared online environment
US8913009B2 (en) 2010-02-03 2014-12-16 Nintendo Co., Ltd. Spatially-correlated multi-display human-machine interface
EP2371432A3 (de) * 2010-03-09 2011-11-23 Crytek GmbH Computergesteuertes Videospielsystem für mehrere Benutzer und Verfahren zur Kontrolle von mindestens einer Spielmechanik
JP5728292B2 (ja) * 2011-02-04 2015-06-03 株式会社東芝 メモリデバイス及びホストシステム
US9285871B2 (en) 2011-09-30 2016-03-15 Microsoft Technology Licensing, Llc Personal audio/visual system for providing an adaptable augmented reality environment
US9230367B2 (en) 2011-12-13 2016-01-05 Here Global B.V. Augmented reality personalization
US10419556B2 (en) 2012-08-11 2019-09-17 Federico Fraccaroli Method, system and apparatus for interacting with a digital work that is performed in a predetermined location
US8489119B1 (en) 2012-08-11 2013-07-16 Federico Fraccaroli Method and apparatus for mediating among a plurality of profiles associated with users positioned in a shared location
US9530232B2 (en) 2012-09-04 2016-12-27 Qualcomm Incorporated Augmented reality surface segmentation
US10955665B2 (en) * 2013-06-18 2021-03-23 Microsoft Technology Licensing, Llc Concurrent optimal viewing of virtual objects
US9319443B2 (en) * 2013-06-26 2016-04-19 Comcast Cable Communications, Llc Content segment detection and replacement
US10318100B2 (en) * 2013-10-16 2019-06-11 Atheer, Inc. Method and apparatus for addressing obstruction in an interface
US9555326B2 (en) * 2014-03-11 2017-01-31 Microsoft Technology Licensing, Llc Gaming system for modular toys
US9916002B2 (en) * 2014-11-16 2018-03-13 Eonite Perception Inc. Social applications for augmented reality technologies
KR101608172B1 (ko) * 2014-12-22 2016-03-31 주식회사 넥슨코리아 객체를 제어하는 방법 및 장치
US20160225188A1 (en) * 2015-01-16 2016-08-04 VRstudios, Inc. Virtual-reality presentation volume within which human participants freely move while experiencing a virtual environment
US20160210780A1 (en) * 2015-01-20 2016-07-21 Jonathan Paulovich Applying real world scale to virtual content
TWI567670B (zh) * 2015-02-26 2017-01-21 宅妝股份有限公司 切換虛擬實境模式與擴增實境模式的管理方法以及系統
US9779554B2 (en) 2015-04-10 2017-10-03 Sony Interactive Entertainment Inc. Filtering and parental control methods for restricting visual activity on a head mounted display
US9898864B2 (en) * 2015-05-28 2018-02-20 Microsoft Technology Licensing, Llc Shared tactile interaction and user safety in shared space multi-person immersive virtual reality
US9996981B1 (en) * 2016-03-07 2018-06-12 Bao Tran Augmented reality system
US10245507B2 (en) * 2016-06-13 2019-04-02 Sony Interactive Entertainment Inc. Spectator management at view locations in virtual reality environments
CN107077755B (zh) * 2016-09-30 2021-06-04 达闼机器人有限公司 虚拟与现实融合方法、系统和虚拟现实设备
DK201870349A1 (en) * 2018-01-24 2019-10-23 Apple Inc. Devices, Methods, and Graphical User Interfaces for System-Wide Behavior for 3D Models

Also Published As

Publication number Publication date
US20190140885A1 (en) 2019-05-09
CN109754470A (zh) 2019-05-14
US10616033B2 (en) 2020-04-07
JP2019087235A (ja) 2019-06-06
JP7292846B2 (ja) 2023-06-19

Similar Documents

Publication Publication Date Title
DE102018217898A1 (de) Verschiedene Perspektiven aus einer gemeinsamen virtuellen Umgebung
DE102020107913A1 (de) Verwenden von spielstilmustern zum erzeugen von virtuellen darstellungen von spielern
WO2022151946A1 (zh) 虚拟角色的控制方法、装置、电子设备、计算机可读存储介质及计算机程序产品
US20100083140A1 (en) Method, system, and program product for variable rendering of virtual universe avatars
TW201442770A (zh) 資訊處理裝置、成像裝置、方法及程式
CN112306321B (zh) 一种信息展示方法、装置、设备及计算机可读存储介质
CN114307152A (zh) 虚拟场景的显示方法、装置、电子设备及存储介质
JP2024012545A (ja) 情報処理システム、情報処理方法、及びプログラム
JP2024056964A (ja) 情報処理システム、情報処理方法、及びプログラム
DE102016116582A1 (de) Verfahren und Vorrichtung zur Darstellung von erweiterter Realität
JP2023508058A (ja) 人工知能基盤動的ゲーム環境を生成するためのアイテム生産サービス提供システム
Mahmoud et al. Believable NPCs in serious games: HTN planning approach based on visual perception
Mack Evoking interactivity: film and videogame intermediality since the 1980s
CN111589115B (zh) 虚拟对象的视野控制方法、装置、存储介质及计算机设备
CN114359469A (zh) 生成主控对象投影的方法、装置、设备及介质
Jensen 3D Inhabited Virtual Worlds Interactivity and interaction between avatars, autonomous agents, and users
CN113144617A (zh) 虚拟对象的控制方法、装置、设备及计算机可读存储介质
Prakash et al. Gamification in informal education environments: A case study
Schatten et al. Towards Agent-Based Simulation of Emerging and Large-Scale Social Networks: Examples of the Migrant Crisis and MMORPGs
DE102023117678A1 (de) Systeme und verfahren für die interaktive darstellung einer virtuellen umgebung auf einem benutzergerät mit begrenzter rechnerkapazität
Miner Surveying the Frontier. Subjective Rendering and Occlusion in Open-World Westerns
CN113262481B (zh) 游戏中的互动方法、装置、设备及存储介质
WO2024012016A1 (zh) 虚拟场景的信息显示方法、装置、电子设备、存储介质及计算机程序产品
DE602004009168T2 (de) Vernetztes Bewegungssimulationssystem mit geteiltem Speicher
US20140295976A1 (en) Generation of Vision Recognition References from User Selected Content

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee