ゲーム制作まで書くブログ

読まないで><

ここが変だよ!_ブルーリフレクション燦(さん)

BLUE REFLECTION 燦

ブルーリフレクション燦

概要

BLUE REFLECTIONシリーズ大好き人間です。

先日(2023/2/21)に最新作『BLUE REFLECTION 燦(さん)』がPC/スマホ向けにDMMからリリースされた。

bluereflection-sun.com

現状、不具合が多く、バランスもちぐはぐ。

筆者はブルリフと名の付くものを貪り食う厄介オタクだが、正直「いつの時代のゲーム?」となるほど、古臭い詰めの甘さが目立つデキだと感じている。

ブルリフを最初の『BLUE REFLECTION 幻に舞う少女の剣』にとどめず、アニメやコンシューマ向け続編とIP展開をしてくれたことに、開発者含む様々な関係者に敬意と感謝を示しつつ

最新作『BLUE REFLECTION 燦(さん)』の突っ込みどころを列挙していく。

 

なお、わかりやすくただのバグなものは、追求しない。

ブルリフ燦_安住さん



突っ込みどころ

 

UI

全体的に清涼感、清潔感があるデザインで好き。

ブルリフの魅力の一つだと思う。

 

● スクロールとページ捲り、どちらかにしてほしい

最初戸惑ったのが

スクロールとページの概念が同居していること。

 

フラグカードのページを例に挙げると

1ページ20枚のカードが表示され、21枚目からは2ページ目。

ここまでは普通に聞こえるが

この1ページの画面、スクロールしないと半分以上のカードは見切れている。

ブルリフ燦_フラグメントカード一覧

(右にスクロールバーがあり、スクロールすると後半のカードが見える)

(下のボタンを押すとページ送りになる)

スクロールさせたいのかページをめくらせたいのか

どちらかに統一した方がいい。

とても混乱する。

「スクロールしてもさっき獲得したカードが無いぞ?」

 

ページによって表示する種類が違うならまだしも

ただ所持しているカードを一覧表示するのに、二つのページ管理手段を同居させる理由がわからない。

この仕組みは、フラグカードに限らず、リスト表示画面であれば

すべての画面で同じことをしている。

スクロールだけにするか、1ページの内容を制限してページ送りだけにするか

どちらかに絞った方がいい。

 

==========

 

● リストのフィルターやソートボタンが、機能の枠外にある

リスト表示する画面のフィルターやソートの機能自体はいい。

でもそのボタンが、なぜか画面のタブよりも外側にあるため

一見、フィルター・ソートの機能が無い、と感じる

ブルリフ燦_フィルタ・ソート

リスト表示している内容を示すタブよりも外側に置かれると

何をフィルター・ソートするのかわからなくなる。

タブより下に置き、関連する情報はなるべく隣接させた方がよいと思う。

 

==========

 

● アイテム一覧が本当にアイテム一覧

このゲーム内で手に入る様々なリソースがすべて入っている。

本当にすべて、分け隔てなく入っている。

そのため、何が入っているかわからなくなっている。

ブルリフ燦_アイテム一覧

種類別にすべきだったと思うし

百歩譲ってフィルター機能は合ってもよかったと感じる。

 

==========

 

● プレゼントアイコンのキャラが、誰だかわからない

キャラクターたちには、プレゼントを渡すことができ

好みを事前にアイコンから察することができるよう

キャラのデフォルメアイコンがアイテムに表示されている。

ブルリフ燦_プレゼントのアイコン

正直、判別が簡単とは言えない。

アイテムの詳細かどこかに、誰の好みなのか書いておいてもよかったと思う。

 

==========

 

● メニューのボタンのテンションが、すべて一緒

これはスマホ向け運営型タイトルだから感じることなのだが

メニューボタンの大きさや色が、すべて一緒なのは不親切だと思う

ブルリフ燦_クエス

ブルリフ燦_交流

このゲームの売りは美少女だが、それ以上にRPG部分

つまりクエストに多くの時間を費やすことになる。

メニューボタンの真ん中にクエストのボタンが置いてあるが

一見、どこにあるかわからない。

良く押すボタンとしてホームボタンも意識されると思うが

どちらもあまり押さない強化や交流と同じテンションで置かれており

押そうと思った際に毎回探すことになる。

 

些細な労力だし、慣れれば問題ないが

それは遊ぶ側の配慮であり、ゲームの攻略でもなんでもない。

 

もっというとマネタイズ的にガチャのボタンも

まったく同じように並んでいるのは、もったいない。

色を変えるか大きさを変えておくだけでも、ずいぶんと変わると思う。

ゲームとしても、重点を置いている機能を目立たせることができるし。

 

==========

 

● 一部画面からホームに戻れない

ガチャ、石購入、ミッション画面が該当するが

ブルリフ燦_ガチャ

下に置いてあるはずのボタンが消えてしまい、戻れなくなる。

ガチャの画面ではバナーがあるため、メニューのボタンを消しているのだろうが

消す判断ではなく、同居させる判断をすべきだったと感じる。

 

右上のハンバーガーボタン(公式では漢数字の”三”と呼称している)を押しても

メニューのボタンは表示されないため

もう左上の戻るボタン以外に戻る方法がない。

 

ホーム以外の画面に行くにも、ホームを経由する必要が出てくる。

同時に出しても問題のないデザインに変更するか、別の手段を用意した方がいい。

 

==========

 

● フラグカードのスキル強化まわりの仕様

フラグカードという、いわゆる装備品の一種に関しては

言いたいことが2つある。

 

一つは『強化後の効果量がわからないので、強化しづらい』

数字で効果量を表現しているスキルに関しては

素材を注ぐことで得られる恩恵が理解できるが

文字で効果量を表現している場合

強化後のテキストに変化がない。

ブルリフ燦_フラグカード強化

そのため、貴重なリソースを注ぐことをためらってしまう。

 

2つ目は強化素材について。

フラグカードの強化素材はクエストからは手に入らない。

説明では期間限定イベントの交換・シーズンパスなどが例に挙げられている。

しかし、素材から確認できる手段には

『入手可能なクエストはない』と出る。

ブルリフ燦_フラグカード強化素材入手先

素材リストからは、この表示にしかたどり着けないため、

手に入れる方法は無い、と言われているのと同じ。

ここにもヘルプの内容と同じことを書いておけばよいのでは?

もっと言うと、交換所へのボタンなどを置くこともできたと思う。

今後、手に入る場所が増えたなら、その都度対応すればいい。

 

とにかく、今の「無いよ」というだけの画面は

誤解を生むだけ。

 

==========

 

● PC版は画面の大きさが変えられない

これは不具合にも思えるが、画面に関する設定項目が無かったため

公式としては変更する機能をそもそも用意していないと考えた。

大きさも変えられなければ、比率も変えることができない

あらかじめ用意した画面サイズから選ぶ、でもよいので用意すべきと感じた。

ブルリフ燦_画面比率用タイトル

筆者のメインモニタは21:9のウルトラワイドなのだが

ブルリフ燦はメインモニタの比率に引っ張られて固定される。

人によっては16:9だったり31:9の場合もあると思う。

想定していない比率でプレイされて困るのは運営開発側だと思うのだが・・・

 

==========

 

● スキル付け替え時に、比較ができない

キャラクターにフラグカードを持たせることで

キャラクターの属性とは違う技をバトルに持ち込める。

またフラグカードをつけることでステータスにもボーナスが入る。

この仕組み自体は良い。

ただ、付け替える際に、何のスキルから、どのスキルに変わるのかを見せてほしかった

ブルリフ燦_フラグカード付け替え画面

ブルリフ燦_付け替え時に比較ボタンを押した場合

確認するためには、変えたいカードを選んで、さらに比較なりスキルなりのボタンから内容を見る必要がある。

アイコンで技の種類はなんとなくわかるが、それは慣れればの話。

既に言ったが、プレイヤーの慣れに期待するのはよくない。直感でわからないと以降、意味のない情報になってしまう。

スキルに重点があるこの画面で、スキルの比較を一階層深いところに置くのは

避けた方がいい。

せめて、ステータス表示領域にスクロールさせてでもスキルの領域を置くか、タブで分けるなどして、カードを選択するだけで比較できる場所が欲しい。

ブルリフ燦ではなく、そもそもゲームに慣れた人は何も感じないだろうが

そこまで慣れていない人にとっては、気づくのも大変だし

戦力の改善のためにこの画面を見たときに、選択肢としてスキルの種類を変える

という発想への導線を阻害していることになる。

長く続けていく、遊んでもらうゲームとして、配慮してもいい画面だと思う。

 

==========

==========

 

レベルデザイン

ゲームには4種類の属性(無属性含めると5属性)あり

それぞれに有利不利の関係がある。

 

与えるダメージ、受けるダメージに影響するので

考慮すれば、少し強い敵にも勝つことができる。

オーソドックスな仕組み。

 

また、ゲームを進行するうえで、プレイヤーのレベルや

キャラクターごとの好感度、ステータスなど

様々な数字を上げていくことで

攻略していくことになる。

 

フラグカードやココログラムなどの戦術要素は

オーソドックスだからこそわかりやすいので、問題はない。

属性を考慮することで、戦力が足りなくても乗り越えられる分にも文句はない。

 

ただ、外側の作りに関しては、正直想定が甘すぎると感じる。

 

● シーズンパスの寿命が短すぎる

レベルは100まであり、2か月ごとにリセットされるシーズンパスが存在するが

筆者は先日レベル100に到達してしまった。

ブルリフ燦_シーズンパス

残り65日(画像は今日撮影したもの)、このシーズンパスは目標としては役に立たなくなった。

さらに、このシーズンパスを進行させるために必要なポイントも

筆者にとっては無価値になった。

シーズンパスの設計、ポイントの活用法について

考え直してもらいたい・・・

 

==========

 

● キャラクターのレアリティとレベルの差

★1はレベルの上限が40

★2の上限は80

★3の上限は120

キャラクターは最大★5になるので、最大のレベル上限は

200になると思われる。

また、すべてのキャラクターが最大まで限界突破できる仕組みになっているため

地道に遊んでいれば、ガチャなど引かずに、手持ちのキャラクターを最大強化可能になっている。

ただ、その道のりはひどく険しい。

ブルリフ燦_安住01

ブルリフ燦_★1安住

ブルリフ燦_★2安住(ココログラム含むので50~100引くとも元のステータス)

レベル上限がそのままステータスの頭打ちになるので

レベル40では、当然貢献できるクエストが限られる。

強い言葉を使うが、使い物にならない。

 

キャラクターよりもフラグカードによるスキル攻撃やステータスがモノを言うデザインとはいえ

その入れ物であるキャラクターが貧弱では、結局先に進めず、そのキャラクターを使い物になるまで限界突破させるに至ることができない。

 

もちろん、ガチャを引いてキャラクターを手に入れたり、強いフラグカードを手に入れたほうが、ゲームをスムーズに進めることができるのは

何の問題もない。払っただけ得をするのは普通のこと。

また、このゲームはキャラクターを口説き続けると★2のキャラクターを手に入れられるので、

筆者のように「ウタちゃんくるまでガチャ引かない」という夢見がちな人の攻略の一助にはなる。

★1を★2にするにも、クエストを通さなくても素材は手に入る。

 

ただレベル40毎という区切りは、もう少しなだらかでもよかった気がする・・・

40と80では差が大きすぎる。

 

==========

 

● フレンドポイントが能動的に集められない

このゲームにもソーシャル要素として、フレンドからのキャラクターレンタルがある。

正確にはキャラクターのスキルをレンタルすることができる。

レンタルすることで、『相手に』フレンドポイントが送られる。

この時、自分には何も入ってこない

つまり、自分がフレンドポイントによる交換などを行うためには

強いキャラクターをサポート枠として置いておき

多くの人に使ってもらう必要がある。

ブルリフ燦_フレンドポイント交換所

ブルリフ燦_優秀なフラグカードたち

このポイントで交換できるモノは、正直かなりゲームバランスに影響する。

だのに、ポイントの獲得は、一部の強者に集中してしまい

能動的に集める方法は無いので

一部の強者がひたすらポイントを獲得し、いずれ必要なくなる。

それ以外の人は、永遠に恩恵を受けられないまま

攻略も楽にならない。

 

使うだけでも、自分にもポイントが入ってよかったと思う。

借りたところで、1回しか使えないスキルしか恩恵はないのだから。

交換レートなどでバランスをとるようにするなど工夫の余地はあったと思う。

 

今のままだと、たとえ強いキャラクターを持っていたとしても

いつ溜まるのかまったく読めない、他人次第では一生恩恵を受けられない。

 

==========

 

● キャラが少ない

キャラクターごとに衣装違いでレアリティが異なる。

8人のキャラクターに対して、それぞれ★1~3の3種類。

ブルリフ燦_ヒロイン一覧(かわいい)

計24種類。

イベントが開催され追加されたキャラクターや、施策で存在するキャラクターもいるが

いくらなんでも少なすぎだと思う。

その弊害が、次の項目に出ている。

 

==========

 

● キャラクターのシナリオに報酬が何もない

ブルリフ燦では、メインのシナリオ以外、特に報酬は何も設定されていない。

そのため、ほとんど価値が見いだせない機能になっている。

ブルリフ燦_フラグカードのシナリオ

キャラクターの好感度、お出かけ先、フラグカードなど

それぞれ短いながらも、魅力的なシナリオが詰まっているので

読むことは読む。貪るように読む。好き。

 

ただそれだけで時間が消費されているのは気になる。

その先、読んだことでゲームが有利にならないのは

サイクルがそこで切れてしまっている、ということなので

ゲームの攻略としては行き止まりであり、踏む意味があまりない、となる。

なんでもいいので、何か報酬を置いておくべきだと思う。

 

==========

 

● イベントの難易度

リリース後、初のイベント。

多くの人はメインのクエストを攻略したいだろうから、という配慮なのか

とんでもなく内容が少ない。

期間も2週間ほどあるにもかかわらず。

ブルリフ燦_イベント交換画面

ブルリフ燦_イベントミッション

1日ですべてのクエストのクリア、シナリオの読了、交換品やミッションの完了が可能。

シナリオも全部合わせても10分もなかったと思う。(シナリオ自体は好き)

 

==========

 

● パーティ編成枠が5枠しかない

このゲームには属性が4種類(無属性も含めれば5種類)となっている。

パーティの編成枠、記憶して置ける枠は5つ分しかない。

対して、エストの敵の編成はさまざまであり、正直5枠では足りない。

繰り返し出てくる編成に対して、フラグメントカードの構成を変えたり

また周回のために残しておきたい、などの期待値がある。

ゲームの仕組みとしては普通に楽しい編成要素に対して

なぜ5枠しかないのか・・・?

 

==========

==========

 

施策

シーズンパスをはじめ、ゲームを継続するモチベーションのための施策がいくつかある。

ユーザーのために工夫を用意するのは良いのだが

ほとんど空回りしている。

 

● エストクリア後に買える記念パックが時限

caseで区切られているメインのシナリオを読了すると

ショップにクリア記念のパックが出現する。

10連ガチャ分の値段でガチャチケっとに加えて素材が買える。

ブルリフ燦_CASE02クリア記念のパック(CASE01のものは消えてしまった)

ただ、なぜか24時間の時間制限がついている。

クリア後24時間以内に買わないといけない理由がわからない。

中身自体には時限はないが、購入するタイミングを強いる意図がわからない。

クリアしたかどうかはユーザーの進捗なのだから

いつ買ってもいいような気がする。。。

 

==========

 

● PU対象確定チケットガチャ

イベントで追加されたキャラクターとフラグカードだけが出現するガチャを

引くことができるチケット。

イベントで追加されたので、開催中のイベントで特効がある。

追加されたのは

・最高レアリティのキャラクター2体

・最高レアリティのフラグカード1枚

・その下のレアリティのフラグカード1枚

この中の1つを、当分の確率で獲得できるのか? と思うだろうが、実は違う。

 

レアリティごとの排出率はそのままに、単発のガチャを引くのと同じことを行う。

97%の確率で、SRの新規フラグカードが出てくるガチャ。

実質SR交換チケットでは?

逆に最高レアリティの方が出てくる方が外れに見えてくる。。。

 

==========

 

● 育成ブーストのチグハグな内容

育成関係のブーストを得られる有料チケット。

有効期限は30日で、その間、継続して恩恵を受けられる。

ブルリフ燦_育成ブースト

3種類の恩恵があるが、突っ込みどころ満載なので1つずつ見ていく。

 

・強化クエストの報酬が2倍

そもそも強化クエストは1日3回までで、リターンも少ない。

課金する割に、あまり大きな恩恵とは思えない。

 

・レッスンエネルギー増加量2倍、上限も2倍

アイテムを使うことで、いわゆる放置育成ができる。

その機能の恩恵を拡充させるブースト効果、なのだろうが

30日という時間制約を課しているのに

ただレッスン用のアイテム消費量を1/4に抑えるだけ。

得られるものの数は変わらない。

 

・ハードの挑戦回数をプラス10回

一番魅力的な内容。

メインのクエストのうち、キャラクターのピースなど一部素材は

ハードのクエスからしか得られず、ブーストしなければ

1日合計10回までしか周回できない。

自分のように、手持ちのキャラクターをなんとか育成して戦力を整えたい場合

とてもありがたい。

 

ただ、他二つのブースト効果があんまりなので

商品としては魅力がない。

 

==========

 

● ヘルプの内容が薄い

PC版ではブラウザで閲覧できる。スマホアプリの場合はアプリ内で閲覧となる。

シリーズやゲーム内の用語解説が併設されていて

一見、充実しているように見えるが

肝心なことは書いていない。

ブルリフ燦_ヘルプ(フレンドの仕様はフレンドポイント交換のところに書いてある)

先述したフレンドポイントの仕組みも、検証したからわかったことで

ヘルプには「もらえる」としか書いていない。

属性の仕様、交流の仕様など

攻略にかかわることは書けないにしても

仕組みに関することはもう少し書いておいてほしかった。

 

==========

==========

 

終わりに

最初にも書いたが、筆者はブルリフが出る前からブルリフが大好きでした。

その魅力を、こうして引き継いでゲームとして展開してくれることをうれしく思っている。

 

だから、この記事の目的は、ゲームの出来の悪さを広く伝えることではなく

このゲームのファンがいることを知ってもらいたい、というところにある。

 

スキだからと言って、ここまで書いたゲームの突っ込みどころに目をつむることはできないし

妄信することは好きとは言わない。

だから書いた。

無視できないし、できれば改善され、今後の運用で、しっかりとゆっくりでもいいからブルリフを続けてほしい。

 

そもそも、自分にとっての突っ込みどころで、世間や開発とは認識がずれてるかもしれない。

 

これを誰が目にしても、何を言おうと何を思おうと自由だが、

筆者の意図は、ゲームが発展して、ファンが増えて、とにかくブルリフがこれからも連綿と続いていってくれることを祈る、それだけ。

UE5つらい

使いづらい

 

ボタンがとにかくシンプルで、ビューなど作業台が広くなった

 

それはいい

 

コンソールコマンドの呼び出しが@じゃなく^になったり

ブループリント呼び出しで、インプットイベントのWを探すときに

前はWと入れればまあ出てきたのに、今は何を入れても出てこず、結局自分でインプットからキーボードから、とか探さないといけない

 

見えないところで改善され進化したのかもしれないが

触り心地がとても悪い

 

いまのところわ

UE4_ビルドエラー

UstructProperty

みたいなエラーが出てビルドできなかった

 

なんでや!

 

結論

構造体更新したから

 

 

自分が更新した構造体はinstanceに置いて

いろんなところで使ってるから

検索して片っ端から更新してきた。

 

でも直らなかった。

 

なんてや!

 

わからんかったけど

 

自分は構造体を内包する変数をinstanceに2つ用意して

んで、構造体の中身が変わるたびに

その構造体を使ってるBPで変数をつけかえつつ

ビルドした。

 

そうすると通った。

 

そもそもの解決策の一つとして

構造体を作り直す、という方法があるので

これはその疑似再現に近い。

 

ただ、構造体を作り直すったって

一個一個またちびちび入れ込んでたら

時間がかかりすぎる。

 

そこで

instanceに独自の構造体変数を用意し

その外側にまた独自構造体を作成する。

ブループリント>構造体 で作るやつ

 

instanceの中にある構造体は2つ用意する

1とか2とかつけて差別化し

その両方で、さっき作った構造体を指定する。

 

んで、その構造体を使うBPでは

instanceから、用意した構造体変数を2つ置いておいてやる

 

中身を更新するたびに、1から2へ、2から1へ

と交換してやれば

いちいち中身を入れなおす必要はない。

 

自分の場合は、一つ一つが外部の人から提出されるもので

届くタイミングもまちまちだったので

そのタイミングを挟んだビルドだとこの問題が起こった。

ちょこちょこビルドするし困ってた。

 

お守りというかお祈りで一応ノードを更新しているが

今のところ問題はない。

 

沖田さん大勝利。

 

ていうメモ。

UE4_ウィジェットで2ページあるときに、ボタンのフォーカスを切り替える方法(コントローラーでもマウスでも)

しっかり書くつもりはない。

需要があるか不明だから・・・

 

コントローラーでもキーボードでもマウスでも

ウィジェットで配置したボタンを操作させる機能を実装したが

 

ウィジェットの中に2ページ作って

1枚目、2枚目と交互に表示できるようボタンを配置した場合

フォーカスを切り替えなければならない。

 

自分の場合は、1ページ目は「次へ」のボタンだけだからいいけど

2ページ目は「戻る」「閉じる」の2つもあるから、さあたいへん。

 

フォーカスの処理は、ウィジェットのイベントグラフに記載するが

Tickで何度もフォーカスさせる必要がある(フォーカス無くなると行方不明になるから)

 

まず、ボタンの押下時に、ブーリアン変数で

そこが1ページ目かどうかを格納させる。

IsFirstPage、とかいうブーリアン

「次へ」のボタン処理でFalseにして

「戻る」ボタンでTrueに戻す。

 

Tickにブランチをつないで

そこが1ページ目なら「次へ」のボタンだけフォーカスさせる

2ページ目なら、DoOnceとボタンのフォーカス処理をつなぐ。

 

ただ、このままだと、どっちにフォーカスされているのか

見た目でわからない。

 

そこで、両方のボタンのオパシティを落として

選ばれている場合は1.0にする処理をつなぐ。

 

 

こんな感じ

f:id:NeToSuKe:20201124002402p:plain

ForEachLoopで巡回してもらう形にしてる。

 

DoOnceと2ページ目のボタンフォーカス処理は、

このぐちゃぐちゃの処理の、すべての終わりからつながっている必要がある。

 

ブランチのFalseで分岐しているところも、全部。

 

そしてDoOnceは1ページ目に戻ったらリセットされないといけないので

1ページ目かどうかを判断したTickの最初のブランチで

1ページ目のフォーカス処理のあとから、パルスがリセットに流れるようにする。

 

これで、1ページ目の時は「次へ」のみフォーカスされ

2ページ目に行ったら「戻る」「閉じる」のボタンを

コントローラー、マウス、キーボードで選択することができるようになる。

 

 

ちびちびしたブラッシュアップばかりで

派手な開発はできていないが

こうして一つずつできることを増やしていくのもいいものだなぁ・・・

UE4_複数の画像を配列にぶちこんで、連続でゆっくり表示させるウィジェット

アンダーテイルのプロローグとか、インディのゲームでよくある

紙芝居みたいなのをUE4ウィジェットで再現する。

 

For each loopでやればいいのかなと思ったがうまくいかなかった。

ので

無理やり再現する方法となる。

 

1.ウィジェットを作成

名前はなんでもいい

 

2.イメージを放り込む(バインドして関数を作っておく)

パレットの一般から、ImageをCanvasPanelの下に置く

f:id:NeToSuKe:20201122184919p:plain

f:id:NeToSuKe:20201122185112p:plain

Imageの詳細のここを押すと、表示する画像をブループリントで制御できる関数を作ってくれる。

画像ではもう作っちゃったあとだからボタンの表示が違うけど「バインド」とか書いてある。

 

3.アニメーションを作成(フェードインとフェードアウト)f:id:NeToSuKe:20201122184951p:plain

イメージのトラックを追加して、RenderOpacityを追加

好きなようにアニメーションを作る。

0.0だと透明。1.0だと不透明。

好きな数字のところにピンを置くと、間は勝手にアニメーションする。

 

4.Constructにカスタムイベントをつなぐ(構造体を作成するイベント)

f:id:NeToSuKe:20201122185027p:plain

画像はあとからどんどん増やす(減らす)かもしれないので

見やすいところで作業するためにカスタムイベントで逃がす。

 

5.構造体の変数を用意(画像入れる用)

f:id:NeToSuKe:20201122185225p:plain

こんな感じ

 

6.MakeArrayでテクスチャを構造体にする

f:id:NeToSuKe:20201122185241p:plain

こんな感じ

 

7.用意した構造体の変数にセット

f:id:NeToSuKe:20201122185256p:plain

Altを押しながら変数から構造体変数をドラッグアンドドロップ

そのままイベントグラフに落としても、選ばせてくれるのでできる。

 

8.イメージの関数にMakeBrushFromTextureをReturnValueつなぐ(サイズは0)

急にここからImageのバインドで作成した関数のイベントグラフに飛ぶ

f:id:NeToSuKe:20201122185318p:plain

こんな感じ

 

9.構造体の変数からGET(参照)、IntにInt型の変数を作成してつなぐ

f:id:NeToSuKe:20201122185357p:plain

こんな感じ

 

10.DoOnceをイベントTickにつなぐ

f:id:NeToSuKe:20201122185411p:plain

こんな感じ

これで1回だけ処理をしてくれるようになる。

あとでリセットさせて何回も処理はさせるんだけど

そのタイミングをこっちでいじれるようになる。

 

11.ブランチをつなぐ

f:id:NeToSuKe:20201122185446p:plain

こんな感じ

 

12.構造体の変数からLastIndexで最大値をとってくる

f:id:NeToSuKe:20201122185505p:plain

こんな感じ(めんどくさくなってきた)

 

13.作ったInt型の変数と<=でくらべる(変数が構造体の数より多くなったらFALSE)

f:id:NeToSuKe:20201122185531p:plain

こんな感じ

1枚目の処理が終わったときに、Int型の変数をどんどんプラスしていって

構造体にぶちこんだ画像の数よりも多くなったら終わり、という流れにする。

 

14.FI/FOのアニメーションをつなぐ

f:id:NeToSuKe:20201122185549p:plain

こんな感じ

アニメーションは変数の上の方にAnimationsってまとめたる(▶押すと開く)

 

15.Delayをつなげて、アニメーション終了まで処理を待たせる

f:id:NeToSuKe:20201122185608p:plain

アニメーションの変数からピンを伸ばしてGetEndTimeをつなげる

DelayのピンにReturnValueをつなげると

アニメーションの長さ分、以降の処理を遅らせる。

これで、アニメーション微調整しても

いちいち数字をここに入力しに来なくてもいい。

 

16.Int型の変数に+1してセットする

f:id:NeToSuKe:20201122185625p:plain

こんな感じ

Tickにつないでいるので、この処理は何度も呼ばれる。

その時に、呼び出す画像を次のものに移すため、変数を増やしておく。

画像の関数に作成したものは、

どの構造体から、何番目の画像を取り出す、というものなので

その何番目を管理する変数をいじれば

繰り返しの処理でも画像を変えることができる。

 

17.最後のセットから、最初のDoOnceのResetにピンをつなぐ

f:id:NeToSuKe:20201122185646p:plain

f:id:NeToSuKe:20201122185908p:plain

これでTickから処理が流れてきても

画像を差し替える処理が終わるまで、次の画像を見せるアニメーションは流れないし

終われば、もう一度処理を流すことができる。

 

18.最後に、ブランチのFalseに紙芝居後の処理をつなぐ

f:id:NeToSuKe:20201122185723p:plain

画像の枚数分(構造体にぶちこんだ枚数)処理が終わったら

ブランチからFalseに流れる。

自分はスタート画面に行くようにOpenLevelをつないだ。

テスト中はPrintStringをつないで、終わったら文字が出るようにして確認した。

 

 

 

 

おまけ

初回だけ起動後すぐに表示されてかっこ悪いけど、空白を増やすとテンポが悪い

初回だけ空白のあるアニメーションを用意することで、急にパッと表示されるのを防ぐ

ブランチの後にもう一個ブランチを作って、Int変数の中身が0なら初回だから

Trueから初回だけ使いたいアニメーションにつなげておく

f:id:NeToSuKe:20201122185741p:plain

 

画像のスキップ、紙芝居のスキップ

画像の表示をスキップしたり、紙芝居そのものをスキップさせるには

ボタンの押下をイベントディスパッチャーで受け取って

そのイベントから、全部終わったとき(Int変数と構造体最大数を比べているブランチのFalse)の処理に直接つなげてやる

 

1.ゲームインスタンスにディスパッチャーを用意

f:id:NeToSuKe:20201122185809p:plain

ボタンの押下をイベントとして受け取って、ウィジェットのイベントグラフに飛ばすため

インスタンスの中にイベントディスパッチャーを作成する。

ゲームインスタンスが無い人は作る。

さすがにゲームインスタンスに関しては説明を省く。

 

2.レベルブループリントにボタンを押すとイベントが飛ぶ処理を作る

f:id:NeToSuKe:20201122185827p:plain

自分はAボタンとハンバーガーボタン(右のスタートボタン)のイベントを飛ばした。

ゲームインスタンスに作ったので、変数を呼び出す感覚で呼び出せる。

つなぐのは「呼び出し」

 

3.ウィジェットに戻って、イベントTickにイベントをバインドノードでつなぐ

f:id:NeToSuKe:20201122185842p:plain

ここでもゲームインスタンスから呼び出しでつなぐ。

つなぐのは「イベントをバインド」

赤い四角につなぐためにカスタムイベントを作ってつなぐと

「ボタンを押したらこのカスタムイベントを処理」となる。

念のため言っておくと

この処理はこのウィジェットを表示している時しか機能しないので

ゲーム中どこでもこのカスタムイベントが呼び出されるわけじゃない。

 

4.画像の表示をスキップ

f:id:NeToSuKe:20201122185900p:plain

f:id:NeToSuKe:20201122185908p:plain


1枚の表示をスキップするカスタムイベントをこんな感じでつなぐ

このカスタムイベントはInt変数のセットにつなぐ。

これで、表示中の画像をスキップして、次の画像の表示をする

という流れになる。

 

5.全部スキップ

f:id:NeToSuKe:20201122185948p:plain

f:id:NeToSuKe:20201122185723p:plain
同じようにカスタムイベントを作成し

最初のブランチのFalseにつなげた処理に直接つなぐ。

これでアニメーションも画像も全部スキップする。

 

 

おわり

小さな開発ばかりやって達成感を味わっているせいで

そもそも何を作りたかったのか忘れた。

 

企画書から仕様書を作らないと話が進まない・・・

UE4_ウィジェットで用意した文章をランダムで表示する機能

くsssssssssssssssssssssssssssssssっそ簡単

 

世にいるクリエイターはたぶんみんな「その程度のことで記事を書くんですか?」

と思われるだろう。

 

うるさい。

自分で開発した機能をひけらかしたくなるのが普通でしょう!

 

f:id:NeToSuKe:20201111180902p:plain

この「Now Loadin」の部分

点はThrobberというウィジェットのプリミティブが入ってるだけ

画像だと映ってないな・・・

文字の後を「…」この点が明滅してアニメーションしてくれる面白いやつ。

点を別の形や画像にしたり、数を増やしたりできるのでおすすめ。

 

じゃなくて

 

この文字を、あらかじめ用意した文字列からランダムで

しかもこのウィジェットを表示中に切り替えられる機能

切り替えは今のところ自動。

 

まず答えを張る

f:id:NeToSuKe:20201111181139p:plain

これをウィジェットのイベントグラフに作る。

これ以外にもテキストバインドしないといけない。

 

 ウィジェットのテキストをバインド

 ウィジェットのキャンバスにテキストを追加したら、

左の詳細からコンテンツ>Text で右のバインドをポチってやって作成する

ようするに、外からの要因で中身を作りますよっていう機能

f:id:NeToSuKe:20201111184931p:plain

 

変数作成

 テキストのバインドを作成すると

Get~~(Textウィジェットの名前)がリターンノードにつながってるグラフが出てくる。

ここにテキストの変数を作ってゲットしてつなげておく。

LoadingTextっていうのを作ってつなげた。

f:id:NeToSuKe:20201111185347p:plain

 

ウィジェットのイベントグラフで作業

イベントグラフのTickを使うます

●表示する文字列を用意

配列を作成で文字を書き込む

色(形式)はそのうち変わるので放置

画像ではすでにテキスト型になっておるがな

f:id:NeToSuKe:20201111191355p:plain

 

●それをGET(コピー)

配列とindexから、要素を抜き出すGETをつなぐ

このとき、参照とコピーの二つが出てきて

一見、何が違うねんってノードの見た目になるけど

参照は、その要素をごにょごにょして違うものにして

配列に戻す場合

今回はいじらないで、入ってるものをただ見せるだけなので

コピー

f:id:NeToSuKe:20201111191454p:plain

 

●ランダムで選んでもらう

f:id:NeToSuKe:20201111191802p:plain

今回はこのノードを使ってランダムにした

なんかいろいろあるけど

0~5の6個から選ぶので、これで十分。

こいつは数字を返してくれるだけなので

さっきのGETと組み合わせて使う。

 

●Tickにつなぐ(荒ぶる)

やらなくていい

ただ、このままだと、瞬間的に選び続けるので

テキストが荒ぶる

て言いたかっただけ

 

Do Onceをつないで、何秒で変わるか設定

f:id:NeToSuKe:20201111192219p:plain

そこで、DoOnceを使う。

その処理の最後にDelayをいれてやると

Delay含めたDoOnceの後の処理が終わるまで

繰り返さないくなる。

マジ便利。

あとは、処理の最後から、DoOnceのResetにピンをつないで

また処理をしてくれるようにする。

 

Delayを1秒にしたから

1秒ごとに文字が変わる。

 

 

これで完了。

 

たったこれだけなので

ただ文字が1秒おきにパッパッと変わるだけだが

やりようによってはいくらでも見栄えをよくできる。

 

 

すごく基本的な機能だけで、やりたいことが実現できたので

テンション上がってここに書き込んだ。

日記_blenderとUE4進捗

f:id:NeToSuKe:20201107190421g:plain

3Dのデータっていっぱい種類があって

FBX、VRM、PMX

ほかにもあるらしい

 

もうどれかに統一しません・・・?

 

したところで結局骨の数や向きで互換性がないから意味ないけど

なんだったら、それなら同じファイル形式でも互換なんかないけど

 

もうやめません・・・?

 

やはり自分で手を入れられるデータis最強なわけです。

 

今日はblenderでキャラのアイドルモーションと走りモーションを作成。

めちゃ適当に作ったけどまあよし。

 

UE4ではスクロールするウィジェットをギャラリーとして本格的に実装。

ゲームのタイトルから遷移できるようになったし

最高獲得数をセーブデータに更新しつつ格納する機能も作ったので

まだ見れないものはロックされるようになった。

ウィジェットの操作の都合上、レベルをまたいでしまうが

ゲームインスタンスの数字というかセーブデータを見てるので

問題ない。

さらに、ゲーム中に獲得した際に表示されるアチーブが

もう一度始めたとき、また出てしまうので

これもレコードを参照して、一回見た(であろう)ものは

アチーブの演出が流れないようにした。

 

細かい実装ばかりだったけどかなり変わった。

 

いつもエンジニアさんに軽い気持ちで依頼していたけど

今後はもっと誠心誠意お願いしようって思った。

 

朝から買い出しいって、洗濯して、そのあとずっとPCのまえにいたので

どっか散歩にでも行きたい気分。