原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【Unity】アセットFlock box dotsの紹介続き

自撮り

野球やサッカーなどのスタジアムで前の席の人が自撮りを始めたら写りこまないようにそっと身を屈める皆さんこんにちは。女性の方に多い気がしますが手にした食べ物と一緒に写りたがるのはどういう習性なのでしょうか?取り合えず試合そっちのけで自撮りに夢中になるのは辞めた方が良いと思います。

 

前回の続き

前回の記事でFlock Box dotsというアセットの概要を紹介しました。

assetstore.unity.com

ざっくりと説明すると鳥や魚等の群れの動きを作ることのできるアセットですが、前回はその概要と簡単なセットアップ例について記事にしました。

www.karvan1230.com

今回はFlock Box dotsで実装できる「群衆の動作」の詳細ついて説明したいと思います。

 

Behavior Settings

「群衆の動作」は群衆を構成する単体の動作を「Behavior Settings」という設定ファイルに設定することで構築します。
Behavior Settingsには凝集、分離、追跡等の群衆の動きを決定する個々の動作を定義することができます。

 

上の図はBehavior Settingsの例です。分離、追跡の各動作に対してそれぞれ重みづけ(weight)が設定され、個体の動作を定義しています。(上の場合は追従と分離が1対1の割合で動作する定義となっています)

 

Behavior Settingで設定できる動作は

上の図のメニューに表示されている全15種類。

このうち「ContainmentBehavior」は各BehaviorSettingsに自動的に追加される動作で、FlockBoxが定義するゾーン内にオブジェクトを封じ込める動作を定義しています。

それ以外の動作は必要に応じて追加、設定していく手順となります。

 

各種動作の説明

■Alignment:従順
周囲のエージェント(Steering Agentコンポーネントが設定されたオブジェクト)の平均的な順方向に向かって動作します。

 

■Arrival:到着
静止しているターゲットに向かって動作しますが、停止するために近づくときはブレーキ力を加えます。

Arraivalの使用例:ランダムに配置されたドットを目的地として設定

 

■Avoidance:回避
障害物を回避するように動作します。ただし、障害物はFlockBox配下のエージェント(Agentコンポーネントが設定されたオブジェクト)でなければなりません。

オレンジの半球が障害物、それを避けるように動作しています。

 

■ColliderAvoidance:コライダー回避
Colliderを避けるために操縦します。
回避よりも精度は劣りますが、複雑な環境ではより役立ちます。

Avoidanceと違い障害物はFlockBox配下のエージェントである必要はなく、Colliderを設定するだけで良いです。

 

■Cohesion:凝集
周囲のエージェントの中心点に向かって動作します。

 

■Flee:逃避
Cohesionとは逆に他のエージェントの中心点から離れていきます。

 

■Leader Follow:リーダー追従
Arraivalに似ていますが、複数のリーダーが存在する場合は、最も近いリーダーが選択されます。また、フォロワーは、リーダーの邪魔にならないように、リーダーの前のスペースからのステアリングを優先します。

これは前回の記事で実装例を説明しました。

 

■Pursuit:追跡
移動するターゲットで予想される迎撃ポイントに向かって動作します。

 

■Queue:整列
別のエージェントによってブロックされたときにブレーキ力を適用します。
混雑したエリアを通過しようとすると、群集が遅くなる効果を生み出します。

 

■Seek:探索
静止したターゲットに向かって動作します。

 

■Separation:分離
近くのエージェントからの距離を保つように動作します。
他のエージェントが近づくほど距離で重み付けされ、分離力が大きくなります。

 

■Wander:浮浪
ランダムな方向に操舵力を加えます。パーリンノイズで計算されます。

 

これらの各動作に対する設定例はプリセットとして用意されているので、魚群や鳥の群れをなどを背景として作りたい場合は、このプリセットをそのまま利用して作ることができます。

 

ゲームとして利用する

前述の説明のようにArraivalをいう動作を設定すると、それが設定されたオブジェトは特定のオブジェトに向かう動作を取ります。

現状ではターゲットに向かって一直線に移動していますが、これにColliderAvoidanceの動作をBehaviorSettingsに追加すると

障害物を避けてターゲットに移動するようになります。なのでこれを応用してターゲットを自分で操作できるようにし、追いかけるエージェントを複数個出現するように設定すると、

鬼ごっこのようなゲームが作れます。

ほかにも工夫すればゲームとして色々と利用できそうですね。

【Unity】アセット紹介:流行の兆しが見える群衆ゲームに使えそうな集団シミュレーター Flock box dots

格差社会

駅前で某エナジードリンクの無料配布が行われていて折角なら貰おうと近づいて行ったのに一切無視された皆さんこんにちは。ああいうのも年齢や容姿で区別されるのでしょうかね。職業や収入以外の面でも格差社会が広がっているのを実感します。

 

杉浦非水展

あまり美術に関して素養はないのですが、地元の美術館で日本初のグラフィックデザイナー杉浦非水の回顧展が開かれていたので、ゲーム作りの勉強になるかもと鑑賞に行ってきました。

fukuoka-kenbi.jp

杉浦非水は明治から昭和初期に活躍したデザイナー(当時は図案家といったらしい)で、三越の広告デザインを筆頭に数々の商品広告や本の装丁、官公庁のポスター等を手掛けてた方です。アール・ヌーヴォーをベースにした和洋折衷のデザインは今見てもインパクトがあり、逆に新しささえ感じます。

 

また、直線や曲線を大胆に使用し、デフォルメされたモデルにコントラストをハッキリとつけた彩色の広告などは、一目見るだけで大きな印象を残すもので、そういった面は斬新さが求められるインディゲームの絵作りの参考になるものだと思います。

 

回顧展では解説付きの作品集も売られていて、ちょっと高め(2,500円)ですが購入させて頂きました。

 

Flock box dots

Vampire Survivorsのヒットもあり近頃はワラワラと画面一杯に湧き出てくる敵を倒したり、大量のキャラクターを誘導したり集めたりするような、群衆を扱ったゲームが人気になりそうな気配です。
PCやスマホの性能アップもあり画面内に大量のキャラクターを配置しても以前ほど遅延やちらつきの問題が発生しづらくなったので、効率化等の技術検証に工数を割かず割と手軽に手が出せそうですが、そんな時に群衆の制御AIとしてこのアセットは有用だと思います。

Flock Box dotsは、その名の通りFlock(群れ)の動作を作り出すことのできるアセットで、例えば海中の小魚の群れの動きなどを想像してもらえばよいのですが、群れ全体の動きには一体性があり統率が取れていますが、個々を見ていくとそれぞれに個性があり、距離を開けるもの、詰めるもの、群れから離れていき暫くすると元の位置へ戻るもの様々です、そういった集団全体の動きと各々の個性的な動きをFlock Box dotsを使用することで実装することができます。

 

概要説明

このアセットは主に3つ要素から成り立っています。

  1. 集団を構成する個体の動作を制御するSteeringAgentコンポーネント
  2. 個体の動作(凝集、分離、追跡等)を定義したBehaviorSettings
  3. 各集団の生成、活動範囲の制限等を制御するFlockBoxコンポーネント

 

同封されているサンプルシーンを開くと、シーンを開いた段階では集団を形成するオブジェトはシーン内に配置されておらず、FlockBoxコンポーネントが付けられた空のオブジェトが配置されているのみとなっています。

 

このFlockBoxコンポーネントを参照すると集団を形成する個体のプレハブとその数、集団の活動範囲が設定されていることが分かります。

上の図の「Starting Populations」に設定されている「Boid」が個体プレハブ名でその横の数字が生成数です。そして「Dimensions」と「Cell Size」が活動範囲の定義となっています。

これを実行してみるとこんな感じ

 

SteeringAgent

各個体を実際に動かすのは個体プレハブに設定されたSteeringAgentコンポーネントです。

このSteeringAgentのActive Settingsに個体の動作を定義した設定ファイル(BehaviorSettings)を指定することで、個体の動作が決まり=集団としての動作が決定されます。

 

このBehaviorSettingsには個体の動作の指針、群れから離れたり、群れの中心に集まったり、ランダムに動いたり、といった動作をどのくらいの頻度(強さ)で行うのかを設定します。

BehaviorSettingsはプロジェクトビュー内で右クリック→Createメニューから作成することができます。

 

生成されたBehaviorSettingsに対してAdd Behaviorボタンを押して、設定したい動作(凝集、分離、追跡等)を追加していきます。

 

具体例で説明

話しがちょっとややこしくなってきたので具体例で説明します。
例えば小魚の群れのように各個体が同じ方向に動くような動作をさせたい場合、
まず群れを先導するリーダ役のプレハブと、それを追従するプレハブをそれぞれ用意し、それぞれに役割にあった動作をBehaviorSettingsに設定します。

 

リーダ役のプレハブ

 

追従役のプレハブ

 

リーダ役のBehaviorSettingsにはランダムで動く[Wander]設定

 

追従役のBehaviorSettingsには追従[LeaderFollow](+分離[Speparation])の設定

 

次にシーン内にFlockBoxコンポーネントを張り付けたオブジェクトを作成し、リーダ役、追従役を生成する設定を行います。

 

この設定でゲームを実行すると

ランダムで動くリーダに追従して動く50体の群れを作ることができます。

記事が長くなったのでFlock box dotsで設定できる動作(凝集、分離、追跡等)の説明については次回の更新で。

【雑記】unity1week用のゲーム開発に頓挫した事を反省する

セールストーク

車の定期点検のためにディーラーに行ったら二時間以上新車のセールストークを聞かせられた皆さんこんにちは。勝手に見積とか計算しだすし、いい加減疲れました。

 

反省しよう

以前から取り上げていますがunity1weekが開催中です。(現在、評価期間中)

unityroom.com

前回の記事で「unity1Weekは遅刻投稿が可能なので何か投稿するかも・・」的なことを書いていましたが、今回のunity1week向けゲームは見事に頓挫しました。ごめんなさい。

先週から寝る間を惜しまない程度に頑張って開発を進めていたのですが、ボリューム的に評価期間中までの完成が怪しくなってきたのと、後述する問題があり今回は投稿を断念することにしました。

今までは遅刻はするものの、完成には何とかたどり着いてリリースすることが出来ていたので、このような結果になったことは非常に口惜しいです。

 

作っていたもの

今回のお題が「そろえる」という事で、安直ですがパズルゲーム的なゲームを作成していました。

画面左の箱庭の中で白抜きになっている箇所を、画面右に並んだカードを選び重ねていくことで箱庭を完成させる、というゲームです。

カードに表示されている画像は回転することができるので、それで向きを揃えて箱庭の奥側から順にカードを重ねていく(揃えていく)というルール。

構想の段階ではそれなりにゲームとして成り立つかなぁと思い、1,2ステージ作ってみたのですが、実際に遊んでみると問題点ばかり目立って解決法が見つかりませんでした。

 

問題点

■その1:不正解の状態が分かりづらい

前述のように、このゲームでは箱庭の奥側から順にカードを重ねていきます。当然順番が違うと不正解となるのですが、選択したカードが正解の位置より奥側に配置された場合、白抜きの部分が手前に来るため、選択したカードの画像は見えなくなってしまいます。

この状態になるとユーザ的には選んだカードが消えてしまうように見え、不正解であることが非常に分かりづらいです。

ルール(選んだカードが奥に隠れている事)を理解すれば不正解の状態である事はわかるかと思うのですが、初めて遊ぶユーザは戸惑うばかりで楽しくないでしょう。

 

また、逆にカードの位置は正解でも向きが異なる場合、こちらはこちらで正解なのか不正解なのか分かりづらいです。

絵が揃っていないことは分かると思いますが、かと言って正解のように見えなくもない、ユーザが即時に「位置は正解で向きを変えればよい」と判断できないのでユーザビリティが非常に低い状態だと思います。

 

■その2:操作方法が理解しにくい

このゲームの操作順は

  1. 右のカードの中からカードを選択する
  2. カードの絵の向きを箱庭の白抜き部分と合わせる
  3. Setボタンを押して箱庭側に設置する

で、選択したカードの位置か向きが不正解の場合は

  1. 箱庭からカードを取り出す
  2. 右側のカードに映像が戻るので、再びカードを選択する
  3. カードの絵の向きを合わせる

という手順を行います。

箱庭にカードが設置されると左のBoxに番号が下から順に表示され、カードを取り出すときにはこの番号のBoxをクリックします。
文字に起こすと手順が理解できるかもしれませんが、実際に遊んでみると何をどうすればよいのかパッと分からないと思います。

特に箱庭に設置したカードを元に戻す操作、箱庭横のBoxとカードが連結していると理解するのは難しいですよね。

 

一応、画面中に操作方法を表示したのですが、

これでも・・・うーん、という感じ。

 

■その3:「奥側」の見極めが難しい

箱庭の「奥側」から埋める、というルールですが、最奥や最前の場所は分かってもその中間の部分は見極めが難しく、右の並んだカードの中でどれが2番目に「奥」なのか箱庭側に設置してみないと判別がつきません。これはユーザの方はアンフェアだと感じるのではないでしょうか。

 

以上のような問題点があり、たとえパズルを解いても達成感よりもストレスの方が大きいのではないか、面白さを感じてもらえないのではないか、と判断して今回の開発の打ち切りを決断しました。

 

何が原因なのか

私の場合、unity1weekではその時に作りたいゲームをお題に沿うようにアレンジして作っていくのですが、今回は「そろえる」というお題に引っ張られて「作りたいもの」と「お題」の摺り合わせが上手くいきませんでした。

「作りたいもの」とは前回のブログで紹介したようなちょっと不思議な映像を使ったゲームで、見た目に珍しいもの、目新しいもの、ばかりに意識が行き過ぎて、ゲームとしての楽しさや快適さ、ユーザに感じてもらう達成感、爽快感についての熟考が怠っていたと思います。

今回は残念な結果になりましたが、次の機会があればまたチャレンジしてみようと思います。

【雑記】GW中の出来事について振り返る

GW明け

長い連休が明けて久しぶりに会社に出社したらPCのログインパスワードを見事に忘れていた皆さんこんにちは。思い出すのに30分ぐらい掛かりました、怖い怖い。
ついでに連休前に取り掛かっていた仕事の内容も忘れていたので資料を読み直りたり、コードを一から眺めたり、早く夏休みこないかなぁと思い耽ったり、と日常のペースを取り戻すのに必死です。

 

福岡インディーゲームサミット

GW中は珍しく福岡でインディーゲームのイベントがありました。

indiegamesjapan.com

国内外で活躍するインディーゲーム開発者の方々のインタビュー&講演とマーケティングを専門としている地元大学教授の講義という内容で大変有意義な時間だったと思います。

海外開発者の方が次々に(アンケートやテスト等を通じた)コミュニティとの接続の大切さを口にしていた事は大きな印象に残りましたし、マーケティングとしての共創という考え方と、制約と創造の相関性の話は今後の活動に役立つものだと思います。

会場は40~50人ぐらいの規模の会場でしたが座席はほぼ満席で、以外に老若男女幅広い層が参加されていた思います。福岡だけでもこれだけ(これ以上に)ゲーム開発者がいるかと思うと気が引き締まりますね。もっと頑張らないと。

秋には展示即売会のイベントも開催されるようなので、その際には是非とも参加したいと思っているのですが一つだけ難点があって、会場の椅子が木製の丸椅子で長時間座っているとお尻が痛くなる、という事、第二回が開催される際にはその辺も考慮して頂けると有難いです。

イベントは二部構成で、二部では懇親会が開催されたようですが私はそれには参加せず演会だけ拝聴させて頂きました。懇親会では来場者同士で名刺交換等が行われていたようですね。私も名刺を作らないといけない。

 

Unity1Week

今日現在(5/10)では未だ開催期間中ですが、開発期間は終了しています。

unityroom.com

お題は「そろえる」、開発期間がGW中だったこともあり今現在で300件近い投稿があるようです。
私もチャレンジしようと頑張ったのですが、残念ながら開発期間中にアイデアを纏めることができませんでした。
Unity1Week開催前に事前に準備していた内容と実際に出されたお題との摺り合わせがうまくいかず、脳内会議とプロタイプ作成だけで開発期間が過ぎてしまいました。

 

■作ったプロトタイプ1

 

■作ったプロトタイプ2

 

他にも脳内でアレコレとアイデアを出したのですが、ゲームとして成り立ちそうになかった物がばかリで結局一週間を無駄に過ごす羽目になりましたね。

まぁ、10連休という事に浮かれて買い物行ったり、サッカー観に行ったり、2日連続コンサート観に行ったり、そもそもPCの前に座る時間よりPS4のコントローラー握っている時間の方が長かったりして遊び惚けていたので自業自得ですが。

 

Unity1Weekは開発期間を過ぎても二週間の評価期間中でも遅刻投稿が可能なので、その間に何か作る事ができたら投稿するかもしれません。
でもなぁ・・・、等身大ガンダム観に行きたいなぁ・・・

 

【Unity】Unity2021.3LTSがリリースされました

連休

心は既にGW気分な皆さんこんにちは。今年は週中に3連休がありその前後を休んで10連休となる方も多いと思います。私も多分に漏れず長い休暇となるため、それを思うと週初めから休み気分で仕事が手につきません。まぁ、これといって予定もないんですがね。エルデンリングもクリアしたし。

 

unity1week

ゲーム開発者の皆が暇を持て余すことを見越してかGW期間中にunity1weekが開催されます。私と同じくGWのスケジュールが真っ白な方は暇つぶしに参加されるとよいでしょう。

unityroom.com

また、都合の良い事に現在Unityのアセットストアで春の大セールが行われており、50%オフかライトニングディールによる80%オフのアセットが大量に出品されています。私も幾つか購入したので近くブログで紹介したいと思います。

Unity Asset Store - The Best Assets for Game Making

 

Unity 2021.3 LTS

前述のイベントに合わせてなのか、新年度に合わせてなのか分かりませんがUnityエディタの方も大幅なアップデートがありUnity 2021.3 (LTS)が正式リリースされています。

unity3d.com

調べてみるとUnity2020から大量の修正と新機能の追加が行われているようです。
シーンのビルドやパッケージのインポートが高速化され、Quick Searchの機能もアップされています。

また、C# 8.0に完全対応した事によりインターフェイスにstaticメソッドを定義できるようなり、範囲(Range)指定によるアクセスも可能となりました。
特にRangeはforeach等で「末尾何番目から末尾何番目まで」みたいな指定を簡単にできるようなるので積極的に使っていきたい機能です。

Unity 2021.3 (LTS)の「LTS」とは長期間サポートバージョンの事で今後二年間は本バージョンに対するバージョンアップが定期的に行われていきます。
ゲーム開発が長期間になりそうな場合は本バージョンにバージョン変更するのがお勧めらしいです。
この辺のことはUnity公式が日本語の説明動画を挙げているので参照してください。

www.youtube.com

 

シーンビューのUIが変わった

前述のように色々な機能が改善・変更されていますが、中でも大きいのはシーンビューのUIが変わったことでしょう。

一見で分かるように画面上部のメニューバーにあったコントロールツールが小型のウィンドウに格納されており、シーンビュー内の好きな位置へ配置することができます。

また、シーンギズモもこれまで画面右上に固定だったものが移動可能となっています。

 

加えてTransformインスペクタのscaleに機能が追加されています。

Scale欄の一番左にアイコンが追加されていますが、これはスケールの比率固定のON/OFFを切り替えるアイコンです。
今まではScaleの各軸(X, Y, Z)はそれぞれ独立したため、例えばXの値を変えるとオブジェトのX方向のスケールが変更される、という動作でした。

これを先程のアイコンをクリックして比率固定モードに切り替えると、Xの値を変えると現在の各軸の比率を守ったまま、他のY,Z方向の値も変更されるようになります。

 

このスケール比率固定機能はデフォルトではOFFですが、Preferencesから変更することができます。

メニュー→Preferences→Scene Viewを選択し、その中のCreate Objects with Constrained Proportions にチェックを入れます。

これも結構便利な機能なので、Unity2021.3にバージョン変更した際には設定を変更することをおすすめします。

 

【Unity】今更ながらArea Lightについて

新人研修

どこぞの会社の新人研修の一環なのか駅前で「よろしくお願いします。」と声を上げながら必死にビラ配りをしているスーツ姿に遭遇しても一切無視する冷酷な皆さんこんにちは。まぁ、社会の厳しさを学ぶのも新人教育の一環ですからね。

 

ライトの種類

3Dのゲームを作っていると少なからずライティング(及び影)についてアレコレと考慮する必要が出てきます。
特別リアルな画面を作ろうとしなくてもシェーダーによってはライトの影響を直に受けるので、思ったようなゲーム画面を作るにはライティングの設定が欠かせません。

Unityで用意されているライトの種類は

  • Directional
  • Point
  • Spot
  • Area

とあります。それぞれを説明すると

 

■Directional Light

この中でもDirectional Lightは太陽光に該当する光源となるので基本的にどのシーンでも使われるライトです。
限りなく遠くに存在する光源として捉えられるのでライトの位置はあまり関係なく、角度の設定が重要となります。

例えば下のような全く光源のないシーンに

Directional Lightを追加すると・・


オブジェクト全体にDirectional Lightで指定した角度から光が照射されて影が形作られます。

 

■Point Light

Point Lightは指定した位置から全方向に同等な光量を発するライトです。
つまりDirectional Lightとは違い、ライトの位置と光量の設定がシーンに影響を与えます

このライトは主に蝋燭や電球のように局所的な光源を表現するために使います。
先程のシーンの上部にDirectional Lightを追加すると

電球がボックス内を照らしているような画面となります。

 

■Spot Light

Spot Lightは光の当たる範囲を指定することができるライトです。
この為、ライトの位置と角度及び光の当たる範囲を指定することになります。

一般的にスポットライトは懐中電灯や車のヘッドライト等の光源として使用されます。
一人称視点のホラーゲームでは頻繁に使われているので以外に使用頻度は高いライトです。

 

そしてArea Light

Area Lightは空間内に長方形もしくは円形のエリアを指定して、その表面エリアから均一に放射される光源となります。
Spot Lightと違い光の当たる範囲を決めることはできず、Area Lightとその光が当たるオブジェクトとの距離によって照射する光量が決定されます。

幅の広いLEDライトや窓から差し込む光等、シーン内により自然な光の表現を加えるときに使用しますが、その分計算量が多くなる為、前述の3つのライト(Directional/Point/Spot)と違いその効果はダイレクトにシーンに反映されません。

要は設置しただけでは光源として使われない、ということです。

 

Area LightはTypeプロパティ欄に「baked only」とわざわざ記載されているようにライト設置後、ライトマップにベイクする必要があります。
そして、Area Lightの光を照射されるオブジェクトは全て「static」の設定が必要となります。

このため、最初にシーン内にArea Lightを設置した後に

各オブジェクトのInspectorで「Static」のチェックをONに設定

最後にメニューからWindow→Rendering→Lightingを選択して

Lighting設定から「Generate Lighting」をクリック

暫くするとライトマップがベイクされArea Lightで照射されたシーンが表示されます。

 

注意点

Point Lightと比較すると広い光源でシーン内を照らしている分、かなり自然な画面になっていることが分かります。
室内等で写実的な表現をしたい場合には頻繁に使う必要があるかと思いますが、ライトマップにベイクする計算にはかなり時間が掛かります。
使用するPCの性能にもよるかもしれませんが、上のシーンのベイクでも3~4分掛かりました。

設定の変更がダイレクトに反映されないので設定を失敗するとベイクするまで分からないのはちょっと痛いところです。

Area Lightの失敗例

また、オブジェクトを移動してもライトマップにベイクされた情報はそのままなので、オブジェクトの影は残ったままとなります。

ここら辺を考慮して使用する必要があるみたいです。

【アセット紹介】設定が簡単で多機能なトゥーンシェーダー「lilToon」

f:id:Karvan:20220412203907p:plain

肩透かし

ワクチン接種(3回目)の副反応に備えてアレコレと準備をしていたのに腕の痛み以外は症状が全然でなくて肩透かしを食らった皆さんこんにちは。2回目の時はかなりの発熱の症状がでたので怯えていたのですが、今のところ平熱を保っています。会社を休む準備もしていたので少しがっかり。

 

lilToon

Unityでトゥーンシェーダーといえば「ユニティちゃんトゥーンシェーダー」が有名ですが、他にも優秀なトゥーンシェーダーは数多く存在していて、その中でも今回紹介する「lilToon」シェーダーはかなり有用だと思います。
既存のシェーダー(Standard等)から「lilToon」シェーダーに置き換えだけでそれっぽいトゥーン調の画面を簡単に作ることができますし、かつ、シェーダーのエディタが日本語対応かつ日本語ドキュメントも存在するので導入に対する障害がかなり少ないです。

lilxyzw.booth.pm

上記のリンクでもお分かりの通り、「lilToon」はアセットストアではなくBOOTHで公開されているシェーダーで、基本無料で使うことができます。500円を投げ銭として渡すことができるので、このシェーダーを導入して満足された方は今後の支援の意味も込めて検討されると良いでしょう。

 

使い方

前述のようにモデルに設定されているマテリアルのシェーダーを「lilToon」に置き換えるだけでトゥーン調に変換することができます。

下の画面内のモデルは全てStandardシェーダーで描画されていますが

f:id:Karvan:20220412204214p:plain

 

これを全てlilToonに置き換えると

f:id:Karvan:20220412204403p:plain

こんな感じに画面がトゥーン調の絵柄となったことが分かると思います。

 

設定を変えてみる

Inspectorを見ればオプションとして色々と設定が用意されているので、ちょっと設定を追加してみましょう。

f:id:Karvan:20220412204609p:plain

最初に影のチェックボックスをONにします。

f:id:Karvan:20220412204733p:plain

チェックボックスをONにすると影用の設定が色々と表示されますが、とりあえず今回はデフォルトのままとします。

f:id:Karvan:20220412204925p:plain

デフォルト設定のままでも綺麗な影がつきます。

 

次に鳥のモデルに発光設定も追加してみます。

f:id:Karvan:20220412205203p:plain

チェックボックスをONにして、発光色を決めます。

f:id:Karvan:20220412205322p:plain

 

最後に輪郭線も追加

f:id:Karvan:20220412205454p:plain

こちらは設定が難しかったです。太さを大きくすると線が途切れ途切れになったりしますが、色々と調整すると

f:id:Karvan:20220412205609p:plain

まぁ、それなりに整った輪郭線が表示できます。

 

動画で比較

折角なのでここまでの変化を動画でも比較してみます。

  • 全てStandardの場合
f:id:Karvan:20220412205836g:plain

 

  • lilToonに置き換えた場合
f:id:Karvan:20220412205940g:plain

 

  • 影+発光の設定を加えた場合
f:id:Karvan:20220412210037g:plain

 

  • 輪郭線を加えた場合
f:id:Karvan:20220412210128g:plain

 

まとめ

上記のように設定をアレコレいじらなくてもそれなりの画面が作れるので、導入の工数がかなり少なくて済みます。
こだわった設定をしたい場合は、「詳細設定」のボタンを押すと細かい設定もできるようです。
その場合は公式のドキュメントを参照してください。

lilxyzw.github.io

因みに輪郭線に関しては上の画面からもわかるように他のシェーダーと同様、綺麗な線を表示するのは難しいと思われるので、輪郭線付きの画面を作りたい場合はカメラエフェクトを使用する方が良いと思います。

  • lilToon+カメラエフェクト(Beautify)の輪郭線を使った場合
f:id:Karvan:20220412210414g:plain

 

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。