【ベータ機能】自由なカメラアングルを設定できる「カメラ姿勢直接指定API」を使おう!

本記事はCluster Creator Kitの「ベータ機能」を利用した解説になります。
ベータ機能では正式リリース前の機能を使うことができます。

正式リリース前のため、不安定な挙動をしたり将来的に挙動が変わる可能性があります。また、記事公開時点ではベータ機能として紹介していますが、その後正式リリースされている場合もありますので、本記事を参考にする場合はまずScript Referenceを参照することをおすすめします。

利用にはCluster Creator Kitでベータ機能を設定した状態でアップロードを行う必要があります。設定方法はこちらをご覧ください。

Cluster Creator Kit v2.24.0.1(以下、CCK)から、ベータ機能として「カメラ姿勢直接指定API」が使えるようになりました。

PlayerScriptの CameraHandle を使用することで、VR以外のプラットフォームで、カメラを制御し、様々な視点の演出等ができるようになります。

今回は基本的な設定方法を解説します。

本機能を使用するにはPlayerScriptの設定が必要になります。
今回は、インタラクトするとインタラクトした人をPlayerScriptに登録し、「カメラ姿勢直接指定API」が適用されるようにします。

  • 作成したワールドはベータ機能を有効にしてアップロードする必要があります。
  • 「カメラ姿勢直接指定API」を設定したいGameObjectに「Scriptable Item」コンポーネントを追加して、以下のスクリプトを設定してください。
$.onInteract((player)=> {
    $.setPlayerScript(player);
});
  • 次はPlayerScriptを設定していきます。
    • 「Scriptable Item」コンポーネントを追加したGameObjectに「PlayerScript」コンポーネントを追加し、後述の章で紹介する、どちらかのスクリプトを設定してください。
      • 今回は2種類のサンプルを紹介します。

プレイヤーの位置に応じてカメラが移動するスクロール表現

下記は、プレイヤーを横から映すようにカメラの向きを固定し、プレイヤーに追従するようなスクリプトです。

_.onFrame(dt => {
    const pos = _.getPosition().add(new Vector3(0, 1.5, -5));
    const rot = new Quaternion().setFromEulerAngles(new Vector3(0, 0, 0));
    _.cameraHandle.setPosition(pos);
    _.cameraHandle.setRotation(rot);
});

プレイヤーの位置に応じてカメラが移動する俯瞰表現

下記は、上述のスクリプトのカメラの向きと位置を変え、プレイヤーを真上から映すようにしたスクリプトです。

_.onFrame(dt => {
    const pos = _.getPosition().add(new Vector3(0, 10, 0));
    const rot = new Quaternion().setFromEulerAngles(new Vector3(90, 0, 0));
    _.cameraHandle.setPosition(pos);
    _.cameraHandle.setRotation(rot);
});

一度「カメラ姿勢直接指定API」を適用すると、解除しない限りスペースを退出するまで、適用され続けます。
「カメラ姿勢直接指定API」を設定したPlayerScriptの登録を解除するなど、リセットする方法を用意するのがおすすめです。

記事をシェアしてワールド制作を盛り上げよう!

Cluster Creators Guide|バーチャル空間での創作を学ぶならをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む