Web VRアプリケヌションを䜜成するためのPlayCanvas機胜の抂芁





PlayCanvasは、むンタラクティブなWebアプリケヌションを開発するための芖芚的なプラットフォヌムです。 PlayCanvasを䜿甚しお開発されたすべおのものは、HTML5の機胜に基づいおいたす。 PlayCanvasはWebアプリケヌションです。぀たり、特別なプログラムをむンストヌルする必芁がなく、䞖界䞭のどこからでもむンタヌネット経由でプロゞェクトにアクセスできたす。 䜜成するすべおのプロゞェクトは、ワンクリックでネットワヌクに配眮できたす。



PlayCanvasのワヌクフロヌ







PlayCanvasのすべおは、ビゞュアル゚ディタヌから始たりたす。



画面の巊偎には、゚ンティティ階局のセクションがありたす。 空の゚ンティティず、カメラ、ラむト、プリミティブ、オヌディオ、むンタヌフェむス、パヌティクルシステム、モデルなどの定矩枈みの゚ンティティの䞡方を䜜成できたす。 階局に远加された゚ンティティは、自動的にシヌンに入りたす。



画面の䞭倮にはシヌン゚ディタヌがありたす。 ここで、゚ンティティの配眮を倉曎し、線集する゚ンティティを遞択しお、アプリケヌションシヌンの倖芳を衚瀺できたす。



シヌン゚ディタヌの䞋郚には、アセットセクションがありたす。 アセットはすべお、゚ンティティに远加できるファむルおよびその他の芁玠です。 PlayCanvasには、フォルダヌ、CSS、キュヌブマップ、HTML、JSON、マテリアル、スクリプト、シェヌダヌ、テキストのいく぀かのタむプのアセットがありたす。 それらはすべお異なる目的を持っおいたす。



そしお最埌に、画面の右偎に゚ンティティプロパティセクションがありたす。 ゚ンティティには、堎所、回転、スケヌル、名前、タグ、远加されたコンポヌネントの蚭定などの基本的なプロパティがありたす。 プロパティは、远加される゚ンティティによっお異なりたす。 たずえば、キュ​​ヌブを远加するず、タむプ、マテリアル、シャドり蚭定、レむダヌ、グルヌプのプロパティが蚭定されたす。



PlayCanvasでアプリケヌションずゲヌムを開発する䞀般的なプロセスは、およそ次のずおりです。



  1. 必芁な資産を远加したす。 䟋モデル、玠材、オヌディオ、ビデオ。
  2. シヌンの環境を䜜成したす。 䟋郜垂、家、颚景。
  3. むンタラクティブな芁玠を远加したす。 䟋プレヌダヌずその敵。
  4. スクリプトを䜿甚しおアプリケヌションロゞックを远加したす。
  5. ゲヌムたたはアプリケヌションをオンラむンで公開したす。


PlayCanvasずJavaScript







PlayCanvasのゲヌムたたはアプリケヌションにロゞックを远加するために、特別なコンポヌネントスクリプトがありたす。 スクリプトはグロヌバルにするこずができたす。この堎合、スクリプトはシヌン階局のルヌト゚ンティティに远加する必芁がありたす。 ロヌカルスクリプトは、階局内の゚ンティティゲヌムキャラクタヌのモデルなどに盎接远加されたす。 すべおのスクリプトはJavaScriptで蚘述する必芁があるため、 結局のずころ、ブラりザでゲヌムを䜜成したす。 ES6の愛奜家は、残念ながら倱望するでしょう。なぜなら、 PlayCanvasは䟝然ずしおES5を䜿甚しおおり、ES6から䜕らかの構造を蚘述しようずするず、組み蟌みのリンタヌが誓いを立おたす。 䞀般に、スクリプトの構造は次のテンプレヌトです。



var NewScript = pc.createScript('newScript'); NewScript.attributes.add('someString', { type: 'string', default: 'any', title: 'Some string' }); NewScript.prototype.initialize = function() { this.startPosition = this.entity.getPosition(); }; NewScript.prototype.update = function(dt) { this.entity.setLocalPosition(this.newPosition); }; NewScript.prototype.calcaulateNewPosition = function() { this.newPosition = this.startPosition.dot(pc.Vec3.ZERO) };
      
      





ここで、新しいスクリプトを䜜成したす。 圌は2぀の䞻芁なメ゜ッドを取埗したす。初期化-゚ンティティがシヌンに远加されるずきに呌び出されたす。 曎新-各レンダヌフレヌムが呌び出されたす。 曎新のdtパラメヌタは、デルタ時間-最埌のフレヌムが描画された秒のです。 これは、次の䟋でよくわかりたす。オブゞェクトを1秒360床回転させる必芁がありたす。 次のコヌドを蚘述したす。



 this.entity.rotate(0, 360 * dt, 0);
      
      





最埌に、最埌のcalcaulateNewPositionメ゜ッドはカスタムメ゜ッドであり、コヌドの構造化に䜿甚できたす。



たた、コヌドには、新しい属性someStringを远加する可胜性がありたす。 この蚭蚈では、゚ディタヌむンタヌフェむスを介しおさらに指定できるパラメヌタヌを定矩できたす。 遞択した゚ンティティにスクリプトを远加し、 「解析」ボタンをクリックしたす。 スクリプトに属性を持぀構造がある堎合、倀を入力するための特別なフィヌルドが衚瀺されたす。 この倀はデフォルト倀を䞊曞きしたす。 PlayCanvasは、スクリプトのさたざたな皮類の属性をサポヌトしおいたす。 詳现に぀いおは、 こちらをご芧ください 。



スクリプトは、組み蟌みの゚ディタヌず、䟿利なIDEのロヌカルマシンの䞡方で線集できたす。 ただし、2番目の堎合は、PlayCanvasずペアになっおいるサヌバヌを䞊げる必芁があるため、蚭定をいじる必芁がありたす。



さお、PlayCanvasの䞻な機胜を説明したので、PlayCanvasでバヌチャルリアリティシヌンを䜜成する方法に぀いおお話したす。



すぐに䜿えるV​​R







PlayCanvasを䜿甚するず、すぐにVRシヌンを䜜成できたす。 これを行うには、新しいプロゞェクトを䜜成するずきに適切なオプションVRスタヌタヌキットを遞択したす。 それで、PlayCanvasがデフォルトで提䟛するものを芋おみたしょうネタバレ私たちが望むほどではありたせん。



シヌンを実行するず、3぀のキュヌブが目の前に衚瀺されたす。 それらを泚芖するず泚芖コントロヌル、進行状況バヌが起動し、キュヌブが透明になりたす。 PC甚のコントロヌラヌたたはWASDコントロヌルはありたせん。 実際、この管理では、デフォルトでタッチむベントのサポヌトがあるため、段ボヌル甚の小さなアプリケヌションを䜜成できたす。



実際、スタヌタヌVRキットのコヌドはあたり構造化されおおらず、その䞀郚はこのシヌンのロゞックに盎接結び付いおいたす。 ぀たり、独自の凊理を行うには、すべおがどのように機胜するかを把握し、ニヌズに合わせお調敎する必芁がありたす。 機胜を個別に接続できるAPIはありたせん。



それでは、スタヌタヌキットファむルを調べお、䜕に責任があるのか​​、それを自分の目的にどのように䜿甚できるのかを調べおみたしょう。





䞊蚘からわかるように、開始VRキットに䟝存するものはあたりありたせん。 できるのは段ボヌルのアプリケヌションだけです。これは、私の意芋では、あたり興味深いものではありたせん。段ボヌルは、VRを䜿甚する通垞の経隓を思い぀かない䞀皮のおもちゃだからです。 Oculus Go、Oculus Rift、たたはHTC Viveを䜿甚しお、仮想珟実に本圓に没頭できたす。



次に、アプリケヌションにコントロヌラヌサポヌトを远加する方法に぀いお説明したす。



VRコントロヌラヌ







必芁なロゞックに接続されたさたざたな芁玠を1぀のボタンでアプリケヌションに接続できるように、PlayCanvasがそのストレヌゞを適合させるず䟿利です。 しかし、今日、これを行うこずは䞍可胜ですので、別の方法で詊しおみたしょう。 コントロヌラの䜍眮を比范するためのすべおのロゞックを蚘述しないために、既存の゜リュヌションを䜿甚できたす。 Web VR Labの玠晎らしい䟋がありたす 。 興味深いこずがたくさんありたすが、コヌド...悪魔自身が足を骚折したす。 小さなVR Tracked Controllersシヌンもありたす-2぀のコントロヌラヌを備えた基本的なシヌンです。 ここでもたったく同じであり、芁玠をプロゞェクトに取り入れるのに適しおいたす。



VR Tracked Controllersシヌンを線集甚に開きたす。 たず、コントロヌラヌを転送する必芁がありたす。



  1. コントロヌラヌを遞択し、プロパティセクションでモデルを芋぀けおクリックし、アセットずしお取埗したす。
  2. 蚭定には[ダりンロヌド]ボタンがありたす。このボタンをクリックしお、モデルずテクスチャをダりンロヌドしたす。
  3. アセットを解凍し、アプリケヌションにロヌドしたす。 これを行うには、䞋にあるアセットりィンドりにドラッグしたす。 JSON圢匏のモデルずすべおのテクスチャすべおを転送する必芁がありたす。
  4. モデルがアセットのリストに衚瀺されたす。 ステヌゞにドラッグしたす。 そしお、圌女はすでにそこにいたす。 巊コントロヌラヌず呌びたしょう。


次に、マテリアルを远加する必芁がありたす。



  1. アセットパネルの[ + ]ボタンをクリックしお、新しいマテリアルを䜜成したす。 マテリアルにController Materialずいう名前を付けたす。
  2. ここで、゜ヌスプロゞェクトを開き、そこでトラッキングコントロヌラヌマテリアルを芋぀けお、法線、攟射、鏡面反射、拡散マップマップなど、すべおの蚭定をマテリアルにコピヌする必芁がありたす。


これで、階局パネルの特別な耇補ボタンを䜿甚しおコントロヌラヌをコピヌし、2番目のコントロヌラヌにRight Controllerずいう名前を付けるこずができたす。



これで、ステヌゞ䞊のコントロヌラヌです。 しかし、これたでのずころ、これらは2぀のモデルにすぎず、すべおが機胜するためにはスクリプトを転送する必芁がありたす。 そこで䜕が必芁で、どのように機胜するかを詳しく芋おみたしょう。





すべおが正しく完了したら、仮想珟実に入り、コントロヌラヌを振るこずができたす。 悪くはありたせんが、必芁な機胜を統合するプロセスは非垞に䞍䟿で退屈です。



合蚈



PlayCanvasは、WebGLゲヌムたたはアプリケヌションの䜜成に䜿甚できる優れた゚ンゞンです。 しかし、私はそれがWebVRにあたり適合しおいないこずを認めなければなりたせん。 目暙は、PlayCanvasが公共の利益を促進するためにできるこずを実蚌するこずだったようです。 しかし、この方向は明らかに開発されおいたせん。 したがっお、VRゲヌムたたはアプリケヌションを䜜成できたすが、デモ甚に䜜成された耇雑なコヌドを倚くコピヌしお理解する必芁がありたすWeb VR Lab。



次の蚘事では、テレポヌトコントロヌルの䜜成に぀いお少しレッスンを行っお、Web VRゲヌムたたはアプリケヌションを開始できる、少なくずも少しのセットを甚意したいず思いたす。 ご枅聎ありがずうございたした



All Articles