Placeholder Image

字幕表 動画を再生する

AI 自動生成字幕
  • What is up everyone and welcome to a new tutorial about Spatial Anchor.

    空間アンカーについての新しいチュートリアルへようこそ。

  • So, we previously learned how to create mixed reality applications using the Unity XR Toolkit.

    以前、Unity XR Toolkitを使って複合現実アプリケーションを作成する方法を学びました。

  • We did some plane detection to set plane on the position of our walls, ceiling, and floor in the real world.

    現実世界の壁、天井、床の位置に平面を設定するために、平面検出を行った。

  • But how can we actually anchor not just plane but any object anywhere to our real world?

    しかし、飛行機だけでなく、あらゆる物体を現実の世界に固定するにはどうすればいいのだろうか?

  • And this is what we are going to see with the Spatial Anchor.

    そして、これが空間アンカーに見られるものだ。

  • As the name suggests, the Spatial Anchor will use the feature of the real world to set the position of an object in your game.

    その名の通り、空間アンカーは現実世界の特徴を利用してゲーム内のオブジェクトの位置を設定します。

  • This means that the object will not follow your game, which is pretty cool if you don't want the object to move when the player is centered or leave the headset.

    これはオブジェクトがゲームに追従しないことを意味し、プレイヤーがヘッドセットの中心にいるときやヘッドセットから離れたときにオブジェクトが移動するのを避けたい場合は、かなりクールです。

  • Now, I hope you guys are ready for the first tutorial of 2024 and if you are, make sure to leave a like down below.

    さて、2024年最初のチュートリアルの準備はできただろうか?

  • You can as always support my work on my Patreon where you will be able to find the source code of all of my tutorials and some exclusive content.

    私のチュートリアルのソースコードや限定コンテンツをご覧いただけます。

  • But without further ado, let's get started!

    さて、早速始めよう!

  • Okay, so we are back where we were left at the end of the second episode about using the Unity XR Toolkit to make a meta mixed reality application and this is the project that I'm going to use to show you how to use the Spatial Anchor.

    さて、Unity XR Toolkitを使ってメタミックスドリアリティアプリケーションを作るという、第2話の最後で中断したところに戻ってきました。

  • So, first thing first, as you can see, there is a big change from the last episode.

    さて、まず最初に、ご覧の通り、前回のエピソードから大きな変化がある。

  • It is that now the version of Unity that I'm using is 2023.2 and not 2022.

    今使っているUnityのバージョンが2022ではなく、2023.2なんだ。

  • Now, this is important because if we go to Windows, Package Manager, there if you go to In Project, as you can see, the version of AR Foundation that we are currently using is the version 5.1.1, but this version is actually not the latest one.

    というのも、Windowsのパッケージマネージャからプロジェクトの中に入ると、現在使用しているAR Foundationのバージョンは5.1.1ですが、実はこのバージョンは最新版ではないからです。

  • There is actually a new version, so the 6.0, which has changed some of the stuff from the AR Foundation that I want to use because I want to make this tutorial last as long as possible.

    このチュートリアルをできるだけ長く続けたいので、AR Foundationのものを使いたいのです。

  • So, to make sure that future people will be able to look at this tutorial right now and do the same stuff as me, well, what we are going to do is update this AR Foundation and, as mentioned, the first step is to use the Unity version 2023 and the second version is to download the Unity AR Foundation 6.0.

    そこで、未来の人々が今このチュートリアルを見て、私と同じことができるようにするために、このAR Foundationをアップデートします。

  • Now, to download this version of the AR Foundation, if we go to AR Package Manager, AR Foundation, and that we have a look at the version history, as you can see, we cannot see any other version right there and it cannot be downloaded here from the Package Manager, but what we can do is actually download the new version of the AR Foundation by changing the Package Manifest.

    このバージョンのAR Foundationをダウンロードするには、AR Package ManagerのAR Foundationを開き、バージョン履歴を見ると、ご覧のように他のバージョンは表示されず、パッケージマネージャからダウンロードすることはできません。

  • So, let me close this, then right-click on Asset here and click on Show in Explorer.

    では、これを閉じて、このアセットの上で右クリックし、「エクスプローラーに表示」をクリックしてみよう。

  • Now, it should open here an Explorer page and if we go here to Packages, we can double-click on Manifest right there and here you can see all of the packages that are inside this project and if we go here to the XR AR Foundation, we can see the version that we are using is 5.1.1 and, in my case, I want to use the latest one which is 6.0.0.3.5.

    ここでエクスプローラーページを開き、パッケージ(Packages)に移動し、マニフェスト(Manifest)をダブルクリックすると、このプロジェクトに含まれるすべてのパッケージが表示されます。ここでXR AR Foundationに移動すると、使用しているバージョンが5.1.1であることがわかります。

  • There you go.

    そうだ。

  • Now, make sure to have the same thing as me written over there and to not make any typo for this work.

    この作品では、私と同じことを書き、タイプミスをしないように注意してください。

  • We can then save the manifest with Ctrl S and then go back to Unity.

    Ctrl Sでマニフェストを保存し、Unityに戻ります。

  • And there you go, as you can see, it is now updating the package.

    ご覧の通り、パッケージが更新されました。

  • And if we go to Windows Package Manager, as you can see, we can see that we have successfully updated the AR Foundation to the new 6.0 version.

    そして、Windowsパッケージマネージャにアクセスすると、ご覧のように、AR Foundationが新しいバージョン6.0にアップデートされていることがわかります。

  • Beautiful!

    美しい!

  • Now, let's close this and let's create our first Spatial Anchor.

    では、これを閉じて、最初の空間アンカーを作りましょう。

  • Okay, so the first step to create a Spatial Anchor is to go to the XR Origin right there and click on Add Component to add a AR Anchor Manager.

    空間アンカーを作成する最初のステップは、XR Originでコンポーネントの追加をクリックし、ARアンカーマネージャを追加することです。

  • Beautiful!

    美しい!

  • And, believe it or not, but it is the only thing that we need to manage the anchor in our game.

    そして、信じられないかもしれないが、アンカーを管理するために必要な唯一のものなのだ。

  • So, what we can do now is create the fourth anchor and for this, I think I'm going to right-click, go to 3D Object and create a very simple 3D cube that I'm going to put in front of the player.

    4つ目のアンカーを作るために、右クリックして「3Dオブジェクト」を開き、とてもシンプルな3D立方体を作って、それを選手の前に置こうと思います。

  • So, let's first set it to 0, 0, move it forward a bit upward, scale it, maybe do a little rotation.

    まず、0, 0に設定し、少し上方に移動させ、拡大縮小し、少し回転させる。

  • And now, my goal is to turn this cube into an anchor which will be fixed inside our real environment and not moving with the player.

    そして今、私の目標は、この立方体をアンカーに変えることだ。アンカーは現実の環境内に固定され、選手と一緒に動くことはない。

  • So, let's click on Add Component and create a new Beautiful!

    それでは、Add Componentをクリックし、新しいBeautifulを作りましょう!

  • Now, as the name suggests, my goal is to set this cube to be an anchor at the start of the game.

    さて、その名の通り、私の目標はこのキューブを試合開始時のアンカーに据えることだ。

  • So, for this, we need to write at the top using UnityEngine.XR.ARFoundation and then, we can simply remove here the Update function because, as you will see, it's very simple to turn this GameObject into an anchor at the start because we only need to do GameObject.AddComponent and add a component of type ARAnchor.

    というのも、このGameObjectをアンカーにするのは非常に簡単で、GameObject.AddComponentでARAnchor型のコンポーネントを追加するだけだからです。

  • And beautiful!

    そして美しい!

  • Now, that's basically it.

    さて、基本的にはそれだけだ。

  • Simply by adding this ARAnchor component, we will anchor this 3D cube inside our real world.

    このARAnchorコンポーネントを追加するだけで、この3D立方体を現実世界の中に固定することができる。

  • Oh, and by the way, if you want this cube to stop being an anchor in your world, you can simply call DestroyGameObject.GetComponentARAnchor like this.

    ちなみに、このキューブをワールドのアンカーにしないようにするには、次のようにDestroyGameObject.GetComponentARAnchorを呼び出せばいい。

  • But, of course, this line is just here to show a bit what you should write if you want to destroy the ARAnchor.

    しかし、もちろん、この行は、ARAnchorを破壊したい場合に何を書くべきかを少し示すためのものだ。

  • We don't actually want to do this in this case.

    この場合、実際にはこんなことはしたくない。

  • So, let me simply remove it like this.

    だから、こうやって簡単に削除してみよう。

  • Beautiful!

    美しい!

  • And now, let's save and go back to the Unity.

    そして、保存してユニティに戻ろう。

  • Now, what I'm going to do is simply place this cube on the side and duplicate it.

    さて、これからやることは、このキューブを横に置いて複製するだけだ。

  • And on this new cube on the right, what I'm going to do is remove here the SetAnchorAtStart.

    右側の新しいキューブでは、SetAnchorAtStartを削除します。

  • Now, my goal is simply to showcase to you the difference between one cube which is anchor and another which is not.

    さて、私のゴールは、アンカーであるキューブとそうでないキューブの違いを皆さんにお見せすることだ。

  • So, one thing left to do.

    というわけで、残すはひとつ。

  • Now, it is to build our game.

    今は試合を作ることだ。

  • So, let's go to File and click on Build and Run.

    では、「ファイル」から「ビルドして実行」をクリックしよう。

  • Okay, so here you go.

    さて、それではどうぞ。

  • As you can see, I'm inside the Mixed Reality application.

    ご覧の通り、私はMixed Realityアプリケーションの中にいる。

  • On the right side, I have a cube which is anchor but not on the left side.

    右側には、アンカーになっているキューブがあるが、左側にはない。

  • And let me just show you the difference.

    その違いをお見せしよう。

  • If, for example, I turn my head slightly to the left here and that I try to press on the recenter button here on my Oculus right hand controller.

    例えば、ここで頭を少し左に向け、オキュラスの右手コントローラーのリセンターボタンを押そうとした場合。

  • As you can see, this cube does not move because it is anchor inside our real environment and not based on the player's position like the rest of the objects are.

    見ての通り、この立方体は、他のオブジェクトのようにプレイヤーの位置に基づいているのではなく、現実の環境内にアンカーがあるため、動かない。

  • But, of course, here we are able to anchor some objects at the start of the game.

    しかしもちろん、ここでは試合開始時にいくつかのオブジェクトを固定することができる。

  • Now, let me show you how to do this at runtime.

    では、実行時にこれを行う方法をお見せしよう。

  • So, let's go back to Unity.

    では、ユニティに戻ろう。

  • Okay, so now let's see how we can create anchor during runtime.

    それでは、実行中にアンカーを作成する方法を見てみよう。

  • So, to do this, I'm going to create a very simple interaction here which is to add some ray which will come out of my hands.

    そこで、とてもシンプルなインタラクションを作り、手から光線を出すことにします。

  • And if I press on the grip button, I want to set an anchor where my ray is pointing.

    そして、グリップボタンを押したら、レイが向いているところにアンカーをセットしたい。

  • So, first thing first, we need to add a ray interactor.

    そこで、まず最初にレイ・インタラクタを追加する必要がある。

  • So, for this, let's go under our camera offset here which is located under the XR for ray interactor action based.

    そこで、カメラオフセットの下にあるXRのレイ・インタラクター・アクション・ベースに移動します。

  • Beautiful.

    美しい。

  • I'm going to call it right ray interactor.

    僕はこれを "right ray interactor "と呼ぶことにするよ。

  • We can go under the XR controller, select here this little icon and search for the right controller preset.

    XRコントローラーの下にあるこの小さなアイコンを選択し、適切なコントローラー・プリセットを検索します。

  • Beautiful.

    美しい。

  • Now, we can duplicate this, rename it left ray interactor and do the same but this time for the left controller preset.

    次に、これを複製し、left ray interactorという名前に変えて、同じことを今度は左コントローラーのプリセットに対して行います。

  • Beautiful.

    美しい。

  • Now, with this, as you can see, this will add a ray interactor that will follow our left or right hand.

    これで、ご覧のように、左右の手を追うレイ・インタラクータが追加されます。

  • And one thing that I want to do is if we select both the right and left ray interactor by pressing on the control key, I want here to set the line bend ratio to one because I don't want the line to bend at all.

    コントロールキーを押して左右のレイ・インタラクタを選択した場合、ラインを曲げたくないので、ラインの曲げ率を1に設定します。

  • Beautiful.

    美しい。

  • Now, if you remember in the previous episode, what was actually happening was that there was a near default plane which was for each one of the wall or the ceiling of the floor that we have in our real world.

    さて、前回のエピソードを思い出してほしいのだが、実際に起きていたのは、現実世界にある壁や床の天井のひとつひとつに対応する、ほぼデフォルトの平面があったということだ。

  • And if we click on this AR default plane, as you can see, it is basically a mesh collider.

    このARデフォルトプレーンをクリックすると、ご覧の通り、基本的にはメッシュコライダーです。

  • So, this allowed us, if you remember, to create some collision within the scene from our real world to our virtual one which is awesome.

    このおかげで、現実の世界とバーチャルの世界との衝突を作り出すことができた。

  • But anyway, I want to use this AR plane as well because I want to make it from the ray interactor.

    とにかく、レイ・インタラクターから作りたいので、このARプレーンも使いたい。

  • So, let's click on add component and add a xr simple interactable.

    では、コンポーネントの追加をクリックして、xr simple interactableを追加しよう。

  • Beautiful.

    美しい。

  • And that's basically it.

    基本的にはそれだけだ。

  • With it, we should be able to interact with this plane.

    それがあれば、この飛行機と対話できるはずだ。

  • So, what's left for us to do is now go back to the right and left ray interactor.

    というわけで、あとは左右のレイ・インタラクターに戻るだけだ。

  • I'm going to select them both and I'm going here to create a new component which will be called phone anchor from ray select.

    この2つを選択し、レイ・セレクトからフォン・アンカーと呼ばれる新しいコンポーネントを作成します。

  • Beautiful.

    美しい。

  • Okay.

    オーケー。

  • So, again, as the name suggests, the goal of this script is to spawn an anchor from the ray selection.

    繰り返すが、このスクリプトの目的は、その名の通り、レイの選択範囲からアンカーを生み出すことである。

  • So, for this, we are going to need a public reference to the xr ray interactor which we can call if we go at the top and do using unityengine.xr.interaction.toolkit.

    そのためには、xr ray インタラクタのパブリックリファレンスが必要で、unityengine.xr.interaction.toolkit.

  • And while we are at it, let's add also the unityengine.xr.ar package that we need.

    ついでに、必要なunityengine.xr.arパッケージも追加しよう。

  • And then the two variables that I'm going to need is a xr ray interactor which I can call ray interactor and a public AR anchor manager called anchor manager.

    そして、必要な2つの変数は、レイ・インタラクターと呼ばれるxrレイ・インタラクターと、アンカー・マネージャーと呼ばれるパブリックARアンカー・マネージャーです。

  • Beautiful.

    美しい。

  • Now, what I'm going to do is create a public void function which will be called spawn anchor and which will take as a parameter a base interaction event args which I can call args.

    この関数はspawn anchorと呼ばれ、パラメータとしてベースとなるインタラクション・イベントの引数を取る。

  • So, the goal of using this variable here is that now in the start function, we can do ray interactor.selectentered.addlistener and use here our spawn anchor function.

    この変数を使う目的は、スタート関数の中でray interactor.selectentered.addlistenerを実行し、スポーン・アンカー関数を使うことだ。

  • So, basically, what we've done is to hook this spawn anchor function to be called whenever the ray interactor selects something.

    つまり、基本的には、レイ・インタラクターが何かを選択するたびに、このスポーン・アンカー関数が呼び出されるようにフックするのだ。

  • So, basically, what we can do is then get the hit point and then create an anchor based on this hit point from the ray.

    つまり、基本的にできることは、ヒットポイントを取得し、レイからヒットポイントに基づいてアンカーを作成することです。

  • So, first things first, let's get the 3D raycast hit with ray interactor.try get current 3D raycast hit.

    それではまず、レイ・インタラクターで3Dレイキャスト・ヒットを取得してみましょう。

  • And what we want is write out raycast hit hit.

    そして私たちが望むのは、レイキャストのヒット・ヒットを書き出すことだ。

  • So, here the out raycast hit hit will basically be our output.

    つまり、ここではレイキャストのヒット・ヒットが基本的に出力となる。

  • So, this will be the raycast hit that is currently performed by our ray interactor.

    つまり、これは現在レイ・インタラクターによって実行されているレイキャストのヒットとなる。

  • And from this hit position, we can actually create a new pose by doing pose hit pose equals new pose and write here hit dot point for the position.

    そして、このヒットした位置から、ポーズ・ヒット・ポーズ・イコール・新しいポーズとすることで、実際に新しいポーズを作ることができる。

  • And basically, for the rotation, I want to take into consideration the normal of the phase that we hit with our ray.

    そして基本的に、回転については、光線を当てる位相の法線を考慮したい。

  • So, let's do quaternion dot look rotation minus hit dot normal.

    では、クォータニオン・ドット・ルック・ローテーションからヒット・ドット・ノーマルを引いてみよう。

  • So, hit dot normal is, as I told you, the normal of the surface that we hit.

    つまり、ヒット・ドットの法線は、先ほどお話ししたように、ヒットした面の法線だ。

  • And if we call the quaternion dot look rotation, it will basically create a quaternion, so a rotation, based on this forward axis.

    そして、クォータニオン・ドット・ルック・ローテーションを呼び出すと、基本的にこの前方軸に基づいてクォータニオン、つまり回転を作成する。

  • So, it will basically align everything to point to this direction.

    つまり、基本的にすべてをこの方向に揃えるのだ。

  • Oh, and here I just write minus because I want the rotation to face to the wall and not out of the wall, but actually as you prefer.

    ああ、ここでマイナスと書いたのは、回転を壁側に向けたいからであって、壁からはみ出したいからではない。

  • This is actually something that I do here because I'm going to need it in a minute.

    これは実は、すぐに必要になるからここでやっていることなんだ。

  • But for now, I'll just copy what I do.

    でも今は、僕がやっていることを真似してみるよ。

  • So, now that we've created a new pose, what we can do is create an anchor.

    さて、新しいポーズを作ったところで、できることはアンカーを作ることだ。

  • So, we can do for this var result equals anchor manager dot try add anchor async and give us an input or hit pose.

    そこで、このvar result equals anchor manager dot try add anchor asyncを実行し、入力またはヒット・ポーズを与えることができる。

  • And here is the important function, so the try add anchor async, which is basically adding an anchor at a certain position.

    そしてここが重要な関数で、add anchor asyncを試す。

  • But as you can see, this try and add anchor is a nothing function.

    しかし見ての通り、このトライ&アド・アンカーは何の役にも立たない。

  • Async means that we can wait for this function to finish.

    非同期とは、この関数が終わるのを待つことができるということだ。

  • And this is very important because adding an anchor is not instant, so it takes some time to process.

    アンカーの追加は即座にできるものではないので、処理には時間がかかる。

  • And this can create some issues because if we want to spawn some prefab on the anchor, we need to wait for the anchor to be processed.

    プレハブをアンカーにスポーンしたい場合、アンカーが処理されるのを待つ必要があるからだ。

  • So, a solution to await is simply to write await here at the front.

    つまり、awaitの解決策は、単純にawaitを先頭に書くことだ。

  • But as you can see, everything is underlined in red now because we actually need to write at the top async for this to work.

    しかし、ご覧のように、すべての部分に赤の下線が引かれている。なぜなら、これを機能させるためには、実際には先頭にasyncと書く必要があるからだ。

  • And as you can see now, everything seems to work.

    ご覧のとおり、すべてうまくいっているようだ。

  • And finally, with the result, this is not actually the AR anchor that we are getting with this result.

    そして最後に、この結果で得られるのは、実はARアンカーではない。

  • So, to get actually this anchor, we need to write bool success equals result dot try get result out var anchor.

    そこで、実際にこのアンカーを取得するには、bool success equals result dot try get result out var anchor と書く必要がある。

  • And here is the anchor that is created if everything went smoothly and that we will be able to use in a minute.

    そしてこれが、すべてが順調に進んだ場合に作成され、すぐに使用できるようになるアンカーである。

  • But now, with this spawn anchor, if I sum up everything, we first get the hit position.

    しかし今、このスポーンアンカーで、すべてを要約すると、まずヒットポジションを得る。

  • We turn this hit position into a pose, which is basically a point in space.

    このヒットポジションをポーズに変える。

  • And from this point in space, we create an anchor, which takes some frame to process.

    そして、この空間上の点からアンカーを作る。

  • So, that's why we write await here to await this to work.

    だから、私たちはここで、これが機能するのを待つと書いているのだ。

  • And then, once it has done the job to adding an anchor, we have a look at if it succeeds or not and get the output anchor at end.

    そして、アンカーを追加する作業が完了したら、それが成功したかどうかを見て、最後にアンカーを出力する。

  • And there we go.

    さあ、出発だ。

  • Now, that's basically it.

    さて、基本的にはそれだけだ。

  • Let me save and go back to Unity.

    保存してユニティに戻ろう。

  • Okay.

    オーケー。

  • And now that we are back inside Unity, we, of course, need to set up here the spawn anchor from re-select script.

    そしてUnityの中に戻ったので、もちろん、ここで再選択スクリプトからのスポーン・アンカーを設定する必要がある。

  • So, for the re-interactor, let's simply drag the xr-re-interactor from the same script.

    そこで、リ・インターアクターのために、同じスクリプトからxr-re-interactorをドラッグしてみよう。

  • And for the anchor manager, we can drag here the xr-origin.

    アンカー・マネージャーは、ここにxr-originをドラッグすることができる。

  • Now, let's do the same, but for the left re-interactor.

    では、同じように左の再インターアクターについてやってみよう。

  • So, drag the re-interactor over there and the xr-origin.

    そこで、リ・インターアクターをそこにドラッグし、xr-originもドラッグする。

  • Now, everything should run smoothly.

    これですべてがスムーズに進むはずだ。

  • So, okay, by adding an anchor from the try-add-anchor async, what this will do is add an empty GameObject with the ar-anchor component to it.

    つまり、try-add-anchor asyncでアンカーを追加すると、空のGameObjectにar-anchorコンポーネントが追加される。

  • But actually, you can override this prefab here with this anchor-prefab parameters.

    しかし実際には、このプレハブをアンカー・プレハブのパラメーターで上書きすることができる。

  • So, if we click here and search for anchor, then click on assets.

    ここをクリックしてアンカーを検索し、アセットをクリックする。

  • And if we click on this little toggle there, we should see the anchor transform, which is basically just a GameObject with three axes.

    この小さなトグルをクリックすると、アンカー・トランスフォームが表示される。

  • I'm going to set this as an anchor.

    これをアンカーに据えるつもりだ。

  • So, this should display when we interact with something.

    だから、何かとインタラクションしたときに表示されるはずだ。

  • Now, let's save and see if this works by building our game.

    さて、保存してゲームを作って、これがうまくいくかどうか見てみよう。

  • Okay.

    オーケー。

  • So, as you can see, everything still works.

    ご覧の通り、すべてうまくいっている。

  • I have still this one cube, which is anchor, and this cube, which is not.

    このキューブはアンカーで、このキューブはアンカーではない。

  • I have some array, which are coming out of my hands.

    手から出ている配列があるんだ。

  • And if I press on the grip button, as you can see, it works.

    そしてグリップボタンを押すと、ご覧のように機能する。

  • We can spawn some anchor, which will be placed on our array.

    アンカーをスポーンして、配列に配置することができる。

  • And as you can see, this works on all surface.

    そして見ての通り、これはすべての面で機能する。

  • And as you can see, the anchor have the correct orientation.

    そしてご覧の通り、アンカーの向きは正しい。

  • So, everything is perfect.

    だから、すべてが完璧なんだ。

  • But of course, right now, we are just spawning just little gizmos.

    でももちろん、今は小さなギズモを産み出すだけだ。

  • What we want is to anchor any content, not just this prefab.

    私たちが望んでいるのは、このプレハブに限らず、あらゆるコンテンツにアンカーを打つことだ。

  • So, let me show you how we can do this.

    では、その方法をお見せしよう。

  • Okay.

    オーケー。

  • So, if we want to not just anchor the gizmo, but any prefab, what we want is to go back to the script.

    ギズモだけでなく、プレハブにアンカーを打ちたい場合は、スクリプトに戻る必要がある。

  • And at the top, I'm simply going to write a public GameObject called prefab.

    そして一番上にはprefabというpublicなGameObjectを書きます。

  • There you go.

    そうだ。

  • And at this point, it is very simple.

    この時点では、とてもシンプルだ。

  • If we have successfully created an anchor, what we can do is create a spawn prefab by instantiating our prefab.

    アンカーの作成に成功したら、プレハブをインスタンス化してスポーンプレハブを作成します。

  • We can actually spawn it at the anchor.pose.position and at the anchor.pose.rotation.

    実際には、anchor.pose.positionとanchor.pose.rotationでスポーンできる。

  • Beautiful.

    美しい。

  • And last but not least, we can also set the spawn prefab to have its parent to be the anchor transform.

    そして最後に、スポーンプレハブの親をアンカートランスフォームに設定することもできます。

  • So, this means that if the anchor change position, because the prefab that we are spawning is a child of the anchor, it will move with it.

    つまり、アンカーが位置を変えた場合、スポーンしているプレハブはアンカーの子なので、アンカーと一緒に移動するということです。

  • So, that's something really great.

    だから、それは本当に素晴らしいことなんだ。

  • Now, let me save, go back to Unity, go to the XR origin, and I'm going to here select this little button and click on None.

    さて、保存してUnityに戻り、XRの原点に行き、ここでこの小さなボタンを選択し、「None」をクリックします。

  • Because instead of having a gizmo spawn, what I want to do is to spawn a custom prefab.

    ギズモをスポーンさせる代わりに、カスタムプレファブをスポーンさせたいんだ。

  • And what prefab should we be able to place inside our world?

    そして、私たちの世界の中にどんなプレハブを置くことができるだろうか?

  • So, lucky for me, I have this magnificent image that I want to use inside my project.

    幸運なことに、私のプロジェクトで使いたい素晴らしい画像がある。

  • So, what I'm going to do is right-click, go to 3D object, Quad.

    そこで、右クリックして、3Dオブジェクトの「Quad」を選択する。

  • This will create a 2D quad, as you can see.

    これで、ご覧のように2Dの四角形が作成される。

  • We can maybe scale it down a little bit and drag here the marvelous image that we have inside this quad.

    少し縮小して、この四角の中にある素晴らしい画像をここにドラッグできるかもしれない。

  • As you can see, this will create also material and apply this image as a texture to the quad.

    ご覧のように、これでマテリアルも作成され、この画像がテクスチャとして四角形に適用されます。

  • Now, I'm going to call this one Beautiful Painting.

    さて、これを「ビューティフル・ペインティング」と呼ぶことにしよう。

  • I'm going to turn it into a prefab by dragging it inside our project folder and remove the Beautiful Painting by selecting it and pressing the Delete key.

    プロジェクトフォルダ内にドラッグしてプレハブにし、「美しい絵画」を選択してDeleteキーを押して削除します。

  • Beautiful.

    美しい。

  • Now, what's left is to go to the right and left ray interactor and drag our Beautiful Painting inside the prefab to spawn.

    あとは、左右のレイ・インタラクターに移動して、プレハブの中にビューティフル・ペインティングをドラッグしてスポーンさせるだけだ。

  • This means that now, by doing this, we should have our Beautiful Painting spawning where our ray is interacting with the world.

    つまり、こうすることで、レイが世界とインタラクションしている場所で、ビューティフルペインティングがスポーンするはずだ。

  • And this means that it will also be anchored in our world and be placed with our real environment and not based on the player.

    そしてこれは、私たちの世界に固定され、私たちの現実の環境と一緒に配置されることを意味する。

  • So, one last thing to do and is, of course, to try and find out if this is working.

    そこで最後にもうひとつ、もちろん、これがうまくいっているかどうかを試してみることだ。

  • Okay, and here you go.

    では、お待たせしました。

  • I'm in Mixed Reality right now and let's try to press on the grip button on the wall to see what happens.

    今、複合現実の中にいるので、壁のグリップボタンを押して何が起こるか試してみよう。

  • And as you can see, it works!

    見ての通り、うまくいっている!

  • The marvelous painting is showing with the correct position and at the correct rotation.

    素晴らしい絵が正しい位置で正しい回転で描かれている。

  • But the big thing is that all of these are created and anchored to our real world.

    しかし、重要なのは、これらすべてが私たちの現実の世界に創造され、定着しているということだ。

  • So, if, for example, I try to recenter the position, as you can see, you can see this cube which is moving because it is following the player's space.

    ですから、例えばポジションをリセンターしようとすると、ご覧のように、この立方体がプレイヤーのスペースに従って動いているのがわかります。

  • But all of the stuff that we spawn and that we anchor stay the same.

    でも、私たちが産み出すもの、私たちがアンカーを務めるものはすべて変わらない。

  • This is awesome!

    これはすごいことだ!

  • And basically, this sums up this tutorial on how to anchor GameObject in Mixed Reality to our real world.

    そして基本的に、これが複合現実のGameObjectを現実世界に固定する方法についてのこのチュートリアルのまとめだ。

  • So, I hope that you enjoyed this first tutorial of 2024.

    さて、2024年最初のチュートリアルを楽しんでいただけただろうか。

  • Now, thank you for watching till the end and, as always, if you want to support my work and get access to the source code of all of my tutorials, you can join us on Patreon.

    最後までご覧いただき、ありがとうございました。私の仕事をサポートし、すべてのチュートリアルのソースコードにアクセスしたい方は、いつものようにPatreonに参加してください。

  • The link is in the description.

    リンクは説明文にある。

What is up everyone and welcome to a new tutorial about Spatial Anchor.

空間アンカーについての新しいチュートリアルへようこそ。

字幕と単語
AI 自動生成字幕

ワンタップで英和辞典検索 単語をクリックすると、意味が表示されます