Gaming Life

一日24時間、ゲームは10時間

UE4 ちょっと見栄えのいいワープ機能を実装してみる

先日の第三回UE4GameJamに参加して以降、他の人の組んだBPを読み込んだり、いろんな機能を実験していたのだがその中で色々応用の効きそうなBPが実装できたので自分用のメモがてらブログにまとめる。

環境

使用ver: UE4 1.8.2

使用テンプレート: TwinStickShooter

ワープポイントのエフェクト

 今回は無料で手に入る「InfinityBladeEffect」内の「P_Summon_Portal」を利用。InfinityBladeEffectは実用的な上中身を見てるだけでCascadeの勉強になるので神。

ワープ機能を実装する

 これは ヒストリアさんのブログ が詳しいので参考にされたし。ただしこの記事では一つのActorを継承したBP「BP_WarpPoint」に「Box Collision」を二つ持たせて解決してるがこれでは使い勝手が悪いので、いわゆる「ダイレクトブループリント通信」を利用した。

 「BP_WarpPoint」型の変数を用意してDetailsから「Instance Editable」にチェックを入れる。これにより設置したレベル上でその変数の中身を変えることができる。 (ダイレクトBP通信については公式 がとても詳しいのでそちらを見るべき )

 レベル上にこの「BP_WarpPoint」を二つ設置し(それぞれ①、②とする)Details->Defaultから先程用意した「BP_WarpPoint」型の変数に①には②、②には①をセットする。これでヒストリアさんのブログで紹介されていたワープ機能と同等の機能が得られるはず。

ワープ中入力を受け取らないようにする&黒画面フェードアニメを実行する

 ワープ中に移動できるようにすると変なので

ワープポイントに入る ->移動を禁止 ->黒画面フェードアウト ->ワープ ->黒画面フェードイン ->移動禁止を解除する

という一連の機能を実装してみた。以下、順を追って説明する。

①移動を禁止する  いろいろな方法があるが今回は「SetActorTickEnabled」を利用した。このノードは「Enabled」がFalseの時入ってくる「Target」のEvent Tickが実行できないようにする。今回はこれで問題なく動くが、ワープ中もTickを実行したい場合はフラグを立てて分岐させれば良さそう。

②黒画面フェードアウト、フェードイン  これは alwaiさんのブログ が非常に詳しいです。ほぼこのサイトのままなのでフェードアウト、フェードインアニメーションの作成の仕方は省略。

 ブログの手順に従って作成したUMGアニメーション、「Fadeout」、「Fadein」を以下の関数で呼び出します。

f:id:ai_gaminglife:20171129022103p:plain f:id:ai_gaminglife:20171129022120p:plain

 最終的には以下のようになりました。

f:id:ai_gaminglife:20171129022131p:plain f:id:ai_gaminglife:20171129022135p:plain

 実際動かした動画。

まとめ

  • InfinityBladeEffectは神。
  • ほぼ独学でここまでやってきたけど3ヶ月も使ってると流石に慣れてきた。
  • 劇場版アニメゴジラ早く見たい

 最近はメトロイドライクなゲームの開発がストップしているので次回もTwinStickShooterテンプレートを改造するか、乱数について色々実験するかも。

UE4進捗1-4 MaterialInstanceDynamicを使ってマテリアルの色を変える

 pythonの勉強を始めたせいでUE4を触る時間が少なくなっているがブログを更新していかないと企画すらボツになってしまいそうなので大して変わってないが記事を上げる。    Blenderで自作のモデルを作成、マテリアルの編集は主にUE4でやっている。中身は殆ど aiweiさんのブログ のままなので実装はそちらを参考にしてください。変更点はこのモデルは贅沢にもマテリアル二つで構成されているため「Get Material」「Create Dynamic Material Instance」のElement Indexを1に変更したことくらい(これで一時間ほど悩んだ)。

UE4進捗1-3 爆弾を打ち出す方向を決める(1)

現在作業中。Twitterで経過報告はしてますが中身はまだ見せられるようなものではないので、もう少しブラッシュアップしたらブログ更新します。   最初独力でできる気がせず、 UE4ANSWERHUBで質問させて頂きました。するとすぐに詳細な回答が帰ってきました。回答してくださったPAVI_PAVIさん、unaunagiさんに対してこの場を借りてお礼申し上げます。

UE4進捗1-2 SideScrollerテンプレートでエイム方向を制御する

 こんにちは。未だにブログでの口調が決められません。暫く統一感のない文章になると思いますがじき直して行くので許してください。

 前回記事で、UnrealEngine4付属のSideScrollerテンプレートを少し改造して弾を撃てるようにしましたが、プレイヤーが向いている方向にしか撃てない、テンプレートのままのBPだと同じX軸上にしか敵はいないのに、左から右にキャラの向きを変える時一時的に正面を向いてしまい、その向きで弾を撃つと手前方向に飛んでしまうという不具合が有りました。今回はそれを直していこうと思います。

プレイヤーが正面を向いてしまう問題を解決する

f:id:ai_gaminglife:20171019004042p:plain

 これはすぐ解決しました。「Input MoveRight」の出力ピンであるAxis Valueに-90をかけた値を「Make Rotator」ピンのZにつなげてRotatorを得ます。それを「set ActorRotation」に繋げば終わり。上の画像では間に色々処理をしていますがエイム制御に用いているので次で説明。

弾を8方向に発射できるようにする

 まずコンテンツブラウザからblueprint -> enumrationを選んで新たに作成しましょう。わかりやすいように AimDirection と名前を付けました。  enumとは列挙型のことで、わからない方は各々調べてください。なんせ私もこれを作っている途中で知ったので……  AimDirectionの中身はこのようになっています。

f:id:ai_gaminglife:20171019004058p:plain

 以降は込み入ってるのでざっくり方針を説明して実際のBPの画像を示すことにしましょう。

  1. Project Setting -> Input から MoveUp を新たに定義。中身はW(Scale:1.0)、S(Scale:-1.0)。

  2. 「InputAxis MoveRight」の出力ピンからBranchで場合分け。それに応じて SideScrollerCharacter 内で新たに定義したAim Direction型の変数 Horizontal Aimをセットする。

  3. 「InputAxis MoveUp」の出力ピンからBranchで場合分け。それに応じてAimDirection型の変数 Vertical Aimをセットする。

  4. 「Event Tick」から「Switch on AimDirection」を使って9パターンに実行ピンを分ける。AimDirection型の変数 FinalAim Directionに対応する文字をセット。

  5. 確認のためFinal Aim Directionの中身を表示する関数「Debug Aim Direction」を実行。

  6. 再び「Switch on AimDirection」を実行し、それぞれ対応するVector型変数 Aim Vectorをセットする。 例:「Up」の時は(0.0, 0.0, 1)、「Right Down」の時は(0.0, 1.0, -0.3)

  7. 弾のBP、BP_ShotFireに新たに Vector型変数、 SpawnVectorを定義。これは「編集可能」と「スポーン時に公開」にチェックを入れる必要がある。

  8. 7の作業をするとスポーン時にActorに引数を渡せるようになる。Spawn Actorに、Aim Vectorをコピー。

  9. 「Construction Script」に「Set Veloctity in Local Space」を繋げる。これでProjectileMovementコンポーネントの方向を動的にセットできる。引数にはSpawn Vectorを使用。

f:id:ai_gaminglife:20171019004111p:plain f:id:ai_gaminglife:20171019004123p:plain f:id:ai_gaminglife:20171019004138p:plain f:id:ai_gaminglife:20171019004151p:plain

これで出来たはずです。

振り返り

  • enumは超便利。
  • バクダンはこの方法だと投げ飛ばす感じにならないので今後の修正点。
  • 動きながらしか弾が打てない。

劇場版Fate/HF第一章感想覚書。

 劇場版Fate/Stay Night Heven's Feel 1.presage flowerを初日に鑑賞しました。もうそこらじゅうで言われている通り、期待以上の仕上がり。感動をなんとか言語化したいんですが、この作品に能う感想・考察を書ける自信がないので箇条書きでごまかします。

 以下、映画、原作のネタバレ有り。

序盤30分のサプライズにHFの全てがあった

  • 一切予告になかったほぼオリジナルの約30分の日常パート。これでもうやられた。HFは前2ルートで藤ねえと並んで日常の象徴だった桜が実は聖杯戦争に生まれながらにして関わっている存在だったことが明らかになる「日常の崩壊」が一つのキーワードですが(実際監督も舞台挨拶、パンフで言っていた)その崩壊する日常を贅沢に30分使って書いてくれるとは思わなかった。それも完璧に。

  • 目にハイライトが入っていない桜(中学生)。そしてハイライトが入り我々がよく知ってる桜になってからの健気さ、あざとさ、時折リボンを触って姉のことを思う儚さ。あまりにもかわいい。流石きのこ公認桜研究家監督。

  • 藤ねえが眺めていたアルバム。これまでHollowくらいでしか慎二と士郎の仲の良さは描かれて来なかったけどアルバムと言う形で明らかにしたのはいい表現だった。「あの」慎二君にも純真な時代が合ったのだなあ。

  • 桜「兄さんは嫌いな人が好きなんです」

  • 士郎と小競り合いになる慎二。素直じゃなさ過ぎる。

  • そこまでにしないでもっと出てほしかった藤ねえ。特典ドラマCDではガッツリ出てくるので皆聞こう。

  • 津嘉山さんの演技が凄すぎる。コナンのトマス・シンドラーといいオトナ帝国(しんちゃん)のケンといい津嘉山さんのやる役は皆好き。機会があればFGOでも爺キャラ演じてほしい。

日常の崩壊。聖杯戦争の始まり。

  • 予想はしていたがセイバーとの出会い含め共通ルート部分はOPの裏でダイジェスト。

  • セイバー「UBWの時といいufotableは私と士郎の出会いの描き方が雑じゃないですか?」

  • メインヒロインじゃないし仕方ないね。

  • 外道神父登場。相変わらずの黒幕感。

  • ぐるぐる楽しそうに踊るイリヤ。しかしこれは桜ルートなのだ。

  • バーサーカーUBWの頃と比べても更に進化。鉄の塊感が更に増した。多分第三部だけど泥に飲まれたverのあのバーサーカーとの戦いも期待。

  • 理想をだいて溺死しかける士郎君。

  • 慎二君即オチニコマ。これは悔しい。

  • 美綴の扱いがそこそこ丁寧なライダー。この辺はHollowに続く。

  • 臓硯再登場。虫の表現が進化し過ぎである。

  • 佐々木小次郎、消滅。UBWキャス子に肋骨ぶち開けられた時と違って中身がなく不気味だった。

  • キャス子ハサン先生にブチギレ。

  • 長年謎だったキャスターがやられる時ルールブレイカーを持っていた理由が明らかに。そういえばハサンは佐々木小次郎の中から出てきたんだからまだキャスターとの契約が残っていたんだなあ。自暴自棄になっていたかザバーニーヤの呪いから抜け出そうとしてやったのだとばかり。

超迫力の戦闘。キャラの表情にも感動。

  • 凛が桜を心配する時の顔があまりにもあまり。アニメUBWでも美綴に「笑わないでしょ」と追求されたり#16で凛に異常性を指摘されたときに見せた士郎の表情がアレだけでアニメ化された価値があると言わしめただけあってufoの表情描写には心配していなかったが映画でも問題はなさそう。黒桜と凛のあのCGも期待してます。

  • ランサーvsハサン。多分第一部一番の山場。

  • まさかの高速道路からの戦闘スタート。パンフでこの辺のメイキングは載っていたけどCG技術が凄まじ過ぎる。

  • ランサー無双。あっちから某女性声優の叫び声が聞こえた気がした。

  • ランサーの無駄に姿勢のいい走り。カリオストロ感があった。

  • 矢避けの加護発動。なんで3回以上避けられるんですか!FGOにもその機能ください!

  • 原作通り龍洞寺の池に舞台を移しての戦い。初映像化のザバーニーヤ。ここは原作者の監修で修正が入ったらしい。それに見事応えて見せるufotable

  • 触手に絡め取られる無表情のランサー。女性声優も倒れて運ばれていった。

  • キャスター(死体)。原作と違いここでルールブレイカーを見る士郎。キャスター捨て身の攻撃が流星ロックマンアポロンフレイムのあの技にしか見えなかった。

  • 黒い影初お目見え。士郎が影から呪いの一部を受けた時の画面が恐ろしいのなんの。

  • 桜に叱責されるセイバー。士郎が自分から傷つきにいったのに……

  • ドルビーサウンドで聞ける中田譲治の喘ぎ声(誤解)

  • 泰山店主のビジュアル初公開。なんとなくGUILTY GEARの紗夢ぽかったのでドラマCDに出る時は松嵜麗さんで声を当ててほしい。

  • セイバーvs真アサシン。風除けの加護で風王結界を躱し黒い触手の攻撃をヒットさせる見事な立ち回り。それにしてもここ最近元祖セイバーさんの活躍の舞台がロクにない。

  • 助けにやって来るライダーさん。1vs1だとハサンは弱いのだ。

  • 士郎、黒い影と再びのご対面。この時の無音と雪が不気味さを増長させる。

  • 聖杯を求めるもオルタに止められる元祖セイバー。僕はこれを単純にオルタとバトンタッチだと読んだのですがある方は、あの聖杯は取ったところで願いは叶わないと伝えたかったと取っていました。他に解釈があれば教えてほしい。

  • 真面目に魔術の勉強をする慎二。これでも絶対に報われないのだから救いがなさすぎる。

  • ひとボケかますリーゼリット。変わらない。

  • サンダルに寒そうな白いドレスで帰りを待つ桜あざとい。あざとすぎる。だがそこが可愛い。

 以上。第二章は来年6月までに見られたら良いなぁ。期待して待ちます。

UE4進捗1-1 弾を発射、バクダンを投げる

 先日Unreal Fest'17に参加し、UE4の勉強のモチベが非常に上がったので,以降時間を見つけてはUE4の勉強をしている。まだ極め本をざっと一周した程度の初心者なので大したことは出来ないが、まずはテンプレートをいじってメト○イドっぽい横スクロールアクションを作ろうと思っている。で、自分のモチベ維持の為、アウトプットして後で振り返ることができるように、またこれから勉強する人の力に少しでもなればと、進捗をブログにあげていこうと思う(しかし当分は見るに耐えないような酷い出来のものを上げることになるかと)。

 環境

  • 使用Ver. UE4 4.17.1

  • 使用テンプレート SideScroller

ファイヤボール的なものを正面に打ち出す

f:id:ai_gaminglife:20171013232234p:plain f:id:ai_gaminglife:20171013232231p:plain f:id:ai_gaminglife:20171013232237p:plain

  • 発射時爆発音と爆発エフェクトが発生。(エフェクトはキャラの少し前で発生するようにした)

  • ProjectileMovementを用意して発射できるように。

  • 独自のコリジョンプリセットを用意してEnemyのTagを持つActorとOverlapしたら消滅する。

バクダンを投げる

f:id:ai_gaminglife:20171013232227p:plain f:id:ai_gaminglife:20171013232223p:plain

  • 斜め上に打ち上げる。生成後四秒後に爆発し消滅。打ち上げる方向はProjectileMovementの詳細からVelocityの値をいじって調整。

  • 当たり判定はまだ実装していない。

振り返り

  • 弾の当たり判定が雑。敵キャラのかなり前でデストロイしてしまう(CapsuleCollisionで判定している?)

  • バクダンの当たり判定、爆発までに段々色が変わる、一度に一個しか生成出来ないようにする、飛ばす方向を調整できる機能実装。

  • SideScrollerは左向きから右向きに変わる時一時的に正面を向いてしまうので攻撃が意味のない手前側に飛んでしまう

【ネタバレあり】Fate\Grand Order Epic of Remnant アガルタの女感想

 なんだか久々にメンテ延長なしに新規イベントが配信された気がするがまあ何時もの如く配信直後からぶっ続けでプレイし4時くらいに終わらせた。ちゃんとした考察するにはもう一度くらい読み返す必要がありそうだがとりあえずの感想を書いておく。


 



 以下、ネタバレ&駄文&辛口感想につき注意























 今までとは毛色が違い(露骨過ぎる性的な描写、メインストーリーにカルデアのサーヴァントがガッツリ絡む)新鮮なストーリーではあったが、イマイチ期待はずれだった。主な不満点は以下の通り。

  1. 逆リョナ描写多すぎ

 三大勢力全てが逆リョナ万歳帝国で途中から飽きる。それぞれアプローチが違うとはいえこういう猟奇的な描写はあまり得意じゃないので章を通してやられると気が滅入ってしまった。

  1. ダユー筆頭にサーヴァントの末路が雑

 ダユー初戦はまあ生きてるんだろうナーと気にせずにいられたが、竜宮城での戦闘は流石に雑過ぎるんじゃと感じた。今際の際にドレイクが正気を取り戻したとはいえ別に彼女のガワを借りてまでダユーを出す必要性を感じずどうしてこうなったと消化不良感が強い。

  1. ネットスラングが多すぎる

 多すぎて具体的な例が示せないくらいネットスラングが多かった。いくらこういうのがウケる層に向けて作ってるゲームとはいえこうもやられると……

  1. イベントシナリオ並にぐだの選択肢が頭のネジ外れてる

 最大の不満。イベントシナリオなら許せるが、本筋のシナリオで男の娘に反応したり、マシュにセクハラ発言はしないでほしかった(今更過ぎる気もするが)。フォウくんが美しいものをみたからプライミッツマーダーにならずに済んだーって言ってたけど君の近くにいるぐだーず、フェルグスにゲス発言繰り返してまっせ……


 もちろん雑魚mobのグラフィックが相変わらず優れてたり、カルデアにいる王様だって生前は奴隷使ってたじゃん、俺と何もかわんないじゃーんなんて奴隷にすら無駄な人はいなかったというウルクで一ヶ月生活している主人公たちに向かって、奴隷を十把一絡げのモノの如く扱っていたことを棚上げして開き直っていたド外道コロンブスと良い点もあったが今回のシナリオは自分とは合わなかった。