執筆バージョン: Unreal Engine 4.26
|
こんにちは。
今回は設定項目の多いUMG(WB:WidgetBluePrint)のScrollBoxの解説と
デザイナーがやりたい「グラデーションマスクで消えるスクロールボックス」を作っていこうと思います。
毎回私も迷うのですが、ScrollBoxの設定はやたらと多いです。
本当にどこがどこやねんと思っているので備忘録としても使っていただけたらと思います。
コンシューマーで使う目線でピックアップします。
使うのは、主にこの8か所です!
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/49869f429542dad03d0f864f1d6c63aa-190x300.png)
では、配置していきます。
普通に配置した状態(左)と今回目指す状態(右)です。
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/6dee720f7498bb43c796216be1b36592-300x148.png)
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/69fbee2639011fa8d5bd508f30d3ec72-1-300x203.png)
パネルのScrollBox内にテキストを含む子Widgetを複数配置しています。
やることは下記の通りです。
-
①のデフォルトでついている影を消す
-
①にグラデーションマスクを仕込む
-
②のデザインを整える
-
各位置を調整する
■①のデフォルトでついている影を消す
下記画像のようにデフォルトではスクロールして消えていく部分に影がついています。
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/c6a6698d17ceba83dcaa52b704c51d62-300x61.png)
こちらはStyle内の全てのAlphaを0にして見えなくしていきます。
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/b868d5f7ed9048ec54f9c033cc637927-300x240.png)
■①にグラデーションマスクを仕込む
RetainerBoxを使います。
下記の状態のマテリアルを用意します。
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/932281cb8ef634bb3abda69450a06c7a-300x163.png)
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/72512cd932e449a30f8122be7e8968a9-300x182.png)
ScrollBoxの親にRetainerboxを配置し、このマテリアルを設定します。
Texture Parameter名をマテリアル内の名前と合わせるために【Retainer】と入力して実行すると
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/e76b5fe79b56bd1a8f23efb1f8c57894-300x97.png)
このように上下がうまいこと消えます。
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/bbc9b2c7b910582d4e00a51483b55f9a-300x203.png)
スクロールバーも消えてしまってますがここは最後に整えます。
マスクの部分は過去記事のカーブアトラス(Curve Atlas)でも作ることができますのでこちらの記事も
参考にしてみてください。【カーブアトラス記事】
■②のデザインを整える
バーのデザインを整えていきます。
下記にテクスチャかマテリアルを入れていきます。
【Vertical Background Image】
【Normal Thumb Image】
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/9ff084b0c9cb04d20934b8d3bf94e1a3-174x300.png)
今回はマテリアルで作りました。
こちらの記事を参考にしてください。
【[UE4]SphereMaskで角丸ウィンドウの作成】
今回の中身も貼っておきます。
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/c180041de99e3e92d8ffdf111ba1fe0a-300x162.png)
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/70ede4a53ac3b3b1577689d646c03e7d-300x146.png)
各ImageのDraw AsをBoxに設定します。
上記画像のImage SizeはScrollTicknessのX値に合わせています。
この値でスクロールバーの太さを調整できます。
■各位置を調整する
現状のままだと下記の問題があるので解消していきます。
-
スクロールバーがグラデーションマスクで消えている
-
項目の1つ目がグラデーションマスクで消えている
-
テキスト項目の間隔が広すぎる
●スクロールバーがグラデーションマスクで消えている
力技感がありますが、手っ取り早くPaddingで上下に余白を設けます。
Scroll内の【Scrollbar Padding】を画像のように設定すると
スクロールバーの上下に空白ができてグラデーションで消える部分に掛からなくなります。
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/33fb179d5a9adeb0dcd46ad136a74959-300x152.png)
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/69fbee2639011fa8d5bd508f30d3ec72-1-300x203.png)
●項目の1つ目がグラデーションマスクで消えている
Spacerを挿入します。
Appearanceで【Y:30】を入力しています。
こちらは実装では消すことになりますので、デザイナーが確認するための使用となります。
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/f8cdbd9b2cd01e0301a57e2056dda99a-300x144.png)
●テキスト項目の間隔が広すぎる
ここはデザインによりけりですが、テクスチャサイズが大きすぎて
配置した時に空間が空きすぎる場合、子Widgetの
ヒエラルキーの上に【Size Box】を配置して解消します。
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/9a7c2614f4a6e49f6bcb0676f8da319d-300x162.png)
Detailsの【Child Layout】で【Hight Override】に必要な高さの数値を入れます。
ここでは【80.0】を入れています。
こうすることで、実際は高さ【100.0】あるテキストWBを【80.0】に切り出して表示することができます。
完成しました!!
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/69fbee2639011fa8d5bd508f30d3ec72-300x203.png)
![](https://historia.co.jp/wp/wp-content/uploads/2021/06/Animation-1.gif)
ぜひ参考にしてみてください。