‫こんにちは､ ようこそ｡
‫この講義では､ たくさんのクールな事柄を取り上げますが､ 最も重要なのは､
‫アクタを他のアクタにチャイルする方法です｡
‫このように､ ライフルはシューターキャラクターの子であり､ そこにあるメッシュが実際にこのスケルタルメッシュの手にくっつくようにすることができます｡
‫ご覧のように､ その銃はそのプレイヤーの手と一緒に動いているのです｡
‫さっそく潜入してみましょう｡
‫そこで､ このメッシュに銃を持たせる前にまずしたいことは､ 現在ある銃を削除するか隠すことです｡
‫さて､ これを行う最も簡単な方法は､ 銃のメッシュを持つボーンを非表示にすることです｡
‫見てみよう｡
‫そこで､ シューターキャラクターに話を移せば､ BPがその入り口となるわけです｡
‫そして､ ここから実際のメッシュを探したいと思います｡
‫骨格のメッシュができました｡
‫この骨格を見ると､ この銃をクリックすると､ 武器と呼ばれる骨がつながっているのがわかります｡
‫骨と武器のアンダースコアAR
‫基本的にはこれを隠したいのですが､ これを全面的に隠す最も簡単な方法はコードで行うことで､
‫私たちはC++でこれを行うつもりです｡
‫そこで､ まずはメッシュコンポーネントを手に入れることです｡
‫キャラクターのサブクラスでこれを行う方法は､ mesh coolを取得するために呼び出すことです｡
‫だから､ メッシュにするんです｡
‫そして､ メッシュで､ ボーンを隠したいのです｡
‫便利なことに､ 名前でボーンを隠すメソッドがあり､ これは実際にスケルトンメッシュコンポーネントの親であるスキンメッシュコンポーネントに存在します｡
‫ヘッダーファイルを簡単に見てみましょう｡
‫スキンのついたメッシュコンポーネント｡
‫ここには､ いくつかの機能があります｡
‫探しているのは､ 名前からしてHide Boneです｡
‫ここでサインを見ることができるんですね｡
‫ボーンネームが入ったり､ Fネームが入ったりしています｡
‫そして､ 2つ目がこのE魚体OPです｡
‫私の知る限り､ これはコードベースでは使われていませんが､ シグネチャにあるため提供する必要があります｡
‫では､ さっそく使ってみましょう｡
‫そこでアローは､ ハイドボーンを名前でやってみることにしました｡
‫残念ながら､ オートコンプリートが機能しないんです｡
‫4のバグですね｡ Vのコードの現時点での25または完了するには､ 100％動作するようにしたいことはありません｡
‫でも､ それでいいんです｡
‫代わりにマニュアルのやり方を学べばいいのです｡
‫次に､ 骨の名前が必要ですが､ これは練習として､ すぐに記入できるようにしておきます｡
‫そして､ もうひとつは､ 体操着のようなものが欲しかったので､ それを目指したいと思っています｡
‫これはenumなので､ 記入する必要があります｡
‫F 12を使って定義に行き､ 何ができたか確認します｡
‫PBO なし
‫常識的なデフォルトと思えるようなことはしないでください｡
‫そして､ セミコロンを使って､ この行を終わらせましょう｡
‫では､ これをコンパイルして､ 必要なインクルードがすべて揃っているかどうか見てみましょう｡
‫かっこいい｡
‫うまくいっているようなので､ これで必要なものが揃ったのでしょう｡
‫ボーン名はweapon underscore Rです｡ weapon
‫underscore Rはトリックを行う必要があります｡
‫この状態でリコンパイルし､ 再生ボタンを押すと､ 銃を持たなくなっているのがわかると思います｡
‫ファンタスティック｡
‫そこで次は､ 俳優の銃とは別の銃を手にすることになる｡
‫そこで､ スケルトンに移動する必要があります｡
‫そして､ ここでやりたいことは､ 新しいソケットを追加することです｡
‫そこで､ 武器の代わりにソケットを追加することにします｡
‫R そして､ ソケットとは何でしょうか｡
‫ソケットとは､ その名の通りプラグを差し込むためのものです｡
‫他のものを差し込むことができる点です｡
‫たとえば､ 銃のプラグインを､ メッシュ全体ではなく､ メッシュの特定のボーンにチャイルドさせ､
‫キャラクターの腕に合わせて正しく動かせるようにしたい場合があります｡
‫アニメーションをするとき､ 彼がジョギングしているとき､ 胴体にガチガチに固定されているのではなく､
‫手のどこかに付いているように見えるでしょうから｡
‫そこで､ ウェポンに子ソケットを追加することにします｡
‫これをやってください｡
‫スケルトンに移動して､ ソケットを取り付けたいボーンを右クリックし､ ソケットの追加をクリックします｡
‫そして､ これを武器と呼ぶことにします｡
‫ソケットです｡
‫ここでは慣例としてキャメルケースを使用していますが､ これをアタッチすることにします｡
‫さて､ 実際に銃の取り付けを行う際に､ この方法が役に立つことがおわかりいただけると思います｡
‫さて､ ここで注意しなければならないのは､ 実行時にコンストラクタで行うようなセットアップアタッチメントを行わないことです｡
‫アタッチメントを行う場合､ コンストラクタで使用する関数ではなく､ 別の関数群を使用する必要があります｡
‫ここでいう階層とは､ シーンの構成要素間のことです｡
‫さて､ 幸いなことに､ 銃の根元の部品を取り出してきて､ それを取り付けるということはありません｡
‫アタッチメントを行うためのヘルパーメソッドがアクターにあり､ それがコンポーネントにアタッチされています｡
‫では､ その定義がどこにあるのかを見てみましょう｡
‫アクターHのヘッダーファイルを見てみると､ いくつかありますが､
‫ゲーム・フレームワークの下にあるヘッダーファイルが必要です｡
‫これです｡
‫では､ これは何を取り込むのでしょうか？
‫Uで受けることになる｡ S. コンポーネント､ この場合アタッチする親は､
‫キャラクタのスケルトンメッシュにするつもりです｡
‫トランスフォームのルールは､ ほんの一瞬でこのことに触れます｡
‫そして､ ソケット名ですが､ これはスケルトンメッシュのどこに接続するかということです｡
‫スケルトンメッシュであれば､ ソケットに装着されます｡
‫スケルトンメッシュでない場合､ ソケットの引数を無視して､ 例えばスタティックメッシュであればアタッチするだけです｡
‫そこで､ メッシュを取得するためにアタッチしたいのです｡
‫このようなトランスフォームのルールがあります｡
‫それは何ですか？
‫F12をクリックして､ 利用可能なさまざまなルールにアクセスしてみましょう｡
‫これがプリセットのルールです｡
‫自分で定義することもできますが､ プリセットされているものを使うのがよいでしょう｡
‫相対変換を維持する､ ワールド変換を維持する､ ターゲットにスナップする､ スケールを含まない､ これらの機能は無視されます｡
‫最後に､ 主な注意点は最初の2つで､ 基本的には､ アタッチするときに､ ワールド内の同じ場所に留まるべきか､
‫それともそのワールド位置を新しいローカル位置として使用するかということです｡
‫なぜなら､ その銃は基本的にゼロゼロであり､ 世界の中でその位置にあることが望ましいからです｡
‫相対変換を維持したいので､ そうしてみましょう｡
‫F変換のルールで相対変換を維持させるんだ｡
‫だから､ 私は部屋のルールを変換しているコロンコロンと､ 私はちょうどこのように相対的な変換を維持する上にコピーしてみましょう､
‫そして､ 我々は､ ソケットをしたいです｡
‫ここで再びテキストマクロを使用し､ ソケット名は武器ソケットとしました｡
‫そして､ ラインを仕上げる｡
‫これでアタッチメントが設定されますね｡
‫そして､ 最後のポイントは､ セットアップしたいところです｡
‫このクラスを所有者とする銃｡
‫これはちょっと微妙なところです｡
‫なぜオーナーがいるのか？
‫ただ､ 役者同士の上下関係はないと言っただけです｡
‫まあ､ トランスフォームという意味ではないのですが､ 所有権はあります｡
‫そして､ この所有権が如何なく発揮されるのが､ マルチプレイとダメージです｡
‫ですから､ 所有者についてどのように知る必要があるかは､ 後ほど見ていくことにしましょう｡
‫また､ 銃は所有するキャラクターが何であるかを知ることができ､ それを使って後で所有するキャラクターへの参照を得ることができます｡
‫これは便利でしょう｡
‫今のところ特に気にしていませんが､ 念のためやっておきます｡
‫今実際にこの間違った名前を付けてください｡
‫所有者を設定するのではなく､ 所有者をこれに設定すべきです｡ なぜなら､ これは銃の所有者であるアクターだからです｡
‫クールビーンズ
‫コンパイルして､ これがうまくいっているかどうか見てみましょう｡
‫コンパイルに成功したもの｡
‫飛び込みでゲームをしてみよう｡
‫すごい｡
‫私たちは武器を手にしたのです｡
‫正しい場所にあるのか？
‫見てみよう｡
‫ここから8をFして手札を見ましょう｡
‫そうとも言えません｡
‫ここで少し調整すればいいことがおわかりいただけると思います｡
‫というわけで､ そういうことになります｡
‫そして､ これはあなたへの挑戦状です｡
‫基本的には､ このハンドルがメッシュのレイスキャラクターの手の中に実際にあるように､
‫メッシュ上でどのようなオフセットが必要かを見つけようとするものです｡
‫ビデオを一時停止して､ それでやってみてください｡
‫なるほど｡
‫お帰りなさい｡
‫そこで､ そのメッシュを選択して動かしてみるということをやってみます｡
‫ビューポートのグリッドスナップサイズを少し小さめに設定する必要がありそうです｡
‫そして､ その手をできる限り拡大してみる｡
‫なるほど｡
‫それを少しづつ下げていく｡
‫いいと思います｡
‫叫んでください｡
‫では､ その場所をコピーして開いてみましょう｡
‫コンテンツブラウザで､ BPライフルを開いてください｡
‫フルブループリントエディタを開き､ メッシュに移動してシミュレーションを停止し､ そこにコピーしていた場所をペーストします｡
‫なるほど､ クールだ｡
‫了解しました｡
‫そして､ 再生ボタンを押して行きましょう｡
‫そして､ それが実際に正しいことを伝えてくれたことを確認しましょう｡
‫フェードアウトとズームイン
‫ちなみに､ このような動きをしているときは､ スクロールホイールで動きを遅くすることができます｡
‫ファンタスティック｡
‫ハンドルに直接手をかけているように見える｡
‫すごいものですね｡
‫ここまでで､ アクタを他のアクタに従属させる方法と､ シーンコンポーネントをスケルトンメッシュのソケットに接続する方法を学びました｡
‫次回の講義では､ 射撃について少し触れ､ この銃のアーキテクチャが基本的に射撃のアーキテクチャにどのように組み合わされているかを見ていきたいと思います｡
‫では､ 現地でお会いしましょう｡