スタティックメッシュでソケットをセットアップして使用する

ソケットのセットアップと使用方法

Windows
MacOS
Linux

UE4 でレベルを作成していると、スタティックメッシュに何かをアタッチすることがあるでしょう。ワールド アウトライナー でスタティックメッシュにオブジェクトを親子付けすることはできます。しかし、メッシュに対して配置したい場所に正確に位置付けしなければならず、とても面倒です。しかし、ソケットを使用してスケルタルメッシュにオブジェクトをアタッチできるのと同様に、ソケットを使用してスタティックメッシュにオブジェクトをアタッチすることができます。スタティックメッシュ エディタでソケットを作成し、それをメッシュに対して配置したい場所に配置し、オブジェクトをアタッチするだけで簡単にできます。それがライト、パーティクル エフェクトであれ、場合によっては別のスタティックメッシュであってもメッシュにアタッチできます。この操作ガイドではスタティックメッシュに対してソケットを作成する方法とレベルで使用する方法について説明します。

セットアップ

既に作業対象の独自のレベルとスタティックメッシュをお持ちである場合は、この手順をスキップできます。そうでなければ、ランチャーから UE4 を起動し、新規プロジェクトを作成します。必ず、プロジェクトの保存先のパスを選択し、名前を付けます。作業するテンプレートも選択します。以下の画像では、Blueprint First Person Template を選択しましたが、どのテンプレートでもご使用いただけます。

スターター コンテンツ が有効になっていることを確認してください。有効にしないと、この操作ガイドで後で使用する一部のアセットが存在せず、理解が難しくなるかもしれません。

NewProjectWithStarterContent.png

ひとつめのソケットを作成する

プロジェクトが開いたら、コンテンツ ブラウザスターター コンテンツ を探します。次に Props フォルダまで移動し、 SM_DoorFrame という名前のスタティックメッシュを探します。

ContentBrowserWithStarterContent.png DoorFrameInContentBrowser.png

SM_DoorFrame を見つけたら、以下のいずれかの方法でスタティックメッシュ エディタ内で開きます。このアセットを ダブルクリック するか、アセットを 右クリック してコンテキスト メニューから Edit を選択して開きます。上記を行うと、以下の画面に類似したものになります。

DoorFrameInEditor.png

スタティックメッシュ エディタでメッシュが開いたので、出入り口の中央に炎のパーティクルを配置し、ある種の破滅への通路を作るソケットを作成します。最初に、ソケットを作成する必要があります。これを行うには、エディタ上部の ウィンドウ ドロップダウン メニュー上をクリックして、[Socket Manager (ソケット マネージャ)] を選択します。すると、[Socket Manager] ウィンドウが表示されます。以下の画面に類似したものになります。

WindowMenu.png CreateSocketButton.png

[Socket Manager] ウィンドウが開いたら緑でハイライトされた [Create Socket (ソケット作成)] ボタンをクリックします。クリックすると、新しいソケットが作成され、名前を付けるように促されます。この例では、ソケットに Fire と名前を付けます。[Create Socket] ボタンをクリックすると、[Socket Manager] ウィンドウは以下の画面に類似したものになります。

NewSocket.png

ビューポートでメッシュを見ると、平行移動ウィジェットを備えた 3D ウィジェットがあるのがわかります。3D ウィジェットがない場合は、ツールバーの Sockets ボタンをクリックしてソケットを表示させるようにしてください。 (SocketsButton.png)

ソケットが見えるようになったとき、必要な位置にないかもしれません。新しいソケットを作成した場合、デフォルトでスタティックメッシュの原点、メッシュ下部中央に位置するかもしれません。ここでは、プレイヤーが出入り口を歩いて通り抜けるときに炎の中を通らなければならないようにするため、出入り口の中央にソケットが存在する必要があります。ビューポートで平行移動ウィジェットを使用してソケットを手動で動かしたり、その相対的な位置、回転、スケーリングを [Socket Manager] パネルから変更することができます。必要なエフェクトを実現するために、Z 値を相対位置 0 から 115 に変更します。これを行った後は、以下のようになります。

FireSocket.png

スタティックメッシュにオブジェクトをアタッチする

スタティックメッシュにアタッチするためのソケットができたので、レベルでスタティックメッシュにオブジェクトをアタッチします。スタティックメッシュ エディタ内のツールバーにある [Save (保存)] ボタンをクリックし、レベル エディタに戻ります。コンテンツ ブラウザ 内で SM_DoorFrame を見つけて、そのコピーをレベルにドラッグします。これを行ったあと、「Starter Content」 フォルダにある 「Particles」 フォルダに進み、P_Fire という名前のアセットを探します。

FireParticle.png

P_Fire が見つかったら、そのコピーもレベルにドラッグします。これはプレイヤーが通過する炎としての役割を果たします。つまり、SM_DoorFrame にアタッチするオブジェクトです。P_Fire のインスタンスをドラッグしたら、ビューポート内のパーティクルを 右クリック してください。以下のようなメニューが表示されます。

ContextMenuForFire.png

コンテキストメニューで Attach To を選択し、表示される検索ボックス内で Door Frame と入力し始めます。SM_DoorFrame が表示されます。

FireAttachToFrame.png

SM_DoorFrame を選択すると、どこにオブジェクトをアタッチするかを尋ねられます。このリストには、 None およびスタティックメッシュのために作成したすべてのソケットが表示されます。Fire を選択すると、そのパーティクル エフェクトである P_Fire がスタティックメッシュ上のソケットがある場所に魔法のようにスナップします。これでパーティクル エフェクトがスタティックメッシュにアタッチされました。

ChooseSocket.png FireInFrameComplete.png

パーティクル エフェクトがソケットを介してスタティックメッシュにアタッチされました。まだパーティクル エフェクトをスタティックメッシュとは別に移動、回転、スケーリングさせることはできますが、スタティックメッシュに加えられた変形はそれにアタッチされているオブジェクトにも影響を及ぼします。

デタッチ

別のオブジェクトにアタッチされているオブジェクトをデタッチする必要が生じることがあるでしょう。これは、オブジェクトを別のオブジェクトにアタッチするのと同じくらい簡単です。デタッチしたいオブジェクト上で 右クリック して、表示されるコンテキスト メニューから [Detach] を選択します。これでオブジェクトは他のオブジェクトにアタッチされない状態になります。

Detach.png

頑丈なドアで入り口を作る

ソケットを使用して破滅への通路を作ったので、ソケットを使用してもう少し実用的なものを作ります。スターター コンテンツ 内の Props フォルダで、SM_DoorFrame を見つけて、コピーをもうひとつレベルにドラッグします。SM_Door が見つかったら、そのコピーもレベルにドラッグします。既にあるソケットを使用してドアフレームにドアをアタッチしますが、問題があります。オブジェクトを別のオブジェクトにアタッチすると、オブジェクトはその原点でソケットにアタッチされます。スタティックメッシュの SM_Door では、下部の隅に原点があります。そのため、 Fire ソケットをドアにアタッチすると、ドアが空中に浮いたままになり、戸口の隅で爆発します。この問題を修正するために、もうひとつ別のソケットを作ります。

新しいソケットを作成する

コンテンツ ブラウザSM_DoorFrame を見つけて、そのアセット上で ダブルクリック して、スタティックメッシュ エディタで開きます。Socket Manager パネルがまだ開いたままの場合は、Add Socket ボタンをクリックします。パネルが開いていない場合は、エディタ上部の ウィンドウ ドロップダウン メニューから、Socket Manager を選択してこのパネルを再度開きます。上記を行ったら、Add Socket ボタンをクリックします。

ソケットを作成したら、名前を付けるよう促されます。この例では、このソケットに Door と名前を付けて、ドア メッシュにアタッチすることを意図したソケットであると後で判別できるようにします。繰り返しになりますが、一度ソケットを作成するとメッシュの原点に作成されます。この場合は、ドアフレームの下部中央になります。ドアメッシュの原点は下部の隅であるため、ここに Door ソケットを移動します。3D ウィジェットを使用してソケットを手動で動かしたり、その相対的な位置、回転、スケーリングを Socket Manager パネルから変更して動かすことができます。この例ではソケットの相対位置の Y の値を 45 に変更すると必要とする結果が得られます。下部の隅にソケットを移動したら、ドアフレームのメッシュは以下の画面に類似したものになります。

DoorSocket.png

ソケットが表示されていない場合は、ソケットが見えるように SocketsButton.png がハイライトされていることを確認してください。

ドアをフレームにアタッチする

ドアをフレームにアタッチするためのソケットが用意できたので、ドアフレーム メッシュを保存してレベル エディタに戻ります。レベル内にあるドアのインスタンスを選択し、右クリック してコンテキスト メニューを呼び出します。コンテキスト メニューから Attach を選択し、SM_DoorFrame を検索します。ドアをアタッチするドアフレームのインスタンスを見つけて、その上で 左クリック して選択します。どのソケットにアタッチするかを尋ねられたら、 Door を選択します。操作を終了すると、以下のようになるはずです。

DoorSocketComplete.png

デフォルトで SM_Door にはコリジョンは設定されていません。レベルを再生すると、プレイヤーは頑丈なドアを通り抜けられます。これはあまり、有用ではありません。スタティックメッシュ エディタ内で単純なボックス コリジョンを設定して、ドアが閉じているときにプレイヤーが通り抜けられないようにします。この方法がわからない場合は、 ここ をご覧ください。

ドアが頑丈でプレイヤーが通り抜けられないので、ブループリントを使用して開閉できるようにドアの挙動をスクリプティングできます。これはこの操作ガイドで扱う範囲外です。しかし、プレイヤーをブロックし、ドアフレームにアタッチした使用するドアが用意できたので、ドアを開閉させる挙動をスクリプティングする方法については、 ここ をご覧ください。

Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信