Cable コンポーネント

Cable コンポーネントを使ってケーブル、ロープ、チェーンを作成する方法の操作ガイドです。

低負荷でそっと風に吹かれて揺れるケーブル、ロープ、チェーンを追加する機能を使うと、Unreal Engine プロジェクトが生き生きとしたものになります。以下では、Cable コンポーネント プラグインを使って、ケーブルの外観を作成、セットアップ、制御し、レベル内のオブジェクトに反応し、衝突させる方法について説明します。

シミュレーションとレンダリング

実際のケーブルのシミュレーションには、ゲーム制作で知られている Verlet Integration (ベレの方法) という技術を使います。これはケーブルを 距離のコンストレイント を間に持つ一連のパーティクルとして表す考え方です。最後のパーティクルは 固定 され、アタッチされている任意のものと一緒に動きます。間にあるものは 自由 であり、重力で落ちていきます。各ステップで、各パーティクルのベロシティと位置を更新し、コンストレイントに従い移動します。ケーブルの 剛性 は、コンストレイント (各ステップ) を強化するためのイタレーションの回数でコントロールします。

クリックしてフルサイズ表示

チェーン状になった一連のパーティクルがバウンスします。これをレンダリングする必要があります。ケーブルをレンダリングするために、FCableSceneProxy というクラスが作成されて、ケーブルのレンダリングをします。Sim パーティクルの位置の各端は (TickComponent 内のメイン スレッドで行われる)、SendRenderDynamicData_Concurrent 関数経由でこのプロキシに渡されます。次に、更新はレンダリング スレッドで自動追跡され、次にインデックスと頂点バッファが更新されます。その結果、tube メッシュが作られます。このチューブ メッシュの各頂点で、位置、テクスチャ UV、および 3 つのタンジェントベースのベクターを計算する必要があります。これを行う場合、X はケーブルに沿ってポイントし、Z はケーブルから真っ直ぐポイントし (法線)、YXZ に対して垂直になります。こうしたプロパティはコンポーネントに公開されて、面の数、チューブの半径、およびケーブルにそって UV が何回タイリングされるかを制御する機能があります。

クリックしてフルサイズ表示

プラグインを有効にする

Cable コンポーネントのプラグインはデフォルトで有効になっています。有効になっていない場合は、メイン ツールバーで、[Edit] > [Plugins] の順に選択します。次にプラグインのリストから、[Rendering] に進み、[Cable Component][Enabled] の隣にあるボックスにチェックを入れるようにします。

クリックしてフルサイズ表示

Cable コンポーネントを使用する

プロジェクトのレベルに Cable コンポーネントを追加するには、2 種類の方法があります。次のセクションでは、こうした方法について説明します。

Place Actors パネルから Cable コンポーネントを使用する

[Place Actors (アクタを配置)] パネルから Cable コンポーネントを使用するには、以下の手順に従います。

  1. メイン ツールバー[Create] をクリックして [Place Actors Panel] を選択します。

    Access Place Actors Panel from the Create button

  2. 検索ボックスに「Cable」と入力します。ケーブル アクタ をレベルにドラッグします。

    クリックしてフルサイズ表示

  3. Cable アクタを配置、回転、スケーリングしてレベルのニーズに合わせます。

ブループリントで Cable コンポーネントを使用する

ブループリントで Cable コンポーネントを使用するには、新しいブループリント クラスを作成します。

  1. コンテンツ ドロワー / コンテンツ ブラウザ右クリック して ブループリント クラス を選択します。

    Creating new Blueprint Class

  2. アクタ をブループリントの親クラスとして選択します。

    Select Actor from the Pick Parent Class Window

  3. ブループリントの名前を「BP_Cable」に変更します。変更したらダブルクリックして ブループリント エディタ の中で開きます。

    Rename blueprint

  4. [Components] タブで [Add (追加)] ボタンをクリックします。リストの中から Cable コンポーネントを探して選択します。

    Adding Cable component to the Blueprint

  5. Cable コンポーネントが追加され、コンポーネント リストで Cable コンポーネントを選択すると、[Details] パネルでプロパティを調整できるようになります。ここでは、エディタを閉じる前に、すべてをデフォルトのままにして、必ずブループリントを コンパイル および 保存 するようにしてください。

    ケーブルのいずれかの端が落ちるようにするには、ケーブル コンポーネントの [Details ] パネルで、[Attach Start] または [Attach End] のいずれかのオプションのチェックを外します。エフェクトに合せるためにゲームの実行中に切り替えることも可能です。

    Disabling Attach Start and Attach End

  6. コンテンツ ドロワー内で BP_Cable を選択し、レベル内にドラッグします。必要に応じて移動および回転させます。

    Dragging Cable Blueprint into the level

ケーブル終端にオブジェクトをアタッチする

ケーブルのいずれかの端にオブジェクトをアタッチして、ケーブルと一緒にオブジェクトをスイングさせることもできます。割り当ては以下のように行います。

  1. [Actor] パネルで キューブ アクタ をレベルへドラッグします。以前追加した BP_Cable の横に動かします。

    Dragging the Cube Actor into the Level

  2. キューブの [Mobility][Moveable] に設定するようにします。

    クリックしてフルサイズ表示

  3. ワールド アウトライナー で Cable アクタの端にアタッチするキューブを探して、それを Cable アクタの上にドラッグします。キューブを Cable アクタの上にドラッグします。これを行うと、次のようなダイアログ ウィンドウが開きます。 Drag the cube over the cable actor

  4. [Cable End] を選ぶと、ビューポートでキューブが Cable アクタの端にスナップしているのがわかります。

    前

    後

  5. レベル ビューポートで Cable アクタを選択します。次に [Details] パネルの [Cable] セクションで [Attach End] オプションを無効にします。
    Disabling the Attach End option

    ケーブルをアクタにアタッチするには、Attach StartAttach End のオプション以外も使用することができます。アタッチメント ポイントとして使用可能なソケットを指定することもできます。

  6. Attach End を無効にすると、ビューポートはケーブルを自由にスイングします。

    ランタイム時に Attach Start オプションと Attach End オプションを動的に切り替えることができます。そうすることで面白いエフェクトを作ることができます。

コリジョンと剛性

コリジョンと剛性を有効にすると、Cable アクタの負荷が大幅に増えます。ケーブルがワールドで何かと衝突しなければならない場合や、エフェクトの見た目をよくするために剛性が必要な場合に限り、こうした機能を有効にしてください。こうした機能が不要ならば、パフォーマンスを上げるために無効にするとよいでしょう。

Cable コンポーネントには、ケーブルがどれくらい剛性を持っているかを制御しながら、ワールドでケーブルを衝突させるオプションがあります。ここの機能を有効にするには、以下の手順を行います。

  1. ブループリント エディタで、Cable Component の [Details (詳細)] パネルへ移動します。[Cable] セクションを探して [Advanced] オプションを展開します。

    クリックしてフルサイズ表示

  2. [Enable Stiffness][Enable Collision] の両方のオプションを有効にします。

    Enabling Stiffness and Collision

  3. Cable アクタを動かす、またはオブジェクトが衝突すると、Cable アクタすなわちケーブルが接触するオブジェクトと衝突します。

Cable コンポーネント プロパティのリファレンス

ここでは、Cable コンポーネントの各プロパティの参考情報を記載します。

Cable

Properties in the Cable Section

プロパティ名

説明

Attach Start

ケーブルの始端を何かに修正するか、フリーのままにします。false の場合、コンポーネントのトランスフォームは、ケーブルの始まりの初期位置として使用されます。

Attach End

ケーブルの終端を何かに修正するか (AttachEndTo および EndLocation を使って)、フリーのままにします。false の場合、AttachEndTo と EndLocation がケーブル終端の初期位置に使われます。

Attach End To

ケーブルの終わりの位置を定義するアクタまたはコンポーネントです。

Component Property

ケーブルをアタッチするコンポーネントのプロパティ名です。

Attach End To Socket Name

アタッチする AttachEndTo コンポーネントのソケットの名前です。

End Location

ケーブルの終端。指定した場合は、AttachEndTo (または AttachEndToSocketName) に相対的で、そうでなければ Cable コンポーネントに相対的になります。

Num Segments

ケーブルがいくつセグメントを持っているかです。

Solver Iterations

ケーブルがどれくらい剛性を持つかを制御するソルバー イタレーションの数です。

Substep Time

ケーブルのシミュレーション サブステップの時間を制御します。

Enable Stiffness

剛性コンストレイントをケーブルに追加します。

Use Substepping

falseの場合、更新前に Substep Time の経過を待ちますが、蓄積されたシミュレーション時間をすべて使ってケーブル シミュレーションを 1 回だけ実行します。

Enable Stiffness

ケーブルに剛性の制限を加えます。

Enable Collision

ワールドとの衝突を避けるため、各サブステップで各ケーブル粒子のスイープを実行します。コンポーネント上のコリジョン プリセットを使用して、衝突するものを決定します。そのため、ケーブル シミュレーションのコストが大幅に増加します。

現在実験的機能です。

Collision Friction

Collision が有効な場合、このオプションはケーブルの接触時の滑り摩擦度合を制御します。

Cable Forces

Properties in the Cable Forces Section

プロパティ名

説明

Cable Forces

ケーブルのすべてのパーティクルに適用される Force ベクター (ワールド空間) です。

Cable Gravity Scale

このケーブルに影響を与えるワールドの重力に適用されるスケーリングです。

Cable Rendering

Properties in the Cable Forces Section

プロパティ名

説明

Cable Width

ケーブル ジオメトリがどれくらいの幅であるかです。

Num Sides

ケーブル ジオメトリの面の数です。

Tile Material

ケーブルの長手方向に沿ってマテリアルを何回繰り返すかです。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル