こんにちは、株式会社ヒストリアのアートディレクター くろさわです。Blender講座をはじめたいと思います。
今回のBlender講座はピコピコハンマー編の後編です。Vol.2でモデリングしたピコピコハンマーをUnreal Engineにインポートして、動かします。タメの動き、ハンマーの効果音も付け、プロップらしく仕上げていきますよ!
Vol.02の講座をまだやっていない人はそちらを終えてから、今回の講座に挑戦してみてくださいね。
こんにちは、株式会社ヒストリアのアートディレクター くろさわです。Blender講座をはじめたいと思います。
今回のBlender講座はピコピコハンマー編の後編です。Vol.2でモデリングしたピコピコハンマーをUnreal Engineにインポートして、動かします。タメの動き、ハンマーの効果音も付け、プロップらしく仕上げていきますよ!
Vol.02の講座をまだやっていない人はそちらを終えてから、今回の講座に挑戦してみてくださいね。
TEXT / くろさわ
EDIT / 酒井 理恵
Vol.02ではピコピコハンマーをゲームエンジンで使いやすいようにモデリングしました。
ここからはUE5での作業になりますので、まだアンリアルエンジンを触ったことのない人は以下のチュートリアル記事に挑戦してみてください。
ゲームメーカーズ特集記事 『ゲームづくりを始めよう!』プロジェクトはキーボーを作成したときのものを開こう。
UE5のコンテンツドロワーをクリックして、モデルデータのFBXファイルをドラッグ&ドロップしてインポートしてください。
FBXのインポートの際は、前回同様「メッシュ」の「詳細設定」にある「Combine Meshes」にチェックを入れ、さらに「Normal Import Method」の項目で「Import Normals and Tangents」を選んでください。
「Import Normals and Tangents」に設定するとBlenderで作成した法線のままインポートできる。
次はキーボーに「ハンマーを振る」という新しいアクションを追加していくぞ。
画面上部の「編集」メニューから「プロジェクト設定」を開いてください。
「エンジン」の「インプット」をクリックします。
次に「バインディング」の「アクションマッピング」の横にある「+」ボタンを押します。
追加された項目の上を見ると、すでに「Jump」というアクションが設定されている。これは前回、キーボーに設定されていたジャンプのキー入力イベントだ。
今回は「+」ボタンを押してできた新しい項目にハンマーを振る操作を加えていくよ。
アクションの名前は「Attack」に変更してください。
キーアサインは以下を割り当てます。
キー割り当てを増やすには、追加した「Attack」アクションの横の「+」ボタンを押そう。
これでキー入力の設定はおしまい。
こんなふうに、アクションマッピングを使うことで、複数のキー入力に簡単に対応できるんだ。
さぁ、次はハンマーをキーボーに持たせるぞ!
ピコピコハンマーを表示させ、大きさを調整します。
コンテンツドロワーのフォルダ階層から「All」>「コンテンツ」>「ThirdPersonBP」>「Blueprints」を選択し、ThirdPersonCharactorをダブルクリックします。
新しく開いたウィンドウ上部の「ビューポート」タブをクリックします。
コンテンツドロワーから「SM_PikoHammer」を選択し、「コンポーネント」の「追加」から、「StaticMesh(SM_PikoHammer)」を選択してください。
ハンマーは追加できたけれど持ち手がキーボーを突き抜けてしまっているね。
ハンマーの位置と大きさを調整しよう。
追加したハンマーのスタティックメッシュコンポーネントの位置と大きさを調整して、キーボーが右手に持っているくらいのサイズに調整してください。その際ハンマーは地面に当たるように調整してください。
キーボードやゲームパッドで「Attack」の操作をする設定はできたけど、今のままでは「Attack」がどんな動きなのかはわからない。
次は「Attack」の挙動をハンマーに設定しよう。
ハンマーを振り被った状態はどうすれば作れるだろう?
回転ツールを使ってハンマーを垂直にしてみよう。
この位置をActionボタンを押す前の初期位置とします。ハンマーを立てているときと、地面にぶつかったときの2つの座標を比べてみると、「回転」のXの値が-90から0に変化しており、それ以外の値は何も変わっていないことがわかります。
それじゃあ、これから「Attack」ボタンを押したときに「回転」のXの値を変化させる処理を書いていこう。
ThirdPersonCharactor_BPの「イベントグラフ」タブをクリックします。
イベントグラフのなにもないところで右クリックして、ノード検索欄にAttackと打ち込んでEnterを押し、Attackという名前のInputActionのイベントを作成します。このイベントにハンマーを回転させる処理を加えましょう。
ハンマーは0.05秒くらいの一瞬で振り下ろす。
一瞬とはいえ時間の長さを持っているので、タイムラインノードを使って時間の中で動きがどう変化したかを設定しよう。
タイムラインノードはこの処理をグラフで直感的に作れるんだ。
新しくタイムラインノードを作成します。
作成したノードをダブルクリックしてタイムラインを編集します。
「長さ」の値に0.05と入力して、このグラフの長さを決めてください。つぎに「+トラック」ボタンを押して「フロートトラックを追加」を選びます。
タイムラインの見方は、横軸が時間の長さで縦軸が値です。
今回作りたいタイムラインは、ボタンを押す前のハンマーを立てているときに「回転」のXが-90で、Attackのボタンを押した0.05秒後に地面にぶつかり、「回転」のXが0になるというものです。
それでは、0秒のときに-90、0.05秒のときに0という2つのキーフレームを追加しましょう。
キーフレームはグラフ内をダブルクリックすると追加できます。
キーフレームは追加した後にドラッグして場所を動かしたり、数値を入力して値を調整できる。
まずは大体の場所にキーフレームを追加してみよう。
タイムラインにカーソルを合わせF2キーを押し、出力名を「Attack」に変更します。
これでタイムラインの作成はおしまい。タブをタイムラインからイベントグラフに切り替えよう。
次はこのタイムラインを「回転」のXのノードにつないでピコピコハンマーが動くようにしよう!
タイムラインで設定した値を回転の値に使用します。
イベントグラフに「Set Relative Rotation(SM_PikoHammer)」というノードを新規作成してください。
ここにノードを接続して、ハンマーの動きを設定していこう。
Attackにタイムラインで設定した叩く動きを再生するよう設定するよ。
「Attack」の「Pressed」と「タイムライン_0」の「Play」を接続します。さらに「タイムライン_0」の「Update」と「Set Relative Rotation」を接続します。
「Set Rerative Rotation」の「NewRotation」を見てみよう。
3軸が一つの値でコントロールされるようになっているね。
今回、操作したいのはX軸だけなのでSplit(分離)しておこう。
New Rotationを右クリックして「構造体ピンを分割」をクリックします。
これで回転のXYZを別々にコントロールできるようになったぞ。
タイムラインノードの「Attack」と「New Rotation X(Roll)」の値を接続してください。また、ハンマーの回転Zの値はいつも-90になるため、「-90」と入力しておきましょう。
これで叩く動きができた。
でも、今のままでは叩き終わった後にハンマーを振り上げる動きがない。
叩き終わった後に戻ってくる動作は、叩く動きを逆再生して使おう。
「インプットアクション Attack」の「Relased」(ボタンを離したとき)を「タイムライン_0」の「Reverse」(逆再生)に接続してください。
ここまでできたら画面上部の「保存」を押し、緑の三角マークのPlayボタンを押してキーボーを動かしてみよう。
キーボードの左側のShiftボタンを押してハンマーが動くかな?
タイムラインにちょっとした味付けをして、動きをより迫力のあるものにしてみよう。
「タイムライン_0」をダブルクリックしてフロートトラックの画面にします。
先ほど追加したキーフレームの上で右クリックを押して、キーフレームの補完方法を「自動」にしてください。
キーフレームは2つあるので2つとも「自動」にすると、緩やかなS字のカーブになるぞ。
これで出始めが、わずかに緩やかになり、いわゆるタメが作れた。
次にカーブの上で右クリックを押して、「CurveFloat_0にキーを追加」をクリックしてください。これでキーフレームが新たに作られました。作成したキーフレームを動かして画像のように一度0よりも大きな値になり戻ってくる動きを作ってください。
これによって、ピコピコハンマーは地面にめり込んでいることになる。
実際にはピコピコハンマーが地面にめり込むことはないけれど、誇張した動きで迫力をつけているんだ。
ピコピコハンマーに効果音をつけてみよう。
振った瞬間に音が出るようになるよ!
今回の効果音は無料でダウンロードできるこちらを使います。
Interface & Item Sounds Pack「プロジェクトに追加」を押してUnreal Engineにインポートしてください。
音はハンマーを叩くボタンを押したときにだけ出したい。
ピンを順番に実行するSequenceノードを使って、ハンマーを叩いたときのタイムラインと音を同時に処理しよう。
イベントグラフにPlay Sound 2Dノード・Sequenceノードを新規作成します。
Play Sound 2DノードとSequenceノードを下記の画像のように接続します。
Play Sound 2Dノードの「Sound」をダブルクリックして、インポートしたサウンドアセットから好きなサウンドを割り当てます。ハンマーが振り落とされるときに適した音を選んでください。
これでピコピコハンマーは完成。
さぁ、キーボーを動かして叩きまくってみよう!
株式会社ヒストリア アートディレクター/テクニカルアーティスト
海外インディーゲームとホワイトビールが好き。
西川善司が語る“ゲームの仕組み”の記事をまとめました。
Blenderを初めて使う人に向けたチュートリアル記事。モデル制作からUE5へのインポートまで幅広く解説。
アークライトの野澤 邦仁(のざわ くにひと)氏が、ボードゲームの企画から制作・出展方法まで解説。
ゲーム制作の定番ツールやイベント情報をまとめました。
東京ゲームショウ2024で展示された作品のプレイレポートやインタビューをまとめました。
CEDEC2024で行われた講演レポートをまとめました。
BitSummitで展示された作品のプレイレポートをまとめました。
ゲームメーカーズ スクランブル2024で行われた講演のアーカイブ動画・スライドをまとめました。
CEDEC2023で行われた講演レポートをまとめました。
東京ゲームショウ2023で展示された作品のプレイレポートやインタビューをまとめました。
UNREAL FEST 2023で行われた講演レポートをまとめました。
BitSummitで展示された作品のプレイレポートをまとめました。
ゲームメーカーズ スクランブルで行われた講演のアーカイブ動画・スライドをまとめました。
UNREAL FEST 2022で行われた講演レポートやインタビューをまとめました。
CEDEC2022で行われた講演レポートをまとめました。