Gaming Life

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

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は左向きから右向きに変わる時一時的に正面を向いてしまうので攻撃が意味のない手前側に飛んでしまう

大学生が東京-浜松を安く行き来する方法

明日FGO舞台の為に東京行くのに移動手段を色々調べていたら面白いことに気づいたのでメモがてら残す。

目的

金曜出発で浜松から東京を往復する。ただし行きは新幹線を利用するが帰りは遅く新幹線の終電に間に合わない。この時の最も安く済む移動手段。また夜行バスの予約をし忘れ最安(と思われ)のドリーム静岡・浜松号が売り切れている場合

プラン1 夜行バスを利用する

利用する夜行バスはキラキラ号。片道5610円(高い)。

  • 新幹線(学割適用)浜松→東京 :6880円

  • 夜行バス(キラキラ号)東京→浜松 :5610円

合計 12490円

プラン2 ネットカフェに泊まり帰りはのんびり在来で帰る

利用するネットカフェは新宿ポパイのリクライニング席。

  • 新幹線(学割適用)浜松→東京:6880円

  • ネットカフェ:1815円

  • JR(学割適用)東京→浜松:3540円

合計12235円

プラン3 ネットカフェに泊まり帰りは新幹線

プラン2の派生

  • 新幹線(学割適用)浜松→東京:6880円

  • ネットカフェ :1815円

  • 新幹線(学割適用)浜松→東京:6880円

合計15575円

感想

 ネカフェ泊したほうが夜行バスで帰るより安く済むのは予想外。流石に帰りも新幹線を使うと高くつくがそれでも3000円しか変わらなかった。ポパイは神。

 これを参考にする人が現れるとは思えないがネカフェはかなり安く、夜行バスを使うより安く済む場合がある。マンガも読み放題だし、リクライニングシートはお世辞にも綺麗とは言えないが、それは気にしない、少しでも節約したい学生には非常におすすめ。女性はやめとけ。

結論

日帰りの旅行でも計画は早めに立てましょう。

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

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


 



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























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

  1. 逆リョナ描写多すぎ

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

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

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

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

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

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

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


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

<processing>段々線が太くなる螺旋円

 かなり評判のいいジェネラティブアートの本を最近読んでるんですが(リンク下、アフィは貼ってないよ)、めちゃくちゃ面白くて一章ごとになんか作りたくなる。で、Part2を参考にとりあえず一つ作ってみた。

[普及版]ジェネラティブ・アート―Processingによる実践ガイド

[普及版]ジェネラティブ・アート―Processingによる実践ガイド

作品

f:id:ai_gaminglife:20170621224835j:plain

ソースコード

float startx,starty;
float ribbonwidth;
float turn = 8;
float radius;
float x,y;

void setup(){
  size(900,600,P2D);
  smooth();
  frameRate(2);
  background(0);

  startx = 450;
  starty = 300;

  float lastx = -999;
  float lasty = -999;

  radius = 1.5;
  ribbonwidth = 0.25;
  color col = color(random(255),random(255),random(255));
  fill(col);
  stroke(col);
  for(float ang = -180; ang <= turn*360; ang += 5){
    radius += 1;
    float rad = radians(ang);
    x = startx + (radius * cos(rad)) ;
    y = starty + (radius * sin(rad)) ;
    ribbonwidth += 0.04;
    strokeWeight(ribbonwidth);
    if(lastx > -999){
      line (x,y,lastx,lasty);
    }
    lastx = x;
    lasty = y;
  }
  save("hogehoge.jpg");
}

void draw(){
}

解説

 Chapter4「円を書く間違った方法」に載っているものを少し改変。線の色は毎回ランダム。

反省

  • RGB値を完全にランダムに決めているのでブログアップ用の見栄えのいい色が中々出なかった。鮮やかな色が出やすくなるようにしたい。
  • 本当は新体操のリボンみたいなのを作りたかったけどまだ無理。そのうちリベンジってことで

<processing>ゲームのロード画面でよくみるアレを作ってみた

 OpenProcessingで見かけた作品のソースコードを少し改変して作ってみた。大部分が元の作品に近いのであまり自慢できるようなものでもないが、それでもブログで進捗晒すことで整理したい&モチベを保ちたいので晒すことにする。

作品(Gif)

f:id:ai_gaminglife:20170618190126g:plain

ソースコード

import gifAnimation.*;

GifMaker gifExport;

final int NUM = 24;
color c1 = color(191, 255, 0);
int click = 0;
void setup(){
  size(640,640);
  noStroke();
  smooth();
  frameRate(50);

  gifExport = new GifMaker(this, "export.gif");
  gifExport.setRepeat(0);
  gifExport.setQuality(10);
  gifExport.setDelay(20);
}

void draw(){
  background(0);
  translate(width/2, height/2);
  for(int i = 0; i < NUM; i++){
    float angle = i * 2*PI / NUM;
    float v = pow(abs(sin(angle / 2 + frameCount * 0.03)), 4);
    float r = map(v, 0, 1, 10, 20);
    fill(lerpColor(color(0,0,0), c1, v));
    ellipse((150 + r + click) * cos(angle),(150 + r + click) * sin(angle), r * 2, r * 2);
  }
  if(frameCount <= 50*3){
   gifExport.addFrame();
 } else {
   gifExport.finish();
 }
}

void keyPressed(){
  if(key == 'r'){
    c1 = color(255,50,50);
  }else if(key == 'g'){
    c1 = color(0,255,0);
  }else if (key == 'b'){
    c1 = color(0,50,255);
  }else if(key == 'y'){
    c1 = color(191, 255, 0);
  }else if(key == ENTER){
    click += 10;
  }else if(key == BACKSPACE){
    click = 0;
  }
}

解説らしき何か

 ・Enterをクリック->円拡大、BackSpaceで元に戻す
 ・r,g,b,yをクリック->それぞれ赤、緑、青、黄色に変化する

まとめ

 ファミチキたべたい