みつまめ杏仁

アンリアルエンジン(UE4)でGUIを作るためにゴニョゴニョしてます。UIデザイナーの皆様の助けになれば幸いです。

チャットUIを作る

11

 再生してみると、テキストを何度か入力してうちにズレてくる。手で改行を入れる一つ前の入力タイプでは、自然とこの問題を回避できていたのだ。表示バグというやつだ。

 入力方法の違う2タイプを作ったことで、結果的にモックの段階で発見できたのは良かったが、さて、どうやって解決したものか・・・

 フキダシWidgetの高さを返すところで、UIDをセットしている部分をちょこっといじる。

f:id:hiyokosabrey:20191009214754p:plain

適当な文字列を入力して確認してみる。

f:id:hiyokosabrey:20191009214627j:plain

 

 どうやら自動改行が入った場合、何かしらの条件で正しく行数が計測されないということがわかった。間の半角スペースの数を変えたり、文字を変えたり、いろいろ試してみたけど、今一つこれだ、という法則のようなものにたどり着けない。入力のタイミング的なものかもしれないと思い、クリップボードに入れておいた文字列を適当なタイミングで出力してみると、これは必ず同じ値になる。ということはやはり、改行処理にかかる時間か何かが関係している気がする。Get Desired Size のタイミングなのだろうか。

 改行のルールも今一つピンとこない。適当な文字列を入力して試しているときに気づいたのがこれ。

f:id:hiyokosabrey:20191009222920j:plain

 2つ目の入力で aaa a aaa と入力すると短いセンテンスなのに改行された。真ん中の a が冠詞として判断されたのかと思い、アルファベットb~zに変えて入力してみたら、 i j l のアイ、ジェイ、エル については改行されなかった。文字の幅?と思ってたら、m と w でも改行されなかった。まだまだ自分の知識の及ばない世界のラテン文字文化圏のルールか何かがあるのかもしれない。こんな短いセンテンスでも改行されるうえに、サイズ取得がうまくいかないということで、より謎が深まってしまった。

 首をひねっていると、周りで人の動く気配がする。時計を見ると12時だった。もうこんな時間か。結構集中していたようで伸びをして固くなった背中と首をほぐす。よし気分転換しよう。

 

  外に出てみると、気持ちよく晴れていた。澄んだ空の色がさっきのモヤモヤした気分をいっとき忘れさせてくれたけど、すぐに思い出してしまったので、いつもの書店へは向かわず、コンビニに行くことにした。このまま歩いていると会社に戻るのを忘れてしまいそうで、できれば永遠に忘れてしまいたかったけど、早くこのモヤモヤを解消したいという気持ちが、わずかな責任感という協力を得て勝利を収めた。

 コンビニで適当な炭水化物と適当なお茶を入手。適当なルートを歩いていたらいつの間にか自分の椅子に腰掛けていた。対策を考えながらぼんやりと歩いていたので、まったく気分転換できていない気がする。適当に選んだおにぎりを食べながらノードをいじる。

 Auto Wrapping(自動改行)に頼る以上は、この処理が終ってから高さを調べればいいのだけど、それはタイミング的にいつなのか分からない。描画処理が少しでも進めば良さそうだけど、Tick使ってみるか。

 テキストを流し込んだ後の部分で接続を切る。

f:id:hiyokosabrey:20191010004306p:plain

 Force Layout Prepass ノードとTick をつなぐんだけど、1回でいいので、Do Once ノード入れておこう。

f:id:hiyokosabrey:20191010004617p:plain

 これで再生してみる。

f:id:hiyokosabrey:20191010004839j:plain

 ダメか。

 もう少し進めたらうまくいくのかな。ものは試しで、delayノードを入れてみよう。

まずは Duration を 0.0 で。f:id:hiyokosabrey:20191010005222p:plain

 これでどうだ?

f:id:hiyokosabrey:20191010005459j:plain

 お、端数が出てきた。なんか精度が上がった? でもうまくいってるっぽい。

 ちょっとスマートじゃないけどなんとかなったかな。

 

 最初から改行が入っていると問題はないので、このTick処理が負担になるようだったら、入力フォームをあらかじめ3行にしてしまうのが無難だろう。とにかくモックを仕上げて入力のタイプを決めないと。

 

 ちょうど誰かがセットした目覚ましのアラームが昼休みの終了を告げる。

 UIDの表示を戻して、谷山田を呼びに行く。ゲーム系情報サイトを眺めていた彼は声をかけるとすぐに来てくれた。入力タイプの違う2つを順番に再生して触らせる。

 「うん、うん、いいっスね。」

 「ほうほう」

 ひとしきり触ってから、

 「Dに見てもらいましょう。ちょこっと予定聞いてきますね。」

 と言って立ち上がると、鳥囃子ディレクターのところに向かった。そんなに広いフロアではないし、ほとんど人がうろうろしない職場なので、パーテーションより背が高く動く物体は目で追いやすい。

 どうやら席にいないようだ。そのまま彼は自分の席でPCに向かって操作を始めた。恐らく予定管理ソフトで予定を確認しているのだろう。しばらくして再びこちらに戻ってきた。

 「今ミーティングみたいッスね。予定入れておくんで、後でまたお願いします。」

 「分かった。」

 ということで一時解散することになり、谷山田は自席に戻って行った。コーヒーを飲みたくなったので、いつもの自動販売機コーナーへと向かう。エレベーターから降りると人影があった。

 「あぁ、なんとバッタリ!」

 目が会った。立木坂だった。

 「お、おう、おつかれ。」

 いきなりな言葉で咄嗟に切り返すことができず、動揺してしまった。疲れるから妙なタイミングでこちらの意表を突くのをやめていただきたい。

 「おつかれさまです~」

 手に何も持ってないところを見るとまだ買っていないようだ。すると、

 「あ、どうぞどうぞ。」

 少し下がって自販機の前を空けてくれた。ホットかアイスかも決めていなかったので、急に譲られても戸惑ってしまうじゃないか。

 「いやいやまだ決めてないし、お先にどうぞ。」

 と、こちらも譲り返して手振りで促すが、

 「そんなそんな、わたしもまだ決められないんで大丈夫です。」

 と、一度譲ったものは譲らないという固い意思を感じたので、さすがに折れることにする。

 「じゃお言葉に甘えて。」

 と言ったものの、さっきからのやり取りで、何が飲みたかったのかを一瞬忘れてしまい、いくつもある商品ボタンを一通り眺めてから、ようやくブラックしか飲まないのを思い出した。なんだか妙な汗が出てる気がしてアイスコーヒーのボタンを押す。

  カップが出てくるまで時間がかかるやつである。30という数字が点灯。なんとなく気詰まり感を覚えたので、気になってたことを訊いてみる。

 「そういえば、スタンプの話ってうちのプロデューサーから直々に?」

 「あ、そうです。ふらっとやってきて突然、絵描けるよね?って訊かれて、えぇ、まぁ・・・って答えたら、OKって一言を残して去って行ったんですよ。不吉な予感がするなぁって思ってたら、そのあとスグにチームメンバー全員ミーティングルームに召集されて、プロジェクト見直しの話が出て、あぁって。アイツそれを先に知ってて確認しに来たんですよ?間違ってないけどなんかみんなより先に動けるのってズルイ気がしません?」

 一気に吐き出すように返してきた。

 「アイツって・・・まぁ直前のミーティングで決定したその足で声をかけてきただけだろう?チームのディレクターもその場にいただろうし。」

 その手の話をプロデューサーが後から知ることはないだろう。なにしろプロデューサーが決めるんだから。とツッコミたくなったが、そこまで言うのはさすがにくどい気がしたので飲み込む。

 自販機のカウントが0になり、カップを匿っていた扉がぎこちなく開く。奥の紙コップをそっと取り出す。

 「まぁ、とりあえずイラストよろしく。」

 自販機の前を空けると、

 「了解です。頑張ります。」

 と明るい声で答えた。何気なく顔を見て、初めて見る笑顔に、思わずドキリとした。

 「で、決まった?」

 動揺を隠しながら、自販機を指さすと、

 「いえ、いいんです、本当はちょっとネタに詰まって、誰かと話したかっただけなんで。顔が見れてよかったです。戻りますか。」

 「え、あ、うん。」

 なぜか一緒に戻ることになり、エレベーターの矢印ボタンを押してカゴが降りてくるのを待つ。

 「わたしもアンリアルエンジン触ってみようと思うんですけど、いろいろ教えてもらってもいいですか?」

 「いいよ。」

 「家で勉強できたらいいなぁ。家のパソコンで動くかなぁ。」

 「いつ頃買ったか覚えてる?」

 買った年が分かれば、スペックについてはおおよその見当を付けることができる。

 「いつだったかなぁ?うーん。」

 そこで到着音が鳴ってタイムアップ。エレベータの扉が開くと、先に何人か乗っていて、見知った顔もあった。

 

 フロアに戻ると、予定管理ソフトから通知が来ていた。予約者が谷山田で、出席依頼に自分と、鳥囃子、南河原となっていた。場所は空欄になっている。ミーティングルームじゃないということは、おそらくチャット画面のお披露目会で間違いないだろう。集合時間まで、まだ時間があるな。だいぶ氷の溶けたコーヒーを飲む。ときどき唇に当たる氷の粒を感じながら、さっきの立木坂との会話を思い出す。いつものコーヒーと違う味がした。

 

 

 つづく