Mesh 101 チュートリアル 第 4 章: Mesh Interactables と Physics を使用してオブジェクトを移動し、アニメーションをトリガーする

この章では、風力発電所のモデルを操作します。 Mesh Interactables と Physics を使用して、剛体 (この場合は風力タービン) を取得および解放し、ビジュアル スクリプトを使用してアニメーション トリガーを設定する方法について説明します。 風力タービンを制限して、指定した領域内でのみ移動できるように、物事をまとめていきます。

この章は、第 3 章で行ったことよりも少し簡単です---スクリプトがなく、物理がセッション内のすべてのアバターと同じように見えるようにネットワークが設定されています。

最初の駅を始める前に、いくつかのことを行う必要があります。

階層の再構成

  • [Hierarchy]\(階層\) で Chapter3 GameObject を折りたたみ、Chapter4 GameObject を展開します。

コンピューターの説明のスクリーンショット

第 4 章の球テラスを表示するようにビューを変更する

Mesh のエクスペリエンスでは、参加者は第 3 章の終わりから第 4 章の初めにスムーズに移動し、第 4 章の学習活動を開始するために適切に配置されます。 ただし、第 3 章の最後に再生モードを終了した場合、シーン ウィンドウの Chapter 4 モデルへのビューが自動的に配置されませんでした。 そのビューを設定しましょう。

  1. [階層] で、4.1 -- Grab and Release という名前の GameObject を選択します。

    コンピューターの説明のスクリーンショット

  2. カーソルを [シーン] ウィンドウの上に移動し、キーボードの F キーを押します。

    これにより、 ビューは 4.1 -- Grab オブジェクトと Release オブジェクトの中央に配置されますが、必要な位置にいない可能性が高くなります。

  3. 次に示すように、第 4 章のステーションが目の前に表示されるまで、ビューをドラッグ、回転、ズームします。

    山の説明のモデルのコンピューターによって生成された画像が自動的に生成される

ステーション 4.1: グラブとリリース

トレーニングのこの章の参加者の目標は、風力タービンをテーブルトップから海に移動することです。 そこに配置されると、タービンは海の風をキャッチし、ブレードを回転させ、電力を生成します。

  1. [Hierarchy]\(階層\) で、4.1 -- Grab and Release GameObject を展開します。 これには、シーンのテーブルトップに配置されている 3 つの風力タービン ゲーム オブジェクトが含まれていることに注意してください。

    コンピューターの説明のスクリーンショット

    参加者が Mesh で移動できるように、 WindTurbine1 に "グラブとリリース" 機能を追加しましょう。

  2. [階層] で、[WindTurbine1] を選択します。

  3. インスペクターで、[コンポーネントの追加] ボタンをクリックし、Mesh Interactable Setup を検索して追加します。

    スクリーンショット

    ヒント

    このコンポーネントの説明は、このチュートリアルの 第 3 章 で説明されています。

  4. 同じコンポーネントで、[オブジェクトの 種類 ] ドロップダウンをクリックし、[ Manipulable] を選択します。

    スクリーンショット

  5. コンポーネントがアクティブであることを確認します。

  6. Rigidbody コンポーネントで、必要に応じて [拘束]オプションを展開し、[回転の固定]設定で[X]、[Y]、[Z]を選択します

    自動生成されたコンピューターの説明のスクリーンショット

これにより、不均一な表面にタービンを配置すると、タービンがひっくり返るのを防ぐことができます。

作業をテストする

  1. プロジェクトを保存し、Unity エディターの [再生] ボタンを選択します。

    プレイ モードに入るたびに、 ゲーム ウィンドウの開始点は第 3 章の球テラスであることに注意してください。 この章では、もう 1 つの Sphere テラスに---第 4 章の機能を備えています。 幸いなことに、そこに着く簡単な方法があります。

  2. [ 第 4 章に移動 ] 情報ボックスが表示されるまで、ビューを右に回転します。

    コンピューターの説明のスクリーンショット

  3. 情報ボックスに移動し、[ 第 4 章にテレポート ] ボタンを選択します。

    自動生成されたコンピューターの説明のスクリーンショット

  4. Chapter 4 Sphere Terrace に到着したら、 カーソルを WindTurbine1 の上に移動すると、その図形が変化し、シーンの周りにタービンがドラッグされます。

    タービンは、 固定回転 拘束をオンにした結果、直立したままになります。

    画像

  5. Unity エディターの [再生] ボタンをクリックして、再生モードを終了します。

他の 2 つの風力タービンを更新する必要はありません。既に行っています。

ステーション: 4.2 アニメーション トリガー

ここでの考え方は、風力タービンを海の上にドラッグすると、タービンのブレードが回転する "風" が発生するという考え方です。 実際に起こるのは、 Animation Trigger という名前の透明なキューブが海の上に配置され、トリガー ボリュームとして機能することです。 風力タービンをトリガー ボリュームにドラッグすると、スピン ブレード アニメーションを開始する On Trigger Enter イベントがオフになります。

この章では、GameObject にスクリプトを追加し、スクリプトでアニメーションを有効にします。

  1. [階層] で、4.2 -- アニメーション トリガー GameObject を展開し、Animation Trigger という名前の子オブジェクトを選択します。

    スクリーンショット

    アニメーション トリガー GameObject の Box コライダーの緑色のアウトラインが表示されることに注意してください。

    スクリーンショット

  2. インスペクターで、Box コライダー コンポーネントに移動し、[トリガー] を選択します。

    スクリーンショット

ヒント

[ トリガー] を選択すると、オブジェクトはコライダー コンポーネントがトリガー ボリュームにアタッチされます。

  1. [階層] で、第 4> 章4.1 - グラブとリリースに移動し、[WindTurbine1] を選択します。
  2. [ コンポーネントの追加] ボタンをクリックし、スクリプト マシンを検索して追加 します。

スクリプトを埋め込む必要がありますが、通常は新しいスクリプト グラフを最初から作成する必要があることを意味します。 ショートカットを使用します。 [ソース ] オプションを [グラフ ] に設定したままにします。 既存のスクリプト グラフをアタッチし、埋め込みグラフに変換します。

  1. [グラフ] フィールドのボタンをクリックし、[SelectSceneGraph] ウィンドウで [SPWindTurbineScript] を選択します。

    スクリーンショット

  2. [ 変換 ] ボタンをクリックします。 これにより、[ グラフ ] 設定が削除され、[ ソース ] オプションが [埋め込み] に変更されることに注意してください。

回転ブレード アニメーションをグラフに追加する

スクリプト グラフを調べるのに少し時間を取ります。 これには 2 つのグループがあります。上部グループは、ユーザーが風力タービンをトリガー ボリュームにドラッグしたときにブレード回転アニメーションをトリガーし、下部のグループは、ユーザーがタービンをボリュームからドラッグしたときにアニメーションを停止します。

スクリーンショット

グラフは 、必要 な方法をほぼ設定していますが、残りの問題が 1 つあります。 2 つの アニメーター: トリガー ノードの設定は、 この ... に設定されます。

スクリーンショット

...ただし、 これは (言い換えると WindTurbine1) にはトリガーするアニメーションがありません。 見つけましょう。

  1. HierarchyWindTurbine1 を展開し、WindTurbineBody という名前の子オブジェクトを展開します。 これにより、 Windmill_Turbine_001:Propellors10 という名前の子オブジェクトが表示されます。

    スクリーンショット

  2. [Windmill_Turbine_001:Propellors10] を選択し、インスペクターWindTurbine1Propellers という名前のアニメーター コントローラーを含むアニメーター コンポーネントが含まれていることに注意してください。

    スクリーンショット

    この アニメーター は、アニメーションを提供します。

  3. Windmill_Turbine_001:Propellors10 GameObject を Hierarchy からドラッグし、スクリプト グラフで、最初のグループにある [アニメーター: トリガーの設定] ノードの最初のフィールドにドロップします。

    スクリーンショット

  4. Windmill_Turbine_001:Propellors10 GameObject をもう一度階層からドラッグし、スクリプト グラフで、2 番目のグループにある [アニメーター: トリガーの設定] ノードの最初のフィールドにドロップします。

これでスクリプトが完成しました。

作業をテストする

  1. プロジェクトを保存し、Unity エディターの [再生] ボタンを押します。

  2. 前述のように、プレイモードに入った場合、アバターは Chapter3 Sphere テラスに配置されます。 シーンを右に回転させ、 テレポートから第 4 章ボタンまで 歩いて押します。

    自動生成されたコンピューターの説明のスクリーンショット

  3. これで、 Chapter4 Sphere Terrace に入るはずです。 WindTurbine1 を海の上にドラッグします (赤いブレードを使用して、後ろで最も遠いものです)。 タービンのブレードが回転している点に注意してください。

    スクリーンショット、3D モデリング、PC ゲーム、ビデオゲーム ソフトウェアの説明が自動的に生成された画像

  4. 同じタービンを海から離し、テーブルの上に戻します。 タービンのブレードが回転しなくなることに注意してください。

  5. アニメーションの観察が完了したら、Unity エディターの [再生] ボタンを押して再生モードを終了します。

他の風力タービンを更新する必要はありません---既に行っています。

ステーション 4.3: ボディの拘束

現時点では、参加者が風力タービンをドロップできる場所に制約はありません。 タービンを海に配置して風をキャッチできることを 願っていますが 、たとえば、参加者が誤ってタービンを床に落とす可能性があります。 これを避けたいので、タービンがテーブルトップまたは海にのみ着陸できるように、封じ込めフィールドを設定できます。 これは基本的に透明な箱です---タービンは箱の中に制限されます。

  1. [Hierarchy]\(階層\) で、4.3 -- Constrainting Bodies GameObject を展開し、Containment Field という名前の子オブジェクトを選択します。

    自動生成されたコンピューターの説明のスクリーンショット

  2. インスペクターで、[コンポーネントの追加] ボタンを選択し、Containment Field コンポーネントを追加します。

    自動生成されたコンピューターの説明のスクリーンショット

  3. [包含フィールド] コンポーネントで、[影響を受けるボディ] オプションの右側にある [+] ボタンを選択し、ポップアップ メニューで [ゲーム オブジェクト名] 条件を選択します。

    自動生成されたコンピューターの説明のスクリーンショット

  4. [開始日] ボックス 「WindTurbine」と入力します。シーン内の 3 つの風力タービンはすべて "WindTurbine" から始まるため、それらはすべて封じ込めフィールドに制限されます。

    コンピューターの説明のスクリーンショット

作業をテストする

  1. プロジェクトを保存し、Unity エディターの [再生] ボタンを押します。

  2. 前述のように、プレイモードに入った場合、アバターは Chapter3 Sphere テラスに配置されます。 シーンを右に回転させ、 テレポートから第 4 章ボタンまで 歩いて押します。

    自動生成されたコンピューターの説明のスクリーンショット

  3. これで、 Chapter4 Sphere Terrace に入るはずです。 風力タービンの 1 つをテーブルの上と海からドラッグして、床に落としてみてください。 コンテインメント フィールドを使用すると、この操作を実行できなくなります。

第 4 章: 概要

この章では、エクスペリエンスの参加者が次のことを実行できるようにする Mesh 機能を追加しました。

  • オブジェクトをつかんで動かす

  • 参加者がオブジェクトをトリガー ボリュームにドラッグしたときにアニメーションをトリガーする

  • 指定した特定の領域にのみオブジェクトをドロップする

次の手順

第 5 章: 環境をテストに使用できるようにする