Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

【アセット紹介】Oriental Sword Animation【Unity】

今回はアセットの紹介をしていきます。
紹介するのはOriental Sword Animation
刀を使った戦闘用アニメーションアセットです。

f:id:Raspberly:20210816022530p:plain

クーポンコード「ANIMATE2021」を入力すると今だけ無料で入手できます。
※アニメーションアセットなので一口サイズの紹介記事です。

f:id:Raspberly:20210816042603p:plain

 

 

 

 

お得なセール情報(終了しました)

現在アセットストアではパブリッシャーセールが開催中!

6目となる今回はアニメーションアセットで人気のパブリッシャー
Kevin Iglesias」「Explosive」「we make the game」提供の全アセットが50%オフになります。

f:id:Raspberly:20210816024414p:plain

 

さらにクーポンコード「ANIMATE2021」を入力すると、
以下のアセット3つが無料でもらえます!


決済画面でクーポンコード「ANIMATE2021」を入力すると無料で入手できます。

f:id:Raspberly:20210816023913p:plain

パブリッシャーセールは日本時間で8月16日15時59分まで

 

 

どんなアセット?

刀を使った戦闘用アニメーションアセットです。 

f:id:Raspberly:20210816034704g:plain

24のアニメーション:
-8つのコンボ攻撃。
-8つの通常攻撃
-2つの防御
-待機
-移動
-被攻撃
-Strafe Back / Left / Right

攻撃、防御、移動モーションが含まれています。

 

注意

ヒューマノイドリグが正常に動作していません

アニメーション自体は動作しますが、動作テスト用のプレハブの挙動に難があります。
これはいくつか修正する必要があります。

 

以下ストアレビューから引用

1) お好みのLTSバージョンで、組み込みのRPテストプロジェクトを開始する。
2) 無料のUnityちゃんを「購入」し、ダウンロードして、インポートする。警告はすべて無視/クリアしてください。
3) generic folder, unitychan folder, controller with abbreviated for "generic" like gnr のチェックを外した状態で、ダウンロードしてインポートする。
4) unity chanプレハブをシーンにドラッグします。
5a) 公式unity chanダウンロードからのものを使用する場合。フェイスコントロール/アニメーション表示用のスクリプトを削除します。残しておきたい場合は、Blinkは問題なく動作します。
5b) sword packのものを使用する場合。 階層にあるikの参照オブジェクトを削除または無効化してください。 ヒューマノイドではないリグ(子供用のbip...のような名前がついている)を削除または無効にします。
6)剣を削除または無効にしてください、完全に壊れています。適切な剣のサイズに合わせた立方体に置き換えます。 子供の手の下のリグを変形させます。
7) ヒューマノイドアバターを設定します。
8) 汎用性のないコントローラーをアニメーターにドラッグしてテストします。

アニメーションをクリーニングして使用する。
1) エディター内のアニメーションアセット、またはBlenderを使って、アニメーションだけをコピーします。私はたまたまVery Animationを持っていたのでそれを使いました。(推奨ではなく、専門家でもありませんが、今回の目的には適していました)。)
2) ルートモーションの使用に変更します。
3) オリジン(スケルトンではない)を使うように変更します。アバターが T Pose を強制していることを確認してください。オフセットが0であることを確認します。
4) 回転を正規化し、クォータニオンに変換する。
5) 必要に応じて、異なるクリップを別々のファイルにカットします。

www.DeepL.com/Translator(無料版)で翻訳しました。

 

 

 

 

実行環境

Unity2020.3.14f1

Oriental Sword Animation ver1.5

 

 

 

インポートの確認

アセットインポート完了時はこんな感じ。

f:id:Raspberly:20210816031716p:plain

 

 

動作確認

デフォルトの刀は真っ白なので、こちらのアセットを使用しました。

 

前述したとおり、アセットに含まれているプレハブをシーンに置いてもアニメーションが正しく再生されません
実際にHumanoidのUnityChanをシーンに配置して実行すると、アニメーションと刀が同期していないのがわかります。

f:id:Raspberly:20210816041324g:plain

 

応急処置として、刀のAnimatorを無効化し手のボーンに直接紐づけるようにしました。

f:id:Raspberly:20210816041105p:plain

f:id:Raspberly:20210816041843p:plain

きちんと刀も動かしたい場合は、上で引用した方法をお試しください。

 

一応アニメーション自体に問題はありません。
攻撃も移動も再生できます。SDキャラでも行けますね。

f:id:Raspberly:20210816034704g:plain

f:id:Raspberly:20210816041914g:plain

 

 

 

 

まとめ

・Oriental Sword Animation は刀を使ったアニメーションアセット
・アニメーションは再生できるが、付属のプレハブは正常に動作しないことに注意
・今だけクーポンコードを入力することで無料で入手できる

 

 

以上です。

残り時間わずかなので、無料アセットを3つとも今すぐ購入処理をしておきましょう!

 

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

※この記事はユニティちゃんライセンス条項の元に提供されています

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

【アセット紹介】Grabbitでオブジェクトを配置する【Unity】

今回はアセットの紹介をしていきます。
紹介するのはGrabbit - Editor Physics Transforms
物理ベースでオブジェクトを配置するデザインツールアセットです。

f:id:Raspberly:20210801000349p:plain

 

 

この記事はUnity アセット真夏のアドベントカレンダー 2021 Summer! 1日目の記事です。

f:id:Raspberly:20210729193647p:plain

2日目はNakaji Kohkiさんの
【Unity】NatShareでツイート後に報酬を付与する #アセットアドカレ2021」です。

 

 

どんなアセット?

物理的なシミュレーションを行いながらオブジェクトを配置するアセットです。
公式のビデオがとてもわかりやすい。

www.youtube.com

 

機能の特長

✔️グラバーで物理学衝突トランスフォーム
✔️グループ&整列は、物理学を持つオブジェクト
✔️動的な重力の選択
✔️ローテーションAlignementシステム
✔️スマートテレポート&衝突検出
✔️全元に戻すサポート
✔️ 優れたパフォーマンスと大規模なシーン向けに最適化
✔️柔軟なインターフェイス
✔️アクティブなサポートとコマンドロードマップ
✔️1つのかわいいウサギ!

かわいいウサギ!

 

 

机の上に複数のオブジェクトを配置したい場合、通常であればSceneビューのギズモを動かし、
それぞれの位置や角度を調整し、他のオブジェクトと重ならないように配置しなければなりませんが、
これはなかなか面倒な作業です。

f:id:Raspberly:20210731230914p:plain

Grabbitを使うとメッシュとの衝突を考慮して素早くオブジェクトを配置したり、
重力落下をシミュレートした自然な配置が実現できます。

f:id:Raspberly:20210731232228g:plain

Grabbitのもう一つの特徴は、衝突判定はGrabbit側が自動で調整してくれる所です。
ColliderやRigidbodyが設定されていないオブジェクト同士を衝突させて配置してくれます

(作業時にメッシュを計算して自動的にColliderを設定し、作業終了後は削除される)

 

VRChatでも使える?

このアセットはUnity 2018では動作しません
Unity ProjectをUnity 2019(厳密にはUnity2019.4.16以降)にアップデートしてあれば使えます。

vrc.wiki

インポートする前にUnityのバージョンをご確認ください。
間違ってインポートした場合は、Assets/Plugins/Grabbitフォルダを削除すればOK。

f:id:Raspberly:20210802161025p:plain

 

 

開発環境

Unity2020.3.14f1

Grabbit - Editor Physics Transforms ver2021.0.5

※GrabbitはUnity2019.4.16 以降が対象です

 

 

インポートの確認

アセットインポート完了時はこんな感じです。
Pluginsの中に入っています。

f:id:Raspberly:20210731233818p:plain

 

セットアップ

インポート直後はこのようなセットアップウィザードが表示されます。
ここではGrabbitを使うための初期設定を行います。設定は後から変えることができます。

f:id:Raspberly:20210730005359p:plain

 

コライダータイプ

使用するコライダータイプの設定
Grabbitでは、オブジェクトを配置する時に凹型コライダー(より精密な衝突が取れるコライダー)を生成します。
ただし、このコライダーを生成するには事前にメッシュのスキャンが必要になります。

f:id:Raspberly:20210730030337p:plain

正確に衝突を再現したい場合は凹面コライダーを使用しましょう。
そこまで正確さを求めないのであればデフォルトコライダーでも構いません。

 

シーンスキャン

シーンをスキャンする時に、シーン全体をスキャンするかどうかの設定
Grabbitは起動時にシーンをスキャンします。大きいシーン(20000以上のオブジェクトがあるもの)の場合は約0.8秒(CPUによる)かかります。
これが長いと感じる場合、スキャンする範囲を限定してより早くスキャンを終わらせることができます。

f:id:Raspberly:20210730030425p:plain

 

衝突設定

高精度な衝突をシミュレートするかどうかの設定

Grabbitでは高精度な衝突をシミュレートしスムーズな衝突を行うことができます。
ただし一度にたくさん移動させると動作が遅くなるのでフレームレートがすでに低い場合はオフにしましょう。

f:id:Raspberly:20210730030546p:plain

 

これで設定は終わりです。
簡単にまとめるとよほど処理負荷が高くない限り全部左を選んでおけばOK

 

それ以外の細かい設定はオプション画面から設定できます。
・Grabbitと連動するレイヤーやタグのチェック
・Grabbitが大きすぎるオブジェクト(地形など)を選択しないようにする
など

 

設定しなおしたい時

Tools/Grabbit/OpenStartupMenuからセットアップウィザードを表示できます

f:id:Raspberly:20210731213552p:plain

 

 

 

実際に試してみる

実際にオブジェクトを配置してみます。
今回はこちらのアセットを使用して、机の上にノートを配置してみます。

f:id:Raspberly:20210731224254p:plain

 

ツールウインドウの表示

ツールバーにGrabbitのウサギマークのボタンが追加されているのでこれを押します。

f:id:Raspberly:20210731224843p:plain

これでツールウインドウが表示されます。
ここからGrabbitの機能を利用できます。

f:id:Raspberly:20210731225014p:plain

 

 

Placement Mode

配置を行うモードです。

f:id:Raspberly:20210731231157p:plain

 

まず机の上にノートや辞書のオブジェクトを適当に配置しておきます。

f:id:Raspberly:20210731230914p:plain

Grabbitのツールウインドウが表示されている状態で、オブジェクトを選択するとSceneビューにウサギマークがでます。
このマークが出ていればGrabbitは正常に動作しています。

f:id:Raspberly:20210731231256p:plain

この状態でオブジェクトを移動するだけで簡単に配置できました。
机や他オブジェクトとの衝突も考慮されていますね。

f:id:Raspberly:20210731232228g:plain

Rotationギズモの無効化

Placement ModeではPositionとRotation両方のギズモが表示されます、
操作しにくいときはRotationのみ無効化できます。

f:id:Raspberly:20210731233033p:plain

 

 

Rotation Mode

衝突を考慮しながらオブジェクトを回転させるモードです。
Placement Modeでも回転させることはできましたが、こっちは位置を無視します。

f:id:Raspberly:20210731234547p:plain

f:id:Raspberly:20210731235828g:plain

 

 

Align Mode

オブジェクトを整列させるモードです。 

f:id:Raspberly:20210801005640p:plain

ギズモのスケールハンドルを操作することで、選択したオブジェクトの中心を軸に整列させることができます。

f:id:Raspberly:20210801010518g:plain

 

 

Fall Mode

オブジェクトを重力で落下させるモードです。

f:id:Raspberly:20210801000539p:plain

初期状態ではPausedになっているので、Resume Grabbitボタンを押して落下させます。
物理的に自然な感じで配置したい時に便利そうですね。

f:id:Raspberly:20210801002131g:plain

 

 

Point Mode

マウスの位置に合わせてオブジェクトを追従させるモード
ドキュメントには載っていないので比較的新しい機能らしい。

f:id:Raspberly:20210801012035p:plain

Fall Modeと同じくデフォルトでPausedになっているのでResume Grabbitで停止を解除します。
オブジェクトを選択すると、マウスカーソルに合わせて地形や他オブジェクトに沿った移動が可能です。

f:id:Raspberly:20210801020147g:plain

 

 

 

 

まとめ

・Grabbit - Editor Physics Transformsを使うと、オブジェクトを物理的シミュレートして配置できる
・Sceneビュー上で移動、回転、重力落下など複数の方法で配置できる
・オブジェクト側にColliderやRigidbodyをつける必要はない

 

以上です。

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

【勉強会レポ】: Gotanda.unity #19

勉強会のレポート(メモ)です。
参加したのはこちら「Gotanda.unity #19」

meetup.unity3d.jp

ハッシュタグ : #gotandaunity

 

 

アーカイブはこちら

www.youtube.com

この記事は私の主観でのまとめです。
重要な情報を削っていたり、解釈違いの場合があるのでアーカイブの動画と合わせてどうぞ。

 

Gotanda.unityとは

都内近郊を中心に活動を行うUnityユーザのコミュニティです
Unityに興味がある人であれば、どなたでも気軽にご参加いただけます!
(五反田発の勉強会であることから「Gotanda.unity」というネーミングになっております)

 

 

 

LT#1 (スポンサー枠) tetsu: MirrativでのUnity as a Library活用事例

MirrativでのUnity as a Library活用事例についてお話します

Unity as a Library(UaaL)とは

Unityをネイティブアプリのライブラリとして利用する技術です。
Mirrativのエモモ(3Dアバター)で使用しています。
・ギフト(アイテムやスタンプ)機能の処理はアプリ側で、演出をUnityで行っています。

メリット

・Unityの3D機能が使える
・デザイナーがそのまま作れる
・Unityだけで完結し、確認する時アプリビルドの必要がない

演出の難しさ

・Unityの初期化中やロード中にもアプリ側の処理が行われる→キャンセル処理を適切にいれる必要がある
・演出のタイミングや順番を制御する仕組みが必要
・演出の豪華さと負荷のバランスが大事(許容判断と負荷の改善が必要)

UaaLは×演出はこんな人におすすめ

・Unity+ネイティブ両方の機能を使ってみたい人
・新しい演出で驚きを提供したい人
・新しい技術の先端を追いかけたい人

 

 

 

LT#2 (初登壇枠) Denik: 新MLAPI(v0.1.0)でマルチゲームを作ってみた

MLAPI Quick Start

MirrorのQuick Startを新MLAPIに対応したサンプルを作りました。

xrdnk.hateblo.jp

MLAPIとは

Unityが買収したGameObject向けマルチプレイヤーソリューションです。
TISの「XR Campus ツアーサービス トライアル版」で採用中です。

www.tis.jp

新旧の違い

詳しくはこちら

xrdnk.hateblo.jp

機能紹介

・NetworkObject、NetworkTransformなど同期コンポーネントが用意されています
・1シーンに一つ必要な管理クラスNetworkManagerがあります
・同期させるScriptはNetworkBehaviourを継承する必要があります
・変数の同期を行いたい場合はNetworkVariable型を使用します
・RPCも使用できます

CunstomMessagingManager

NetworkObjectやRPCは、NetworkObjectがアタッチされていてNetworkBehaviourを継承したクラスでないと利用できない。
それらがなくても同期処理を行いたい場合はCustomMessagingManagerを利用する

詳しくはスライドをどうぞ

 

 

 

LT#3 むろほし: Unity 2021.1でのUnityパッケージの名称変更について

Unityのパッケージの名称、区分の変更についてお話します

2020.3以前のパッケージ区分

検証済み(Verified):実際のプロジェクトに導入できるもの

プレビュー(Preview):検証中のもの、仕様変更やサポートが終わる可能性があるなど実験的なものも含める

2021.1以降のパッケージ区分

リリース済み(Released):検証済みに相当。PackageManagerから導入できる

プレリリース(Pre-release):その年のLTSリリースまでにReleasedになることが期待されるパッケージ
ProjectSettingから設定しないとPackageManagerに表示されない

実験的(Experimental):実験的、手探り状態のパッケージ。リリースされないかもしれないパッケージ。
PackageManagerには表示されない。2020.3LTSの時点でPreviewだったパッケージは原則Experimental。
そのうちのいくつかは公式ドキュメントの方法で導入できる

リリース候補(Release Candiate)

公式リリースの有力な候補であるパッケージ

Unity - Manual: Release Candidates

非推奨(Deprecated):サポートしていないパッケージ

 

詳しくはこちら

blog.unity.com

まとめ

・パッケージの名称が変わりました
・プレビューはプレリリースとエクスペリメンタルに分かれてわかりやすくなりました

 

 

 

LT#4 こりん: UnityのVR開発環境の現状整理

UnityのVR開発環境の状況が込み入っているので整理して、今どうすればいいのか答えを出しておきます

先に結論

UnityのXR Interaction Toolkit + OpenVR PluginマルチプラットフォームVR開発の未来です

しかし、Oculus IntegrationやSteamVR Pluginを使わなければならないケースがまだある

全体的な動向

UnityはXR Plugin Managementによるプラグイン方式に変更されたが、
実際には特定のSDKプラグインを組み合わせないといけないものが多い

・Oculus Integration + Oculus XR Plugin
・SteamVR Plugin + OpenVR Plugin
・MRTK + OpenXR Plugin + Miced Reality OpenXR Plugin
・XR Interactiobn Toolkit + Oculus Plugin、OpenXR Plugin等
・WebXR Export + プラグインはまだなし

プラグインにはヘッドセットごとの低レイヤーAPIやサポートAPIが入っています。
ヘッドセットごとにバラバラだと大変なので標準化したOpenXR規格が誕生しました。


その後、UnityのXR Plugin ManagementではOpenXRに対応したOpenXR Plugin
Unity純正XRツールキットXR Interaction Toolkitが生まれました。

この二つはUnityの新しい入力システムInput Systemに移行しています。

forpro.unity3d.jp

 

XR Plugin Management、OpenXR Plugin、XR Interaction Toolkit、Input SystemがUnityの標準VR方式になる見込みです

制限と課題

・Oculus Questのハンドトラッキングには未対応
・SteamVRのViveトラッカーをサポートしていない
・SteamworkのターゲットSDKにOpenXRがないため審査に通るか不透明
・OpenXRに対応したランタイムが複数あるがどのランタイムで起動されるかわからないし動作が異なる

結論

・まだ移行期
・アプリをリリースしたり、ヘッドセット固有の機能を使いたい場合は各プラットフォームのSDKを使う状況が続きそう
・学習用途であればXR Interaction Toolkit+OpenXR Pluginを使ってもいいのでは

告知

XR Interaction Toolkitのページを作りました

framesynthesis.jp

 

 

 

 

LT#5 もんりぃ先生: GraphView のすゝめ

GraphViewの基本やカスタマイズについてお話します

GraphViewとは

ShaderGraphやVFXGraphなど、ノードベースなヴィジュアルプログラミング環境を作るためのAPI/UIを提供するものです。
コードを書かなくてもプログラミングできるようになるのが特徴です。

GraphViewの構成要素

・GraphView:GraphViewを作るためのもの
・Node:一つ一つのノードを作るための機能
・Port:ノードの入出力先をつかさどるもの
・Edge:ポートとポートをつなぐための線
・ISearchWindowProvider:検索窓を作るための機能

GraphViewのTips

数が多いのでスライドをどうぞ

まとめ

・現状Experimental
・最低限ノードベースなグラフを構築することはできる
・カスタマイズするにはUIElements力が求められる

リンク

light11.hatenadiary.com

www.youtube.com

qiita.com

creator.game.cyberagent.co.jp

https://virtualcast.jp/blog/2020/04/playwithgraphview/

 

 

 

 

 

 

 

 

LT#6 (スポンサー枠) おはぎ: Mirrativ 着せ替えの仕組みを解説

エモモの着せ替えについてお話します

着せ替えの仕組み

共通の素体に対してアイテムを着せ替えています。
着せ替えるアイテムに応じた異なる仕組みで着せ替えを実現しています。

ボーンスケールの変更

・部位ごとにスケールを変更する
・素体一つにパラメータを読み込ませて実現している
・パラメータが極端だと破綻するためレギュレーションを決めている

ブレンドシェイプによる変形

・口や顔、表情など
・プリセットを渡して変形させる

テクスチャの入れ替え

・シェーダにテクスチャを渡す

メッシュとマテリアルの入れ替え

・アイテムごとにメッシュとマテリアルを入れ替える
・髪、目・衣装など必ず身に着けているものに対して入れ替える

プレハブの入れ替え

・プレハブを生成して入れ替える
・アクセサリーや置物に対して行う

エモモのクオリティアップ

・揺れ物はボーンを設定、DynamicBoneを使用
・アイテムの自由度を下げないようにお互い干渉しないようにしている

 

 

 

 

LT#7 (初登壇枠) 佐藤 英一: 執筆者になろう! & ちょっとだけUnityバイブル2の裏話

出版社から書籍を出すと何が違うのか

SNSやブログでの情報発信、同人誌の作成や勉強会での登壇と何が違うのか

・著者として名前が刻まれる→末代まで残る

・印税が入ります。電子書籍でも当然入ります。ただしあまり金額にこだわるとお願いしにくい

・(重要)開発者の輪が広がる。いろいろな方から声がかかりつながりができる

残念なお知らせ

・Unityバイブルのような多人数の書籍はほとんどない。バイブルはまたやるがしばらく先になる

・普通の場合は一人で書くか4~5名

・執筆期間は決まっているので負荷は高い

負担は大きいが達成感も大きい

バイブルのよくある質問

・著者は勉強会に登壇した方に声をかけることが多い

・執筆期間は3か月でお願いしているが場合によっては1年になることも

・Unity以外のテーマは能力不足でできません

最後に

・執筆に関心がある!

・自分は無理だけど興味がありそうな人を知っている

・このSNSをやっている人に書いてもらってほしい

などなどある方はぜひご気軽にご連絡ください

宣伝

 

 

LT#8 ナナキ: Timelineを使ってターン制RPGの戦闘を演出する

Timelineの利点

・演出を倍速にできる
・エンジニア以外の人に演出を組んでもらえる
・演出が再利用できる(攻撃する演出など)
・人型のキャラクターだとモーションも再利用できる
・テスト用シーンで演出が組める

モーションを作るのが大変な場合

Mixamoで探す
MocapForAllを使う
・アセットストアで購入する
モーションキャプチャーで作る

・人以外の場合は手付けで頑張るしかない

注意点

・キャラクターの位置、回転は親オブジェクトにやらせる
コンポーネントも親オブジェクトにつける
・エフェクトは対象のルートに持たせて、そこからローカル座標や回転を調整
・キャラの大きさによってモーションの調整が必要

PlayableDerector

Timelineの再生、行動側・行動される側を動かしたり、エフェクトを再生させる

・行動者がTimelineの再生
・Signalが対象者に演出を通知
・対象者は受け取って演出を行う
・PlayableAssetがエフェクト再生(Prefabの設定やInspectorの設定を保持できる利点がある)

 

 

 

 

LT#9 (初登壇枠) イワケン: XR時代のプレゼンテーションをUnityで構築したい

XRプレゼンの技術をお話します(内容的にはUnityとUnrealの座標変換の話)

XRプレゼンとは

XR技術を用いた表現でユーザー行動を促す技術(イワケンが定義した言葉)

UnityからUnrealへの座標変換

HoloLensアプリはUnityで、CG空間はUnrealで作る必要があるので連動させないといけない。
変換としては、反転させたり軸を入れ替えるだけ。
XRプレゼンを用いて直感的に座標変換を伝えます。

 

ここでデモ 動画をご覧ください

 

重要なこと

XRデバイスを被らせるよりも映像の方が今のユーザーには届く
スライドとシステムは分ける(組み込むと大変)

XRプレゼンの意義

リアルで見れないモノや回転をプレゼンテーションできるのが強み
情報だけでなく体験を伝えやすくなる

 

 

 

 

 

 

スポンサー企業紹介

株式会社ミラティブ

ゲーム配信ができるコミュニケーションサービス「Mirrativ」を作っています。
文化として毎週ユーザーのフィードバックに向き合い、全員で共有する会をやっています。

 

現在Unityエンジニア、IOSエンジニア、Androidエンジニア、サーバーエンジニア、
データサイエンティストを募集しています。

www.mirrativ.co.jp

 

株式会社キッズスター

子供向けのサービスを作っています。
メインのプロダクトとして「ごっこランド」を展開しています。

biz.kidsstar.co.jp

 

エンジニアに限らずさまざまなジョブを募集しています

www.wantedly.com

 

ワンダープラネット株式会社

エンターテインメント事業を生業としています。
プロダクトとしては「ジャンプチ ヒーローズ」や「クラッシュフィーバー」などシンプルだけど奥深いプロダクトの開発・運営を行っています。

 

エンジニア募集中です(クライアントもサーバーも)

www.wantedly.com

 

 

 

 

 

 

以上です。

 

今回もとてもおもしろいLTが聞けました。発表者のみなさまお疲れ様です👏

 

 

他の方の感想ブログとか

xrdnk.hateblo.jp

note.com

 

 

 

 

間違っている箇所、消してほしいツイートがありましたらコメントにお願いします。

【アセット紹介】Crest Ocean System URP で海を作る【Unity】

今回はアセットの紹介をしていきます。
紹介するのはCrest Ocean System URP
高度な海洋シミュレーションアセットです。

f:id:Raspberly:20210720005913p:plain

f:id:Raspberly:20210720020351p:plain




 

お得なセール情報

現在アセットストアでは、サマーセールが開催中!
7週間にわたってテーマ別にセール対象アセットが変わります!

 

今週のテーマはファンタジーゲーム開発向けアセットです。
詳しくは↓のバナーからどうぞ!

f:id:Raspberly:20210719223803j:plain

今回紹介する「Crest Ocean System URP」もセール対象です!

 

セールのスケジュール

  • 1週目:低ポリゲーム-2021年6月22日-6月28日
  • 2週目:2Dゲーム-2021年6月29日-7月5日
  • 3週目:3Dゲーム-2021年7月6日-7月12日
  • 4週目:ファンタジーゲーム-2021年7月13日-7月19日
  • 5週目:SFゲーム-2021年7月20日-7月26日
  • 6週目:ドリームプロジェクト-2021年7月27日-8月9日

4週目の終了時間は日本時間で7月20日15:59までです。

blog.unity.com

 

 

 

どんなアセット?

とても高度な海洋シミュレーションアセットです。
波の表現、物理演算、水中エフェクトなど本格的な海を表現できます。

f:id:Raspberly:20210720003445g:plain

クレストは、PCおよびコンソールプラットフォームを対象とした、技術的に高度な機能豊富な海洋システムです。

 

ドキュメントはこちら

crest.readthedocs.io

 

注意点

Render Pipeline

URP専用アセットです。HDRP用は別売りになっています。
Built-inで使いたい場合はGithubで公開されているものを自由に使えます

github.com

対応プラットフォーム

PCとコンソールを対象にしたアセットです。
高機能なモバイル端末なら動くかもしれないようですが。

Compute Shader

ComputeShadersに依存したアセットです。
コンピューティング互換性のあるプラットフォームのみサポートしています(WebGLでは動かない)

対象プロジェクト

高度な水のシミュレーションを必要とするプロジェクトを対象にしています。
技術的設定・構成が必要なので、「手っ取り早く海を作りたい」といった場合には向いてません。

複数カメラの同時レンダリング

(現在)複数カメラの同時レンダリングをサポートしていません

 

 

 

 

 

開発環境

Unity 2020.3.14f1

Universal RP 1.5.1

Crest Ocean System URP ver4.12

 

 

 

 

インポートの確認

インポート前の準備

RenderPipelineAssetの設定

まずはRenderPipelineAssetを設定します。
これはレンダーパイプライン全体のグラフィックスを構成するアセットで、SRPでは必須です。

f:id:Raspberly:20210719145335p:plain

URPプロジェクトを作成した段階で自動的にセットされていますが、
Depth TextureとOpaqueTextureを有効にする必要があります。

f:id:Raspberly:20210719145430p:plain

Color Spaceの設定

ProjectSettingsからColorSpaceをLinearに設定します。

f:id:Raspberly:20210719150532p:plain

ここまでできたらアセットをインポートします。

 

デモシーンの確認

アセットインポート完了時はこんな感じです。
Crest-Examplesにデモシーンが含まれています。

f:id:Raspberly:20210719160737p:plain

BoatDev

ボートがあるシーンです。
プレイヤーが操作できるボートと、AIで走り回っているものがあります。

f:id:Raspberly:20210719232124g:plain

Main

シンプルなTerrainと海のシーン

f:id:Raspberly:20210719232219g:plain

PirateCove

海賊の入り江。島と船があります。

f:id:Raspberly:20210719232948g:plain

Whirlpool

ボートが渦潮に引き寄せられるシーン。

f:id:Raspberly:20210719233108g:plain

 

 

 

 

実際に試してみる

実際に海を作ってみます。
コンポーネントのパラメータについてはドキュメントをどうぞ。

海の作成

Materialの作成

OceanWater」という名前で新しいMaterialを作成します。(デフォルトのOceanマテリアルを使ってもいいですが)
ShaderはAssets/Crest/Crest/Shaders/Oceanを使用します。

f:id:Raspberly:20210717155839p:plain

Normal MapにはAssets/Crest/Crest/Textures/WaveNormals/WaveNormalsを割り当てます。

f:id:Raspberly:20210717160117p:plain

FoamのFoamにはAssets/Crest/Crest/Textures/Foam2を割り当てます。

f:id:Raspberly:20210717161639p:plain

CausticsにはAssets/Crest/Crest/Textures/Caustics/Caustics_tex_colorを割り当てます。

f:id:Raspberly:20210717161711p:plain

Oceanの作成

空のゲームオブジェクトを作成し名前を「Ocean」に変えます。
OceanにCrestOceanRendererコンポーネントをアタッチします。
Ocean ParamsにMaterialにOceanマテリアルが自動的に割り当てられていますが、
これを先ほど作ったOceanWaterマテリアルに差し替えます。

f:id:Raspberly:20210717160409p:plain

ゲームをプレイしてみると海ができているのが確認できます。

f:id:Raspberly:20210717160515p:plain

 

波を作る

海面はできたので波を発生させます。
空のゲームオブジェクトを作り名前を「OceanInput」に変えます。
OceanInputの子にさらに空のゲームオブジェクトを作り名前を「Waves」に変えます。

f:id:Raspberly:20210717163028p:plain

WavesにCrestShapeGerstnerBatchedコンポーネントをアタッチします。

f:id:Raspberly:20210717163047p:plain

ゲームを実行してみると海面が波打っているのが確認できます。

f:id:Raspberly:20210717175033g:plain

 

泡を発生させる

海面に泡を発生させます。
Projectビューの適当な所にCreateからFoamSimSettingsを作成します。

f:id:Raspberly:20210717163621p:plain

作成したらOceanRendererSimSettingsFoamに割り当てます。

f:id:Raspberly:20210717165558p:plain

 

これで海面に泡が発生します。

f:id:Raspberly:20210720001629g:plain

SimSettingsFoamのパラメータから泡の強さと範囲を変えるとよりわかりやすくなります。

f:id:Raspberly:20210717170228p:plain

 

動的な波の発生

オブジェクトの移動や回転に合わせて波が発生するようにしてみます。

マテリアルの作成

Assets/Crest/Crest/Shaders/OceanInputs/DynWavesObjectInteractionを使ったマテリアルを作成します。

f:id:Raspberly:20210719235911p:plain

 

オブジェクトの作成

波を発生させるコライダー専用オブジェクトを作成します。
今回はCapsuleを使います。名前を「WaterObjectInteraction」に変えておきます。

 

これにCrestObjectWaterInteractionコンポーネントCrestRegisterDynamicWavesInputコンポーネントをアタッチ。

f:id:Raspberly:20210720001554p:plain

このWaterObjectInteractionを動くオブジェクトの子オブジェクトにしておきます。

CrestOceanRendererの設定

CrestOceanRendererのCreateDynamicWaveSimにチェックを入れる

f:id:Raspberly:20210720002221p:plain


これでオブジェクトの動きに合わせて波が発生します。

f:id:Raspberly:20210720002629g:plain

 

 

 

オブジェクトを海に浮かべる

Cubeを浮かべてみます。

Cubeを作成し、RigidbodyCrestSimpleFloatingObjectをアタッチします。

f:id:Raspberly:20210717173803p:plain

これで完成です。簡単!
パラメータで浮力を調整できます。

f:id:Raspberly:20210720003445g:plain

 

 

 

 

まとめ

・Crest Ocean System URPを本格的な海を作ることができる

今回実際に作った部分はほんの一部です。
流れを制御したり、海の一部分だけ変化をつけたり、水中エフェクトをつけたりととても多機能なので、
ドキュメントやビデオチュートリアルを元にいろいろ遊んでみてください。

 

以上です。

 

 

参考資料

crest.readthedocs.io

www.youtube.com

www.youtube.com

www.youtube.com

 

HDRP版はこちら!

amaotolog.com

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

【アセット紹介】Sensor Toolkit でNPCの視界を作ろう【Unity】

今回はアセットの紹介をしていきます。
紹介するのはSensor Toolkit
視界を簡単に作ることができるセンサーアセットです。

f:id:Raspberly:20210712034341p:plain

f:id:Raspberly:20210712030819p:plain

 

 

 

お得なセール情報

現在アセットストアでは、サマーセールが開催中!
7週間にわたってテーマ別にセール対象アセットが変わります!

 

今週のテーマは3Dゲーム開発向けアセットです。
詳しくは↓のバナーからどうぞ!

f:id:Raspberly:20210712030240j:plain

今回紹介する「Sensor Toolkit」もセール対象です!

 

セールのスケジュール

  • 1週目:低ポリゲーム-2021年6月22日-6月28日
  • 2週目:2Dゲーム-2021年6月29日-7月5日
  • 3週目:3Dゲーム-2021年7月6日-7月12日
  • 4週目:ファンタジーゲーム-2021年7月13日-7月19日
  • 5週目:SFゲーム-2021年7月20日-7月26日
  • 6週目:ドリームプロジェクト-2021年7月27日-8月9日

3週目の終了時間は日本時間で7月13日15:59までです。

blog.unity.com

 

どんなアセット?

レイキャストやコライダーを使って、
キャラクターの視界となるセンサーを簡単に作ることができるアセットです。
センサーだけでなく、視界に最適なコライダーもあります。

f:id:Raspberly:20210712025844g:plain

Sensor Toolkitは、ゲームオブジェクトに配置して、スクリプトやPlayMakerアクションと簡単に統合できる2Dおよび3Dセンサーコンポーネントのコレクションです。これは、レイキャストやトリガーコライダーなどのUnityの基本的なセンシング機能に加えて便利な抽象化ですが、多くの利点があります。軽量で高度な機能を備えており、幅広い問題に適用できます。

 

 

ドキュメントはこちら

www.micosmo.com

 

 

 

開発環境

Unity2020.1.7f1

Sensor Toolkit ver1.6.5

 

 

 

インポートの確認

アセットインポート完了時はこんな感じです。
メインとなるコンポーネントはトップに配置されています。

f:id:Raspberly:20200930021248p:plain

 

Examplesの中にデモシーンが含まれています。

f:id:Raspberly:20200930021340p:plain

Actionシーン

2つのチームに分かれたBotがお互いに戦いあっているシーン

f:id:Raspberly:20200930024734g:plain

Stelthシーン

WASDとマウスで操作するステルスゲーム
このアセットのイメージに一番合うかも。

f:id:Raspberly:20201006032441g:plain

 

 

 

 

主要コンポーネント

このアセットを使いこなすうえで重要なコンポーネントを紹介します。
パラメータはたくさんあるので重要なやつだけ。

FOVCollider

コーン状の視野を提供するコライダーコンポーネント。キャラクターの視野にぴったりです。
コーンはStart時にメッシュが動的に生成されます。

f:id:Raspberly:20210711224409p:plain

パラメータ

Length:視野の長さ

BaseSize:視野のサイズ(視野開始地点側の大きさ)

FOVAngle:視野の角度(横方向の角度)

ElevationAngle:視野の仰俯角(上下方向の角度)

Resolution:円弧の頂点の数(可能な限り少ない方がいいらしい)

f:id:Raspberly:20210712025638g:plain

FOV Colliderはセンサーコンポーネントではないのでこれ単体で探知などはできません。
TriggerSensorコンポーネントと併用しましょう。

 

 

センサーコンポーネントの共通機能

センサーはGameObjectを検知しリスト化します。センサーから離れたときにリストから削除されます。
検知時とセンサーから離れた時にイベントを発行します。

共通のパラメータ

センサーごとにちょっと違いはある

Ignore List:センサーで検出しないGameObjectのリスト。視線を遮ることはある

Enable Tag Filter:Trueにすると、TagFilterに含まれるオブジェクトのみ検知する

Detects On Layers:探知するオブジェクトのレイヤー。初期値Nothingなので注意

Detection Mode:検出モード。Rigid bodiesの場合Rigidbodyがないと無視される

Update Mode:Sensorの更新モード。毎フレームだったりインターバルを指定したり

Requires Line Of Sight:視線が通っているオブジェクトのみ検出する

Events:検知及び見失った時に呼ばれるイベントを設定

 

 

RangeSensor

Sphereのセンサーコンポ―ネント。範囲内のコライダーかRigidbodyを検出します。
一定間隔ごとに検出するほか、手動(任意のタイミング)で検出させることも可能。
(内部的にはPhysics.OverlapSphereを使用しています)

f:id:Raspberly:20210712013944p:plain

パラメータ

Sensor RangeSphereのサイズ

f:id:Raspberly:20210712010426p:plain

 

 

 

RaySensor

Rayを使うセンサーコンポーネント
Rayの長さや検出するレイヤー、それを遮るレイヤーにより構成されます。
RauCastHitを使うため、接触点や表面法線、ブロックしたコライダーを取得できます。

f:id:Raspberly:20210712013911p:plain

パラメータ

Length:Rayの長さ

Radius:Rayの半径、0より大きい場合spherecastを使用します

Direction:Rayの方向

World Space:Directionの値がWorldSpaceかLocalSpaceか

f:id:Raspberly:20210712025723g:plain

 

 

SteeringRig

ステアリングベクトルを計算するコンポーネントです。
障害物をナビゲートするのに使われます。子オブジェクトにRaySensorを配置して使いますが、
SensorToolkit / SteeringRigPrefabsにすぐに使えるPrefabが用意されています。

f:id:Raspberly:20210712013130p:plain

 

 

Trigger Sensor

isTriggerなコライダーを使うセンサーコンポーネントです。(ColliderとRigidbodyが必須)
一般的によく使われる検出方法ですが、設定は慎重に行う必要があります。
OnTriggerEnterとOnTriggerExitで検出を行いますが不要なものを検出する可能性もあります。

f:id:Raspberly:20210712014346p:plain

 

BoxColliderなど自前のColliderで探知できます。
前述のFOV Colliderと併用すると簡単に視界を作成できます。

f:id:Raspberly:20210712014809p:plain

 

 

 

 

 

 

実際に試してみる

FOV ColliderとTrigger Sensorでキャラクターの視界を作ってみます。

 

キャラクターの用意

お馴染みSDユニティちゃんを使います。これはなんでもいいです。

f:id:Raspberly:20210712025523p:plain

 

 

センサーコンポーネントの設定

ユニティちゃんの子オブジェクトに空のゲームオブジェクトを作成し、
FOV ColliderTriggerSensorコンポーネントをアタッチします。パラメータはこんな感じです。

f:id:Raspberly:20210712031431p:plain

 

UIの作成

発見状態かどうかわかりやすいようUIを作成します。これはなんでもいいです。

f:id:Raspberly:20210712032030p:plain

 

スクリプトの作成

以下のSensorTestを作成します。
探知時と見失った時に呼ばれる2つのメソッドを定義しています。
やっていることはそれぞれUIをオンオフするだけです。


TriggerSensorの設定でPlayerタグ以外のオブジェクトは探知しないようにしているので、
オブジェクトの識別処理を入れる必要はありません。(とても便利)

using UnityEngine;

public class SensorTest : MonoBehaviour
{
    public GameObject m_DetectIcon;

    public void Detect(GameObject _gameObject, SensorToolkit.Sensor _sensor)
    {
        m_DetectIcon.SetActive(true);
    }

    public void Lost (GameObject _gameObject, SensorToolkit.Sensor _sensor)
    {
        m_DetectIcon.SetActive(false);
    }
}

このスクリプトを、先ほど作った空のゲームオブジェクトなど適当な場所にアタッチします。

 

 

イベントの設定

TriggerSensorコンポーネントのEventにSensorTestのメソッドを登録します。

f:id:Raspberly:20210712032500p:plain

 

 

これで完成!
FOV Colliderの範囲内に入ると探知されているのがわかります。
壁の遮られたり、範囲内に出ると見失っていますね。

f:id:Raspberly:20210712025844g:plain





 

まとめ

・Sensor Toolkitを使うとキャラクターの視界が簡単に実装できる
・4種類のセンサーコンポーネントと視界用のColliderが用意されている


このような視界システムは自作している方が多いと思います。
Colliderを使って開発するのが一般的(Unityのチュートリアルなど)ですが、
視界用のFOV Colliderが用意されているのがとてもうれしいですね。

センサーコンポーネントも視点が通っているかの判定や、
タグ・レイヤーによる探知範囲の設定など便利な機能がそろっているので、
ステルスゲームや戦闘ゲームを開発している方にオススメのアセットです。

 

アセットストアでも人気順上位です!評価も高い!

 

以上です。 

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

【アセット紹介】2DxFX: 2D Sprite FXでスプライトにエフェクトをつける【Unity】

今回はアセットの紹介をしていきます。
紹介するのは2DxFX: 2D Sprite FX
SpriteRendererやImageにエフェクトを追加するアセットです。

f:id:Raspberly:20210705223510p:plain

f:id:Raspberly:20210706004549g:plain

 

 

お得なセール情報

現在アセットストアでは、サマーセールが開催中!
7週間にわたってテーマ別にセール対象アセットが変わります!

 

今週のテーマは2Dゲーム・モバイルゲーム開発向けアセットです。
詳しくは↓のバナーからどうぞ!

f:id:Raspberly:20210706011403j:plain

今回紹介する「2DxFX: 2D Sprite FX」もセール対象です!

 

セールのスケジュール

  • 1週目:低ポリゲーム-2021年6月22日-6月28日
  • 2週目:2Dゲーム-2021年6月29日-7月5日
  • 3週目:3Dゲーム-2021年7月6日-7月12日
  • 4週目:ファンタジーゲーム-2021年7月13日-7月19日
  • 5週目:SFゲーム-2021年7月20日-7月26日
  • 6週目:ドリームプロジェクト-2021年7月27日-8月9日

2週目の終了時間は日本時間で7月6日15:59までです。

blog.unity.com

 

 

 

どんなアセット?

SpriteRendererやImageにエフェクトを追加するアセットです。 
ディゾルブしたり、ブレンドしたり、色味を変えたり、レトロ調にしたり、歪ませたり、
ホログラム風にしたり、ブラーをかけたりとさまざまなエフェクトが用意されています
それぞれパラメータが用意されているのでカスタマイズも容易です。

 

f:id:Raspberly:20210706004735g:plain

f:id:Raspberly:20210706004726g:plain

個人的にフェード用パラメータがデフォルトで用意されているのがうれしい。

特徴:

  • 65以上の高度なスプライト効果。
  • 高度な稲妻と影のサポート。
  • コードは必要ありません。
  • エディターで直接結果を表示します。
  • 通話の最適化を描画します。
  • すべてのエフェクトにはフェードオプションがあります。
  • アニメーション/アニメーターを操作します。
  • デフォルトのスプライトカラーレンダラーと組み合わせます。
  • 2DxFXは、モバイルデバイス用にも設計されています。
  • 一部のエフェクトはスプライトシートをサポートしています(互換性リストについては、「アトラスの互換性」を参照してください)
  • Unity5.x以降と互換性があります。

2DxFXにはUnity5.0以降(パーソナルまたはプロ)が必要です

公式オンラインドキュメントはこちら

www.vetasoft.store

 

 

 

開発環境

Unity2020.3.12f1

2DxFX: 2D Sprite FX ver3.1.0

 

アップデートごとにエフェクトが増えるのがうれしい

 

 

 

デモシーンの確認

アセットインポート完了時はこんな感じです。

f:id:Raspberly:20210706011837p:plain

2DxFX/Examples/Scenesにデモシーンがあります

f:id:Raspberly:20210706012301g:plain

ここで全エフェクトの確認が行えます。

 

 

使い方

使い方は簡単!

付属のMaterial(または付属のShaderを設定したMaterial)をImageやSpriteRendererに紐づけるだけ!
コードを書く必要もありません。

f:id:Raspberly:20210706002553p:plain

f:id:Raspberly:20210706002530p:plain



ちなみに104種類用意されています。

 

 

実際に試してみる

ユニティちゃんピクセルアートパック*1を使ってエフェクトを付けていきます。

f:id:Raspberly:20210706004443g:plain

数が多いのでサクサクっと

 


Additive
AlphaIntensity
AnimatedBurn
AnimatedMovement
AnimatedOffset
AnimatedPingPong
AnimatedPingPongRotation
AnimatedTwist

f:id:Raspberly:20210706004456g:plain



 

AnimatedZoom
Automatic2Lerp
Blur
BlurHQ
BlurHQPlus
BreakingGlass
BreakingGlassFull
BreakingMirror

f:id:Raspberly:20210706004514g:plain



 

 


Burn
BurnPixel
CircleFade
CircleHole
ColorBrightness
ColorDarkness
ColorGrayscale
ColorHDRCreation

f:id:Raspberly:20210706004536g:plain

 

 

 


ColorHSV
ColorNegative
ColorOnly
ColorRGB
ColorTint
CompressionTintAdditive
DesintegrationPixel
DisolveHDR

f:id:Raspberly:20210706004549g:plain

 

 


DisolvePixel
Distortion
DoodleDraw
Emboss
EmbossFull
Explode
FishEye
Fluo

f:id:Raspberly:20210706004602g:plain

 

 


Fusion2Sprites
Fusion2SpritesAdditive
Fusion3Sprites
GhostClipping
Glitch
HologramParasite
HologramParasiteAdditive
HologramParasiteTint

f:id:Raspberly:20210706004616g:plain

 

 


HologramParasiteTintAdditive
HologramScanLine
HologramScanLineAdditive
Holographic
HolographicTint
HolographicTintAdditive
InfiniteZoom
InnerGlow

f:id:Raspberly:20210706004633g:plain

 

 


InsideDistortion
JpegCompressionStyle
Kaleidoscope
Lerp2sprites
LightGlow
LiquidWave
MotionBlurFast
NightVision

f:id:Raspberly:20210706004652g:plain

 

 


NoiseBlur_Horizontal
NoiseBlur_Vertical
Offset
Outline
OutlineEmpty
Perspective3D
Pinch
PixelExplosion

f:id:Raspberly:20210706004726g:plain

 

 


PixelGravityDie
Pixelisation
PixelisationXY
Plasma
Repeat
RetroC64
RetroCGA
RetroCGA2

f:id:Raspberly:20210706004735g:plain

 

 


RetroEGA
RetroGB
RoarDistortion
Shake
Sharpness
ShinyFX
ShinyPixel
SymbioseDistortion

f:id:Raspberly:20210706004743g:plain

 

 


SymbioseDistortionFix
Threshold
ThresholdSmooth
Tilt_Down
Tilt_Left
Tilt_Right
TurnFire
TurnFirePixel

f:id:Raspberly:20210706004754g:plain

 

 


TurnGold
TurnLiquid
TurnMetal
TurnToInfinite
TurnTransparent
Twist
Vintage
Zoom

f:id:Raspberly:20210706004804g:plain

 

 

 

 

まとめ

・2DxFX: 2D Sprite FXはスプライトやUIにつけるエフェクトアセット
全104種類用意されていてパラメータである程度調整ができる

 

これ1つ持っているだけで表現の幅が大きく広がりますね。
アウトラインやシルエット化などよく使うものが含まれているので、
2Dゲームを作っているorよく作る方にオススメのアセットです。

 

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。

*1:© Unity Technologies Japan/UCL

【アセット紹介】White mage spells でエフェクトを作る【Unity】

今回はアセットの紹介をしていきます。
紹介するのはWhite mage spells
魔法系エフェクトアセットです。

f:id:Raspberly:20210629013211p:plain

f:id:Raspberly:20210629000910p:plain

 

 

お得なセール情報

現在アセットストアでは、サマーセールが開催中!
7週間にわたってテーマ別にセール対象アセットが変わります!

今週のテーマはローポリ&AR/VR/MR向けアセットです。
詳しくは↓のバナーからどうぞ!

f:id:Raspberly:20210628233051j:plain

今回紹介する「White mage spells」もセール対象です!

 

セールのスケジュール

  • 1週目:低ポリゲーム-2021年6月22日-6月28日
  • 2週目:2Dゲーム-2021年6月29日-7月5日
  • 3週目:3Dゲーム-2021年7月6日-7月12日
  • 4週目:ファンタジーゲーム-2021年7月13日-7月19日
  • 5週目:SFゲーム-2021年7月20日-7月26日
  • 6週目:ドリームプロジェクト-2021年7月27日-8月9日

1周目の終了時間は日本時間で6月29日15:59までです。

blog.unity.com

 

 

どんなアセット?

Particle Systemを使った魔法系のエフェクトアセットです。
White mageの名の通り、白魔法にちなんだバフ系や光魔法系エフェクトが収録されています。

f:id:Raspberly:20210629005222g:plain

資産が含まれています:
- 26の驚くべき効果プレハブ
-特別にこの資産のために作成された10個のユニークなアイコン
- 15高品質のSFX
HQ PBRファンタジースタッフの追加などの資産を。

 

ちなみに、無料のサポートパッケージアセットを導入するとURP/HDRPに対応させることができます。

 

WebGLですぐに動作確認ができるデモが用意されています!(音がでます)

https://simmer.io/@ErbGameArt/white-mage-spells

 

 

また、別売りの杖のアセットがおまけで含まれています

 

 

実は過去にHumble Bundleのバンドルに含まれていたことがあるので、購入済みの方もいるかも!

www.asset-sale.net

 

 

開発環境

Unity 2020.3.12f1

 

 

 

デモシーンの確認

アセットインポート完了時はこんな感じです。

f:id:Raspberly:20210628230958p:plain

 

PBR Fantasy staff

PBR Fantasy staffに杖の3Dモデルが含まれています。
豪華7種類!

PBR Fantasy staff/Demo scene/Demo PBR  Fantasy staffシーンで確認できます。

f:id:Raspberly:20210628231100p:plain

 

 

White mage spells

こちらが本体。

White mage spells/Demo scene/white mage spells demoシーンで全部のエフェクトを確認できます。
(モバイル用の軽量版もあります)

f:id:Raspberly:20210629005258g:plain

f:id:Raspberly:20210629005317g:plain

f:id:Raspberly:20210629005345g:plain

エフェクトは全部で10種類です。

 

 

 

使用例

付属のMaterialを使って独自のエフェクトを作ってみました。

f:id:Raspberly:20210629014904g:plain

光の十字架と衝撃波に使用しています。

 

衝撃波

衝撃波についてはこちらのMaterialが最適です。

f:id:Raspberly:20210629015022p:plain

Rendere ModeをMeshにし、MeshはQuadにします。
あとは、Color over LifetimeとSize over Lifetimeで透明度と大きさが変化するようにしたら完成です。

f:id:Raspberly:20210629015308p:plain


十字架

光の十字架はこちらのMaterialを使いました。

f:id:Raspberly:20210629015545p:plain

Render ModeはStreched Billboardにし、Length Scaleを調整して細長くしています。

f:id:Raspberly:20210629103337p:plain

具体的な設定はこちらを参考にしました。

www.youtube.com

 

 

 


粒子エフェクトについてはこちら

raspberly.hateblo.jp

 

 

 

URPに対応してみる

専用のサポートパッケージアセットを導入することでURP/HDRPに対応できます。

 

必要なパッケージのインポート

インポート時、Unityのバージョンによって必要なパッケージが異なります。
今回はUnity2020を使用しているので、「Unity 2020+ URP and HDRP .unitypackage」を選択。

f:id:Raspberly:20210629010813p:plain

 

 メニューバーからTools/RP changer for Hovl Studio assetsを選択

f:id:Raspberly:20210629011325p:plain

変換用のウインドウが表示されるので、Universal RPボタンを押します。

f:id:Raspberly:20210629011447p:plain

これで完了です。URPでも表示されました。

f:id:Raspberly:20210629020711p:plain



 

 

 

まとめ

・White mage spellsは白魔法系エフェクトアセット
・エフェクト、アイコン、杖の3つが含まれている
・サポートパッケージアセットを用いるとURP/HDRPに対応できる

 

 

以上です。

 

 

他のアセットの紹介記事はこちら↓

raspberly.hateblo.jp

 

 

 

※本記事にはAssetStoreアフィリエイトリンクが含まれています。

他、間違っている箇所、わかりにくい所がありましたらコメントにお願いします。