Twitterだと書ききれない、ブログだとボリュームが少なめの内容で書き散らしました。内容は適当なのはご容赦いただけますと幸いです。
ここ最近風邪っぽくて
いつもと同じものを食べてるのに、あれ?こんな味だったっけ? と、ちょっとした味覚の変化にびくびくしながら過ごしています。 新型コロナじゃない普通の風邪?従来の風邪?だったとしても、大変不安な気持ちになるので早く免疫をゲットしたいですね。昔だったら誰かの祟りとか怨霊の仕業で必死に鎮めようとしただろうな。陰陽師という職業が今も続いていたら、この疫病の原因はなんと答えるのだろうか。などと資料を読みながらいろいろ妄想しています。
最近『原神』始めました
おすすめポイントはどこかと聞かれれば、景色が綺麗なのとキャラがかわいいのと、あとはそれくらいだったりするのですが、ブログの記事を書かなきゃと思いつつも原神始めてしまうくらいのおすすめ感です。で、コントローラ操作で遊んでいるのですが、ボタン操作のナビ表示をしっかり見てから操作しないと意図しない結果になるので、かなり学習コストが高い印象です。慣れの問題でしょうけど 日系プレステ操作の 〇決定 ×キャンセル のボタン配置がそのまま XInput系ゲームパッドで、B決定 Aキャンセルなのが辛い。
ゲーム中のナビ表示に従ってきた経験で決定やキャンセルをボタンの場所だけでなく文脈(でいいのかな?)で体得しているのを改めて実感。
Nintendo Switch版 はまだリリースされてないけど XInputと逆なので、たぶん今の仕様でも問題なさそう。
先日公開されたPS5 の仕様も考えると、マルチプラットフォームや縦マルチ対応でこの辺りを開発される現場の方々の苦労を想像するといろいろこみ上がるものを感じます。
『原神』を遊んでいて気になるのは、UIの操作ナビ表示に頼りすぎててボタンの役割をうまく設計できていないところ。細かい話になるのでこの辺はまた別の機会に譲るとして、ゲームパッドにやさしい作りになってない印象を受けてしまうんだけど、今後どこかのタイミングで対応が入るのかな。
UMGでヒット&ブローを作ってみた
作ったといってもNintendo Switchのアソビ大全に収録されているゲームをUE4で再現しただけです。マスターマインドっていうかなり古いボードゲームがあったよな~となんとなく記憶の隅にあった程度で、いざ遊んでみるとこれが結構面白い。ルールはシンプル。隠された4つの色と順番を当てるだけ。CPUの思考とかもいらないし、ほぼほぼUIだけじゃん、て甘く考えてUMGで作ってみたわけです。できたのはこんなやつ。
あとでブログの記事か、UIプロトタイプの教材にできないかな~と考えながら作ったので、あえて仮素材感バリバリです。
Widgetの切り分けとカーソル制御、判定部分で悩みましたが、なんとか遊べるとこまでできました。記事読みたい人いるかな?
このゲームは基本的にゲームパッド操作に向いていません。それをちゃんと遊べるようにしているのがさすがNintendo。そこに感心したのが今回作ろう思ったきっかけでもあります。とはいえ問題点がまったくないわけではなく、Joy-Conで遊ぶ時アナログスティック操作で動かしたくないほうのカーソルを動かしてしまい慌ててしまうこと。
UIの仕様はだいたい以下のとおり
- 移動方向の違うカーソルが同時に2つ存在する
- 中央縦に並んだ4つの穴すべてに、画面下の横に並んだ6つの選択肢から選んでセットする
- 4つ埋まると判定可能になり、OKボタンが出現
- 判定結果をテキストと4本のピンで知らせる
- 左端から順番に判定していく
- タップ操作も対応(今回の検証では無視)
で、作っていて気づいたことがあって、
一つセットすると、カーソルが次の穴に移動するかしないか。というもの。
ただ遊ぶだけだったらきっと気づけなかったと思う。
本家では自動で次の穴にカーソルが移動します。
文字入力の際にキャレットが移動するのと同じ感覚。
ところが自分で一から作っているものですから、ちょっとずつ作りながらテストします。まずは自動でカーソルが移動しない状態ができたので、遊んでみたところものすごく遊びにくいことに気づいたのです。
おそらく原因は、カーソルが2つあって独立して操作しなければいけないところ。
気持ちは次の穴に向かっているのに、カーソルは動かない。次の色も選ばなくちゃいけない。これがそこそこ気ぜわしくなって、操作の順番がおかしくなることがしょっちゅう起こりました。バグ取りしつつ何度か試すけど頭が慣れてくれない。で、ようやくインクリメント(でよかったかな?)処理を入れたら、なんということでしょう!とりあえず4つすべて埋まるまでは色を選ぶことに集中できて快適になりました。
こういうのは、デザイナーがあれこれ考えるより先に、プログラマーが先に解決してくれてたりするので、今回気づけたのが妙に嬉しかった。
そういえばこれに近い感じのゲームがあったのを思い出しました。
ナンプレです。数独とも呼ばれますね。あれは9x9マスの移動に方向キーを全部使うので、このヒット&ブローのような操作で混乱することはない。ナンプレも結構好きで自作したこともあるのですが、よく見かけるのがミニポップアップ方式。ヒット&ブローだとこんなイメージかな。
これだと上下移動と左右移動が同時にはできなくなるので、操作が混乱することはなくせます。ではなぜこれを採用しなかったか?
おそらく、画面下に選択リストを配置しているせい。ただしこの存在価値は非常に高いと思われるので、費用対効果を考えて残したのだと思います。推測ですが、
- 画面がにぎやか(穴がいっぱいあるだけなので、このゲームの場合重要)
- 選択肢(=出題の範囲)の数がわかる
- アナログゲームの趣き=コンポーネント(駒とか)の手触りをイメージ
- 操作しているより考えている時間の方が長い
あたりかなと。特に2番目の選択肢の幅が明確なのは、思考するときに重要な要素。
これは試してないですが、実際に作りながらだと検証できますね。
このカーソル送り機能は実際に試してみて気づくことができました。この感覚を共有したいのですが、文字で伝えるのは難しいです。ということで、ゲームUIデザイナーの紳士淑女の皆さんにはぜひともアンリアルエンジンでプロトタイピングを嗜んでいただきたいなと強く心に思った次第です。
製品になったUIは、開発者の試行した結果が結晶化している状態なので、直接本人から聞き出さない限り、どうしてそうなったのか?という理由は推測するしかなく、真相は藪の中。
一から自分のUIを作れるようになるには、デザイン力と情報設計力は大事だけど、何より説得力がカギ。ロジックは問題ないようにしてやるからデザインは任せろ、と言えたらどんなにカッコいいか!とはいえ、仕様変更なんて世の常。諸行無常の響きがこだましています。どんなデコレーションにも対応できるロジックが自分の中にないと、デザイン変更に耐えるのはかなりしんどいものです。そこで体験として持っていると、UI提案する際に戦力アップ間違いなしです。
そこに遊び心が加わるともう一気にUIクオリティが上がります。
というわけでちょっと大げさに盛りましたが、実際作ってみたらこうだったという気づきは、できれば日常的に経験値上げしていきたいなと思う今日この頃。
オーバーロイドが楽しい
人に話すと大抵ラノベのオーバーロードと勘違いされるのですが、アナログのカードゲームです。
OVERЯOID と書いてオーバーロイドと読みます。2人で対戦します。13枚のカードしか使いません。カードの役割を覚えるまでは、リストを作ってみながらやるといいです。
ルールは超シンプル。一枚づつ出し合って数字の大きいほうが勝つというもの。そこにカードごとの効果が加わることで、より複雑な心理戦が繰り広げられます。自分の持っていないカードを相手が持っていることにはなるので、読みやすいと思いきやそう簡単には読めないのがこのオーバーロイドの真骨頂。6枚づつ配って1枚残った伏せ札。これがまた悩ましい。とにかく確実に勝てるカードが一枚もないのです。たった13枚しかないのにこの凝縮された感じ。勝敗がついた後の感想戦もまた大変楽しく盛り上がります。数字と役割とのバランスが絶妙で、シンプルなのに同じ展開にならない奥深さ。
とてもよくできているので、気になった方は是非一度遊んでみてほしいです。
オンラインでした手に入らないみたいなので、すぐに試せる簡単な方法をご紹介。
トランプの A~K までの13枚を用意。
あとは、公式サイト にルールも載っています。カード効果 も載っているので、これを見ながらでも十分プレイできます。
イラストもカードのデザインも素敵で、楽しみ方がわかれば本物のカードを手に入れて遊ぶと雰囲気が出て盛り上がること間違いなしです。
バリウムがおいしく感じた
火曜に年一回のドック検診受けてきまして、珍しく空腹だったせいか、バリウムを飲んだ時に、ああ、これが食べ物だったら・・・と悲しくなるくらい美味しくいただきました。空腹感すげぇ。バリウムはお腹に溜めておくと危険と脅されるので、出し切るためにゴハンに申し訳ないと思いつつドカ食いする。今年は検査会場の近場で使える食事券をくれた。有難かったけど、このお金はどこから出ているのだろう。
UMGの最適化の話
この記事を書いているときにTwitterに流れてきたこれ
Unreal Fest Online 2020における講演「Unreal モーション グラフィックス (UMG) UI デザイナーで AAA UI の最適化と作成」に日本語字幕を追加いたしました #UE4https://t.co/EE0el5UYyA
— アンリアルエンジン (@UnrealEngineJP) 2020年10月10日
興味深いことを紹介してくれていてうれしい。特にSMeshWidgetのパーティクルは面白いですね。Mapのアイコンのような大量の表示パーツがある場合などに効果的って話で、ぜひ将来のVerで使えるようにしてほしい。
負荷軽減のテクニックで、Tickをなるべく使わないとか、Visibility設定の Hiddenよりは Collapse の方がいいよ とかはそれなりによく聞くやつだけど、ツリーの平坦化、階層を深くしすぎないというのと、HitTest しなくていいものは 無効にするというのは、確かに!って思った。
Widgetの生成はコスト高いので、プールして管理する方法はそれなりに考えたりします。たとえばフェードインアウト用のWidgetや汎用のダイアログなんかは、常駐させる方が何かと都合がいいし。表示頻度やタイミングなんかを相談して決める感じ。
今回はこの辺で
みなさま お体大事になさってください
ではでは