November 2016
Band 31, Nummer 11
Dieser Artikel wurde maschinell übersetzt.
HoloLens: Einführung in HoloLens
Durch Adam Tuliper | November 2016
Dies ist ein spannendes Jahr für neue bahnbrechende Geräte. Es bezeichnet das Jahr des virtual Reality (VR) und erweitert die Realität (AR), und einige sehr wichtige und hochgradig erwartete Geräte Lieferung, einschließlich HoloLens, HTC und Oculus größer werdende Kluft CV1 gestartet wurden. John Riccitiello, der CEO von Unity Technologies, sagte der AR/VR: "Es ist eine einmal in Generation-Technologie, ist daher überzeugende es buchstäblich alles ändert" und ich konnte nicht mehr akzeptieren. HoloLens, die interessante neue Gerät von Microsoft, kann die realen und virtuelle Welt mischen.
Was ist HoloLens?
HoloLens ist ein den ungebundenen, vollständig eigenständige Windows 10-Computer, der sich auf den Kopf verbleibt. Es ist als ein gemischter Realität-Gerät, ein Gerät bezeichnet wird, die versucht, die tatsächlichen und digitale Welten blend. Sie sehen, dass Objekte in der Welt platziert, die Aussehen und – anwachsen – dienen, wie sie in der Praxis sind. Im Gegensatz dazu VR immerses Sie in einer Umgebung, und Sie in der Regel nicht sehen, was für Sie aber die virtuelle Welt. Sie sind nicht in der Regel der realen Welt visuell über außerhalb des Bildschirms Head bereitgestellt (HMD). Dies dauert Sie fliegen im Weltraum, während Sie in Ihrem Bürostuhl sitzen. Und verbessern Sie den Globus mit zusätzlichen Daten, z. B. Marker oder heads-up Informationen, die Ihrem Standort betreffen möglicherweise, AR versucht. Einige AR-Headsets löst einfach Text und Bilder auf einem Bildschirm überlappen, was auch immer Sie sich ansehen.
Mit der HoloLens können Sie Clientanwendungen sowie in der Welt, um Sie bringen, die Ihrer Umgebung zu verstehen. Wenn Sie eine Anwendung, die an der Wand oder hüpfen wie eine digitale Bildschirm fixiert, siehe möchten Abbildung 1, kein Problem. Solche apps woanders, selbst wenn Sie Ihre Platz und kommen Sie am nächsten Tag. Ich bin ständig bei geöffnetem virtuelle Windows in andere Räume, um überrascht sein, wenn ich wieder Tage später dann und immer noch vorhanden sind. Aber das ist nicht alles. Angenommen Sie, Sie möchten ein Grundgerüst, Sie in Ihrem Wohnzimmer, das Sie aufzusuchen, und überprüfen Sie ständigen (einschließlich climbing auf Sofa, suchen am oberen Rand der Leiter). In diesem Fall kein Problem. Löschen ein virtuelles 3D-Objekts, z. B. einen Ball – so genannte ein Hologramm – in der Welt, und es wird fallen und drücken Sie die tatsächliche Tabelle und beenden. Verschieben Sie die Tabelle und der Ball fallen und Ihre echten Floor erreicht wird. Das HoloLens versteht die Welt um Sie und die meisten sind absolut begeistert die beim ersten Versuch es (obwohl ich noch warten bin Kung Fu in Mein Gehirn herunterladen können).
Abbildung 1-App auf Wand
In diesem Artikel, ich werde umfassen die HoloLens-Entwicklungsumgebung und die drei Säulen der Eingabe – bestaunen, Gesten und Stimme, die die primäre Methode für die Interaktion mit der HoloLens darstellen. Weitere HoloLens-Funktionen wie räumliche Zuordnung, räumliche Audio und Koordinatensysteme in meinem nächsten Artikel behandelt werden.
Tools und SDK
Es ist kein separates SDK für die HoloLens – es ist lediglich ein Teil der Windows-10-SDK. Sie nur benötigen Visual Studio 2015 mit Update 3 + installiert, und stellen Sie sicher, dass Sie während der Installation deaktivieren "Und Windows 10 SDK" aktiviert haben. Sie können zurückgehen und führen Sie den Visual Studio-Installer erneut aus, um diese Optionen natürlich auswählen – einfach das Update 3 (oder höhere, falls zutreffend)-Installationsprogramm erneut ausführen.
Die HoloLens ist ein Gerät für Windows 10, führt eine universelle Windows-Plattform (UWP) UWP-apps. Das ist richtig – alle Windows 10-app kann u. u. nicht nur auf dem Desktop, Phone und Xbox, sondern auch auf die HoloLens ausgeführt. Finden Sie veröffentlichte Leitfaden für Ihre apps für Windows Phone und Windows Store nicht UWP dauert und konvertieren sie unter bit.ly/2c3Hkit. Um sicherzustellen, dass eine UWP-app im Windows Store angezeigt wird, sicher, dass Sie haben zulässig HoloLens-Gerätefamilie im Windows Developer Center bei der Veröffentlichung Ihrer Anwendung Siehe Abbildung 2. Wie bei jeder Anwendung auf jeder Plattform der Fall ist, müssen Sie sicherstellen, Ihre Anwendung wird auf dem betreffenden Gerät, das Sie als Ziel, gut aussehen, wie unterschiedliche Geräte unterschiedliche Lösungen und Memory-Funktionen.
Abbildung 2 die Windows-Entwicklungscenter-Übermittlung sicherstellen unterstützt die HoloLens
Die beiden Optionen für die Anwendungsentwicklung Hologramm, die Art, die Vorteile der HoloLens-Funktion zu nutzen, kann festlegen, DirectX und Unity. Sie können auch eine einfache UWP-app mit c# und XAML erstellen aber es als 2D Anwendung ausgeführt wird, auf die HoloLens und erhalten Sie nicht die Möglichkeit, alle Hologramme im Raum zu löschen. Es sind Projektvorlagen in Visual Studio Hologramm Anwendung, die Hologramme, angezeigt werden können wie in dargestellt Abbildung 3. Stellen Sie sicher bereits erfüllt sind oder möglicherweise nicht die verfügbaren Vorlagen angezeigt. Unity (meiner bevorzugten Entwicklungsumgebung für die HoloLens) einsatzfähig Unterstützung in den HoloLens Technical Preview (HTP)-Builds auf seiner Website unter bit.ly/2bBZsNn.
Abbildung 3 HoloLens DirectX-Vorlagen
An einem gewissen Punkt müssen jedoch Sie Visual Studio berühren, selbst wenn Sie Unity nutzen, obwohl Entwicklungsoberfläche mit reinen DirectX völlig anders ist. Bereitstellen für die HoloLens erfolgt über Visual Studio und kann ausgeführt werden, über eine lokale USB-Verbindung, eine Remoteverbindung oder den Emulator, siehe Abbildung 4.
Abbildung 4 verschiedene Arten für die Bereitstellung auf die HoloLens
Was ist mit der Dokumentation? MSDN ist seit langem ein Kernbereich für Entwickler, aber Jahre Additions machte es schwieriger zu finden, was Sie benötigen. Dokumentation ist jetzt vollständig auf docs.microsoft.com wiederholt wird. Das HoloLens-Team verfolgt die Dokumentation ausgezeichnete werden und Sie können an einem bestimmten Ort, an den meisten Auffinden bit.ly/1rb7i5C. Wenn Sie etwas fehlte finden, können Sie das HoloLens-Team kennen. Wir haben eine neue Ära viele Dinge bei Microsoft besser zu machen, und das HoloLens-Team trägt dazu bei, wie gut, solide Dokumentation führen.
Hardware der HoloLens wird mit 60 FPS angezeigt, daher ist es äußerst wichtig, um sicherzustellen, dass Ihre Erfahrungen mit diesem Framerate ausführen. Sie sollten auch sicherstellen, dass Sie innerhalb des Geräts Arbeitsspeicherbedarf bleiben. (Dies ist der Erstellung dieses Dokuments 900MB Arbeitsspeicher zur Verfügung steht für Ihre Anwendung daher). Wenn Sie mit der Entwicklung von grafisch Erfahrungen nicht vertraut sind, ist es verlockend, nehmen eine beliebige Art Asset und platzieren Sie es in der Szene. Sie denken möglicherweise, "Ich kann nehmen ein 3D-Modell der Meine Stadt und fügen Sie es in Meine Szene und erforschen!" Aber dies würde wahrscheinlich Probleme auf jeder Plattform. Bedenken Sie die meisten Spiele implementieren viele Tricks reduzieren zeichnen Aufrufe, Geometrie verdeckt, niedrigerer Auflösung Modelle, die weiter entfernte (namens Level Detail-oder LOD) anzeigen und vieles mehr, und die HoloLens stellt keine Ausnahme. Empfehlungen zur Leistung finden Sie unter bit.ly/2besJxQ. Einige Beispiele für die Optimierung sehen Sie in das Modul "Optimieren Ihre Spiele" bit.ly/2dBqMxw.
Der Emulator der HoloLens Emulator erhalten Sie ziemlich weit im Entwicklungsprozess. Technisch gesehen, benötigen Sie keine HoloLens, eine Lösung entwickeln wie Sie ein Telefon benötigen, einem Telefon zu entwickeln. An einem bestimmten Punkt jedoch sollten offensichtlich Sie auf einem Gerät zu testen. Der Emulator kann emulieren, Gesten, Head Position und Stimme, jedoch hat Einschränkungen. Wenn Sie einen Emulator, sind Sie wird nicht finden Sie unter der realen Welt um Ihre Hologramme als Abbildung 5 angezeigt wird, wenn Sie einen Shader des Netzes räumliche zuweisen können die im nächsten Artikel behandelt werden.
Abbildung 5: verwenden den HoloLens Emulator
Es gibt vier vordefinierten Raum-Modelle, die Sie im Emulator auswählen können. Da Sie eine HoloLens im Kopf haben, sollten der Emulator kennen den Raum und vom Standpunkt der 3D sieht es. Ich bin springen direkt zum nächsten Artikel ein wenig, aber die HoloLens versteht den Leerraum um Sie und ihre Kenntnisse dieser Speicherplatz wird ständig aktualisiert werden, siehe Abbildung 6. Diese Ansicht "hinter den Kulissen" Was die HoloLens angezeigt wird, ist ein Raum, der standardmäßig in den Emulator geladen und steht in der Windows-Device-Portal, die Sie für den Emulator oder Ihr real HoloLens Gerät zugreifen können. Sie können ein Modell Platz haben mit der HoloLens gescannt und in den Emulator zu laden, speichern, d.h. kann auch eine HoloLens und im Emulator oder mehrere Instanzen des Emulators mit mehreren Benutzeroberflächen entwickeln und Laden Sie in Ihren eigenen benutzerdefinierten Räume, zu testen.
Abbildung 6 das Standardmodell für Platz im Emulator angezeigt wird geladen
Windows-Hologramm
Windows 10 enthält APIs für Desktopcomputer, und Xbox für die Hologramm Windows-Plattform. Es ist über diese APIs, mit denen Sie nicht nur die HoloLens jedoch andere zukünftige Geräte auch interagieren können von anderen Anbietern, wie z. B. Intel neues Projekt aus den ungebundenen Kopfhörer, HTC, Qualcomm und vielen anderen Initiativen einschließen. Einige der APIs für Windows Hologramm können in den folgenden neuen Namespaces gefunden werden (Ich empfehle, betrachten wir diese erhalten eine Vorstellung von der zugrunde liegenden Klassen und Strukturen):
- Windows.Graphics.Holographic (bit.ly/2bFbeqv)
- Windows.Perception (bit.ly/2bVNMHj)
- Windows.Perception.Spatial (bit.ly/2bwjB8h)
- Windows.Perception.Spatial.Surfaces (bit.ly/2bG9jCZ)
- Windows.UI.Input.Spatial (bit.ly/2bipBOo)
Es gibt drei Säulen auf der HoloLens – bestaunen, Gesten und Stimme und diese sind, was ich jetzt konzentrieren auf. Sollten Sie lesen Sie meine früheren Artikel zur Entwicklung von Spielen oder online-Videos für Microsoft Virtual Academy angeschaut haben, wissen Sie sehr gern Spiele-Engine Unity, alle Angebote, die Code-Beispiele, die Folgen Unity c# basieren.
Bestaunen ist im Wesentlichen die HoloLens, wäre es am einfachsten, die beachtet werden, wenn er sich auf den Kopf befindet. Um zu verstehen, welche bestaunen darstellt, betrachten wir im Windows.Perception.People-Namespace der HeadPose-Klasse, die drei Vector3-Typen enthält (eine Vector3-Struktur enthält nur X, y, Z einzelne Werte):
- ForwardDirection: Ruft die Vorwärts der HoloLens.
- Position: Ruft die Position der HoloLens ab.
- UpDirection: Ruft die Richtung für die HoloLens ist.
Diese Informationen können Sie bestimmen, in denen der Benutzer ist und in welche Richtung sie suchen. Wenn eine Anwendung auf die HoloLens gestartet wird, ist die Anfangsposition am 0,0,0).. Von dieser Position ist es einfach zu bestimmen, wo und in welcher Richtung der Benutzer wechselt. Sehen wir uns zunächst an, wie das Objekt zu erkennen, das der Benutzer angezeigt wird. Die Anforderung ist, dass dieses Objekt eine Collider-Komponente wird, um zu erkennen, die in Unity leicht ein Objekt hinzugefügt werden kann. In Unity verwenden anstelle der HeadPose Sie einfach die Camera.main Informationen (Hintergrund) die HeadPose zugeordnet ist. Wenn Sie bereits mit der Arbeit in Unity mit der Kamera, unterscheidet sich nichts. Mit diesen Informationen können Schießen unsichtbar Pfeil und erfahren Sie, was er (ein übliches Verfahren in 3D programming aufgerufene Chow Umwandlung) erreicht. Ich muss nur noch ein Spiel Objekt wie ein Cube mit dem Skript Interactible (Abbildung 7) und ein weiteres separates leere Spiel Objekt mit dem InteractibleManager (Abbildung 8) auf.
Abbildung 7 die Interactible-Klasse
public class Interactible : MonoBehaviour
{
// The materials we’ll set to highlight.
private Material[] defaultMaterials;
void Awake()
{
// Get the materials from our renderer.
// A material contains a shader which lights/colors object.
defaultMaterials = GetComponent<Renderer>().materials;
}
void GazeEntered()
{
for (int i = 0; i < defaultMaterials.Length; i++)
{
// This assumed we're using a shader that has a Highlight
// property, as does the Custom/SpecularHighlight one
// from Holograms 210. This adds lighting color to it
// to "highlight" it.
defaultMaterials[i].SetFloat("_Highlight", .25f);
}
}
void GazeExited()
{
for (int i = 0; i < defaultMaterials.Length; i++)
{
defaultMaterials[i].SetFloat("_Highlight", 0f);
}
}
}
Abbildung 8: die InteractibleManager-Klasse
public class InteractibleManager : MonoBehaviour
{
private GameObject lastHit;
// Every frame see if we are looking at a HoloGram (i.e. a game object).
void Update()
{
RaycastHit hitInfo;
if (Physics.Raycast(
Camera.main.transform.position,
Camera.main.transform.forward,
out hitInfo,
10.0f,
Physics.DefaultRaycastLayers))
{
// The game object we've hit.
var tempGO = hitInfo.collider.gameObject;
// See if this object contains our Interactible class.
if(tempGO.GetComponent<Interactible>() != null)
{
lastHit = tempGO;
// Loosely coupled way to call a method in Unity on our g.o.
lastHit.SendMessage("GazeEntered");
}
}
else
{
// No object detected in Gaze, lets deselect the last one.
if(lastHit!=null)
{
lastHit.SendMessage("GazeExited");
lastHit = null;
}
}
}
}
Ich habe gerade einen Überblick über die wichtigsten Konzepte hier darstellen. Finden Sie wesentlich mehr Details in den Holographic Academy-Kurs auf bestaunen Hologramme 210 Konzepte, einschließlich der Head positionieren, um die verschiedenen verbringen vermeiden Sie beim Auswählen von Objekten in der Stabilisierungsphase (bit.ly/2b9TWlR). Kurz gesagt, ist Camera.main die Position des HoloLens. Sie gehen Ihre unsichtbar Strahl von dieser Position in der Camera.main.forward Richtung der ersten Collider zu finden, die Sie treffen. Wenn Sie etwas finden, ist erforderlich, markieren Sie es durch Festlegung einer Variablen, die der Shader verwenden. Im Beispiel Abbildung 7, ich nur.25 bei Auswahl legen Sie den _Highlight-Wert und den Shader aus Hologramme 210 verwendet. Sie könnten verwenden den standardmäßigen Unity-Shader auch und Emissionen die Helligkeit der Farbe stattdessen wie folgt:
defaultMaterials[i].SetFloat("_EmissionColor", Color(0,0,0,.2f);
Sie müssen die Auswirkung der Shader auf die Leistung der HoloLens berücksichtigen. Dieses Gerät ist beim erstaunlich, von der Größe beschränkt, wie häufig der Fall mit der Hardware ist. Fast jeder Erfahrung und Spiel heute hat Zeit für die Optimierung und der HoloLens unterscheidet. Beim Entwickeln für die HoloLens mit Unity ist das erste, was Sie tun möchten Swap, Shader für die optimierte Varianten befindet sich in der HoloToolkit am bit.ly/2bO6cH2.
Die HoloToolkit enthält viele Hilfsfunktionen und Objekte, die können erheblich HoloLens-Entwicklung, einschließlich Cursor unterstützen, bestaunen Stabilisatoren, Gestenhandler und Manager übergeben, plane Erkennungsprogramme, führen Sie die – ich Skripts, Beispiele für die gemeinsame Nutzung über mehrere HoloLens und vieles mehr. Die meisten dieser Funktionen ist in der HoloToolkit-Unity am bit.ly/2bO8XrT, werden Sie sehen im richtigen Repository und nicht nur auf die grundlegenden HoloToolkit an bit.ly/2bPCbas, das jedoch eignet sich eigenständig und enthält verschiedene Standalone-Beispielprojekte und andere Bibliothekscode, der der HoloToolkit-Unity verwendet.
Wenn Objekte, die im sichtbaren Bereich sind, werden sie ein Spiel auf dem Bildschirm VR, AR oder gemischten Realität, ist es sinnvoll, geben Sie einen kleinen Indikator den Benutzer informiert sie für ein Objekt suchen sollten, wenn sie beginnen, sehen sofort, wie in dargestellt, in welche Richtung Abbildung 9. Dies ist ein sehr häufiges Verfahren in vielen Videospiele, und es ist unglaublich nützlich, in der Welt gemischten Realität.
Abbildung 9 einen direktionalen Indikator anzeigen
Der Code in Abbildung 10 können verwendet werden, um zu bestimmen, ob ein bestimmtes Hologramm sichtbar ist.
Abbildung 10 zu bestimmen, ob ein Hologramm sichtbar ist.
[Tooltip("Allowable percentage (to 30%) inside the holographic frame to continue to show a directional indicator.")]
[Range(-0.3f, 0.3f)]
public float TitleSafeFactor = 0.1f;
// Determine if sgame object is visible within a certain percentage.
// The Viewport is 0,0 to 1,1 (bottom left of screen to top right).
private bool IsTargetVisible()
{
// This will return true if the target's mesh is within the Main
// Camera's view frustums.
Vector3 targetViewportPosition =
Camera.main.WorldToViewportPoint(gameObject.transform.position);
return (targetViewportPosition.x > TitleSafeFactor &&
targetViewportPosition.x < 1 - TitleSafeFactor &&
targetViewportPosition.y > TitleSafeFactor &&
targetViewportPosition.y < 1 - TitleSafeFactor &&
targetViewportPosition.z > 0);
}
Sobald Sie wissen, ob ein Objekt nicht sichtbar ist (oder kaum sichtbar ist), können Sie in die Richtung, in einem richtungsindikator anzeigen herausfinden. Da Sie Zugriff auf die Kameraposition und einer beliebigen Position spielobjekt haben, ist es einfach, herauszufinden, wo ein Hologramm,, in denen der Benutzer suchen verglichen wird. Um erhalten ein direktionale Vektor, der ein Pfeil von der Kamera zu einem bestimmten Spiel Objekt ist lediglich zentral von der anderen zu subtrahieren und normalisieren, um erleichtern eins (es ist am einfachsten, einen normalisierten Vektor in viele Berechnungen verwenden), etwa so:
Vector3 camToObjectDirection =
gameObject.transform.position - Camera.main.transform.position;
camToObjectDirection.Normalize();
Direktionale Indikatoren mit erfordert ein paar andere Dinge eingerichtet werden, aber dies ist die Überschrift der Funktionalität. Wenn Sie die Richtung zwischen den HoloLens (d. h. die Kamera) Hologramm kennen, können Sie einen Indikator auf dem Bildschirm anzeigen. Sie können diese Funktion ausführlicher unter Auschecken bit.ly/2bh0Hz7.
Bewegung ist die nächste Möglichkeit der Verarbeitung von Eingaben für die HoloLens. Gesten werden mit der Hand, Controller oder Sprachbefehle ausgeführt. Verfügbare Aktionen sind über eine von der Kamera auf der Vorderseite, in die genannte Aktion Frame eine einfarbige Fläche, die erweitert den Anzeigebereich auf allen Seiten der Hologramm, können Sie Ihre Hand näher an Ihrer Stelle zu speichern, statt sie gedrückt zu halten überprüft die Möglichkeit, jedes Mal. Sie in der Regel nicht tippen Sie auf Hologramme, aber stattdessen tippen und bestimmen, was der Benutzer über bestaunen angezeigt wird.
Die HoloLens unterstützt zwei Kategorien von Gesten. Das erste enthält diskrete Gesten, wie eine schnelle einzelne Aktion wie gezeigt Luft Tap Abbildung 11, mit der enthaltenen Bluetooth-clicker aus, besagt, dass der Befehl "Select" oder sogar ein Doppeltippen. Der zweite Typ umfasst die fortlaufende Gesten, die mit der Zeit auftreten und werden in der Regel ausgelöst, wenn Sie halten und fahren mit der Hand. Fortlaufende Gesten bieten Unterstützung für die Navigation und Bearbeitung. Navigation Gesten bieten Ihnen die Startposition 0,0,0). – ist immer die Bewegung gestartet – und anschließend zu einem virtuellen Cube in der Speicherplatz, der Ihnen ermöglicht, zwischen-1 und 1 für jede Achse innerhalb dieses Cubes wechseln, um (neben anderen Fällen) bereitstellen eingeschränkt werden Drehung um eine oder mehrere Achsen oder optimierten Bildlauf zu glätten. Manipulation Gesten, statt zu einem virtuellen Cube, einschränken ermöglichen eine 1:1-Bewegung zwischen Hände und Hologramme – stellen Sie sich praktisch zeichnen oder schön flüssigen Entwicklungsländern positionieren Hologramme, um Ihre Umgebung; sinngemäß World Relative Positionsinformationen x, y, Z.
Abbildung 11 eine Air Tap
Als Entwickler können Sie natürlich Hook in den Gesten wie Luft Tap, halten, Navigation und Bearbeitung. Derzeit besteht keine Unterstützung für benutzerdefinierte Gesten, aber Sie haben Zugriff auf eine wesentlich bessere Daten über die oben genannten Gesten. Sie können auch manuell nachverfolgen positionieren (Wenn in den Status "bereit" oder gedrückten Zustand befindet), x, y, Z und verstehen, wenn die Hände in sind, oder lassen Sie den Gestenhandler-Frame, der können Feedback hilfreich für den Benutzer wird die Hände des Frames Bewegung verlässt.
Abbildung 12 die GestureManager-Klasse
public class GestureManager : MonoBehaviour
{
private GestureRecognizer gestureRecognizer;
void Start()
{
gestureRecognizer = new GestureRecognizer();
// We can register here for more than just tap (ex Navigation).
gestureRecognizer.SetRecognizableGestures(GestureSettings.Tap);
gestureRecognizer.TappedEvent += (source, tapCount, ray) =>
{
// A tap has been detected.
// Raycast using the provided ray and get the hit game
// object and perform some action on it as was done previously.
};
gestureRecognizer.StartCapturingGestures();
}
void OnDestroy()
{
gestureRecognizer.StopCapturingGestures();
}
}
Sie können eine GestureManager-Klasse, wie in hinzufügen Abbildung 12 um für die abgerufenen Ereignis registriert wird, Sie wissen damit, z. B. wenn der Benutzer durchgeführten eine Tap-Bewegung über den Befehl Select Stimme, einen Controller oder eine Hand (unabhängig davon, wo angetippt). Anschließend müssen Sie bestimmen, welche Anzeigedaten wurde beim Tippen genauso wie zuvor ausgeführt wurde. Es ist wichtig zu beachten, dass die TappedEvent in Abbildung 12 übergeben Strahl, das darstellt, bei denen das Anfangselement war, als das Ereignis aufgetreten ist. Im Fall von fast Leseköpfe müssen Raycast aus, bei denen die bestaunen war, wenn der Benutzer tippt, in denen es sich handelt, wenn das Ereignis eintrifft, die leicht von den ursprünglichen Speicherort möglicherweise werden soll.
Sprachbefehle auf der HoloLens auf Systemebene über Cortana, unterstützt aber auch das gleiche Sprachmodul als UWP-apps freigeben und benötigen daher die Gerätefunktion Mikrofon in die Projektdatei "Package.appxmanifest". Die Verarbeitung von Audiodaten ist hardwarebeschleunigte und 16khz bis 48khz 24-Bit-audio-Streams von Sprach- und der Umgebung des Benutzers enthält. Integrierte Cortana-Befehle einschließen "Auswählen", "Hey, Cortana < Befehl >" und in-app-Befehle enthalten, "Select" (anstelle von Air-tippen) und "Speichern".
Reagieren auf benutzerdefinierte Sprachbefehle ist möglich und unkompliziert. Einfach, Hinzufügen von Schlüsselwörtern und Delegieren Code ausführen und Starten der Überwachung, siehe Abbildung 13.
Abbildung 13: Hinzufügen von Schlüsselwörtern und Delegatcode
public class SpeechManager : MonoBehaviour
{
KeywordRecognizer keywordRecognizer;
Dictionary<string, System.Action> keywords =
new Dictionary<string, System.Action>();
void Start()
{
keywords.Add("Reset level", () =>
{
// Call the OnReset method on every descendant object to reset their state.
this.BroadcastMessage("OnReset");
// We could also do a full-level reload via
// SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
});
// Tell the KeywordRecognizer about our keywords.
keywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray());
// Register a callback for the KeywordRecognizer and start recognizing!
keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized;
keywordRecognizer.Start();
}
private void KeywordRecognizer_
OnPhraseRecognized(PhraseRecognizedEventArgs args)
{
System.Action keywordAction;
if (keywords.TryGetValue(args.text, out keywordAction))
{
keywordAction.Invoke();
}
}
}
Suchen Sie hierzu Sprache-zu-Text handelt Diktatmodus verfügbar ist, auch mithilfe der Klasse DictationManager DictationHypothesis, DictationResult, DictationComplete und DictationError Ereignisse abzurufen. Beachten Sie, dass dies WiFi-Verbindung erforderlich ist. Mein Kollege Jared Bienz hinzugefügt einige gute Unterstützung für Text, auch die sich in der HoloToolkit für Unity.
Zusammenfassung
Die HoloLens öffnet eine neue Ära wie die Welt um Sie tatsächlich und die virtuelle Welt mischen auftreten können. Erste Schritte bei HoloLens.com und achten Sie es für Ankündigungen. Informieren Sie sich regelmäßig für meine nächsten Artikel, in dem meiner bevorzugten HoloLens-Funktion, die räumliche besprochen wird die Zuordnung.
Adam Tuliper ist als senior technical Evangelist bei Microsoft im sonnigen SoCal Leben. Er ist ein Web- und Spieleentwickler, Pluralsight.com-Autor und ein vielseitig interessierter Techniknarr. Suchen Sie ihn auf Twitter: @AdamTuliper oder channel9.msdn.com/Blogs/AdamsGarage.
Unser Dank gilt dem folgenden technischen Experten bei Microsoft für die Durchsicht dieses Artikels: Jackson-Felder
Jackson Felder ist Software Engineer bei Microsoft