Study Works

YuukiHiraiの勉強したものを上げていきます。

Live2D Unity導入方法まとめ

今回は、Live2DをUnityに導入の仕方をまとめていきます。

実際の導入方法は公式のドキュメントにて詳しく解説されていますが、今回は少し掘り下げた導入方法を解説していきます。

Unityでグリグリ動かしてみよう - Live2D Cubism 2 マニュアル

しかし、公式のドキュメントではモーションの導入方法があまり解説されていませんでした。

 

1、実装の仕組み

naotaroさんのブログにてLive2Dの導入の仕組みを解説しています。

より詳しくLive2Dを実装していきたいと考える人はこちらのブログを参考にすると良いと思います。

Live2DのUnity版でシンプル実装 - Qiita

 

2、ジョーカースクリプト

Live2DをUnityで導入するうえで一番手軽に出来ると思います。

サンプル付きで難しい設定をしなくても手軽に実装することができます。

Live2Dを使ってみよう - ジョーカースクリプト|Unityで動くノベルゲーム開発環境

 

3、参考書
これからLive2Dを実際に使っていきたいと思う方はこなべさんが執筆したこの書籍を参考にすると良いです。

この書籍ではモデルの使い方からアニメーションの作り方やそれらの実際の運用方法が解説されています。

私自身もLive2Dを使う上でとても参考になった書籍です。

Unity5+Live2D ノベル&アドベンチャーゲーム開発講座 (SMART GAME DEVELOPER)

Unity5+Live2D ノベル&アドベンチャーゲーム開発講座 (SMART GAME DEVELOPER)

 

 

まとめ

現在Live2DはとてもUnityと相性が良く、プログラマでなくてもデザイナーがアプリを制作できる良い環境になっています。

これからのゲーム業界において「プログラマだから~出来ない」「デザイナーだから~できない」といった考え方が通用しなくなると私は思います。

なので、あまりに枠に囚われすぎず様々技術を習得することが大切だと私は考えています。

 

 

 

初心者向けUE4エフェクトの作り方 炎

今回作成するエフェクトは炎のエフェクトです。

youtu.be

↓のUnityのエフェクト本を参考にUE4.11で再現してみました。

www.shoeisha.co.jp

1、エフェクトで使用するテクスチャを用意します。

今回は私が制作したテクスチャを使います。
(自由に改変、使用してもらって構いません。)

↓ダウンロード先

Textures_Fire

 

2、これら三枚のテクスチャをプロジェクト内にインポートします。

 

3、それぞれのテクスチャよりマテリアルを作成します。

f:id:yuukihirai0331:20160516220155p:plain

 

4、それぞれのマテリアルを開きます。

f:id:yuukihirai0331:20160516220714p:plain

このような画面が出ます。

 

5、画面左下の詳細パネルのブレンドモードを「加算」にし、

シェーディングモデルを「Unlit」にします。

f:id:yuukihirai0331:20160516221142p:plain

今回のマテリアルにはアルファ値を加えるため加算にしています。

そして、エフェクトにはシェーダーをかけないようUnlitにしています。

 

6、画面右上のバレットより「ParticleColor」をマテリアルノードにドラッグ&ドロップします。

f:id:yuukihirai0331:20160516223617p:plain

ParticleColorはエフェクトの色彩を変えるために用意します。

 

7、Mキーを押しながら左クリックして「Multiply」を出します。

f:id:yuukihirai0331:20160516224110p:plain

Multiplyは2つの値(A,B)を掛け合わせます。

 

8、これらを使い、図のようにノードを組みます。

f:id:yuukihirai0331:20160516224717p:plain

 

9、画面左上の「適用」を押します。

f:id:yuukihirai0331:20160516224940p:plain

 

10、それぞれのマテリアルごとに4~9を行い、3つのマテリアルを作成します。

 

11、「パーティクル」を作成します。

名前は「P_Fire」にしておきます。

f:id:yuukihirai0331:20160516225552p:plain

 

12、P_Fireを開きます。

f:id:yuukihirai0331:20160516230000p:plain

 

13、炎の原型を配置します。
Required」を選択し、「Texture_Aura」で作成したマテリアルを選択します。

f:id:yuukihirai0331:20160516230224p:plain

これで表示されるパーティクルに作成したマテリアルを設定しました。

 

14、炎の密度を増やします。

Spawn」を選択し、「Rate→Distribution→Constant」を「40」に設定します。

f:id:yuukihirai0331:20160516231230p:plain

Rateは1秒間にX個出現させるのかを設定できます。

 

15、炎が自然に消えていく感じにします。

Lifetime」の「Min」と「Max」を「0.5、1.2」に設定します。

f:id:yuukihirai0331:20160516232145p:plain

Distribution Float Uniformとは最小値と最大値のうちからランダムに値を設定します。

 

16、さらに自然な形に整えていきます。

Initial Size」のStart SizeMax[50,0,50]にし、Min[25,0,25]にします。

f:id:yuukihirai0331:20160517093915p:plain

これで縦と横のサイズを50~25の間のランダム値にすることで不自然さが多少解消されました。

 

17、炎の色彩を加えていきます。

Color Over Life」を選択し、「Constant Curve」の「Points」を追加して0~3を作ります。

f:id:yuukihirai0331:20160517100254p:plain

 

18、図のように0~3に設定していきます。

0はアルファ値を0に設定します。

f:id:yuukihirai0331:20160517102526p:plain

 このようにすることで時間の経過に伴い、黄色から赤に色が変化します。

 

19、炎のサイズを少しずつ小さくする。

エミッタ画面にて「Size」より「Size By Life」を選択します。

f:id:yuukihirai0331:20160517152800p:plain

 

20、「Size By Life」を選択し、「Out Val」を図のように設定します。

f:id:yuukihirai0331:20160517161318p:plain

Pointsの0にOutVal[1,1,1]を入れ、Pointsの1にOutVal[0,0,0]を入れることで出現時からだんだん小さくなるようになっています。

 

21、炎の出現位置をランダムにする。

エミッタ画面にて「位置」より「Initial Location」を選択します。

f:id:yuukihirai0331:20160517162223p:plain

 

22、「Initial Location」を選択し、「Max」と「Min」を設定します。

f:id:yuukihirai0331:20160517162539p:plain

Start Locationにより、炎の出現位置をランダムにすることで自然な感じになりました。

 

これにより、炎のメインとなる部分は完成しました。

これからアレンジを加えていきます。

 

23、炎に舞う火の粉を作っていきます。
エミッターからエミッタを複製します。

f:id:yuukihirai0331:20160517163812p:plain

 

24、火の粉の原型を配置します。

13と同じく「Required」を選択し、「Texture_Par」で作成したマテリアルを作成します。一応、わかりやすくするため最初に作った炎の原型は非表示にします。

f:id:yuukihirai0331:20160517164345p:plain

 

25、14と同じように「Spawn」を選択し、「Rate→Distribution→Constant」を「100」に設定します。

 

26、15と同じように「Lifetime」の「Min」と「Max」を「1.0、2.0」に設定します。

 

27、「Initial Size」のStart Size[6,6,6]にします。

f:id:yuukihirai0331:20160517165055p:plain

 

これにより炎の火の粉が舞う演出が出来ました。
最後に炎の煙を作っていきます。

 

28、煙の演出を加えていきます。

23と同じく炎のメインを複製し、13と同じくRequired」を選択し、「Texture_Smoke」で作成したマテリアルを選択します。

 

29、14と同じようにSpawn」を選択し、「Rate→Distribution→Constant」を「」に設定します。

 

30、15と同じように「Lifetime」の「Min」と「Max」を「1.0、1.2」に設定します。

 

31、Initial Size」のStart Size図のように設定します

f:id:yuukihirai0331:20160517171028p:plain

 

32、Initial Velocity」の「Start Velocity図のようにします。

f:id:yuukihirai0331:20160517171446p:plain

 

33、Color Over Life」を選択し、「Alpha Over Life」の「Points」を追加して0~2を作り、図のように設定します。

f:id:yuukihirai0331:20160517172506p:plain

 

34、Size By Life」を選択し、Points」の0~1を図のように設定します。

f:id:yuukihirai0331:20160517173030p:plain

 

これで煙の演出が完成しました。

f:id:yuukihirai0331:20160517173536p:plain

 

まとめ

・「Required」は原型となるパーティクルの設定を決めます。

・「Spawn」は出現数などの設定を決めます。

Lifetime」は生存時間の設定を決めます。

Initial Size」は出現時のサイズを決めます。

Initial Location」は出現時の位置を決めます。

Color Over Life」は時間の経過に伴い、色彩の変化を設定できます。

Size By Life」は時間の経過に伴い、サイズの変化を設定できます。

・"Distribution Float Uniform"は最小値と最大値を設定することでそれらの値のランダム値を設定できます。

 

お疲れ様です。

参考にしていただきありがとうございました。

今までYouTubeに上げてきたゲーム動画まとめ

第5回 UE4ぷちコン に応募した作品です。

historia.co.jp

 

全国のゲーム部主催のGameJamにて制作したゲームになります。

www.youtube.com

 

内定先で開かれたMiniGameJamで制作したゲームです。



今後も開発したゲームはYouTubeに上げていきますのでよろしくお願いします。

 

 

初心者向けUE4ゲームの作り方

以前、勉強会で使用した「初心者向けUE4ゲームの作り方」の資料です。

 

f:id:yuukihirai0331:20201227144132j:plain

f:id:yuukihirai0331:20201227144137j:plain

f:id:yuukihirai0331:20201227144142j:plain

f:id:yuukihirai0331:20201227144148j:plain

f:id:yuukihirai0331:20201227144153j:plain

f:id:yuukihirai0331:20201227144158j:plain

f:id:yuukihirai0331:20201227144203j:plain

f:id:yuukihirai0331:20201227144208j:plain

f:id:yuukihirai0331:20201227144213j:plain

f:id:yuukihirai0331:20201227144219j:plain

f:id:yuukihirai0331:20201227144223j:plain

f:id:yuukihirai0331:20201227144230j:plain

f:id:yuukihirai0331:20201227144236j:plain

f:id:yuukihirai0331:20201227144242j:plain

f:id:yuukihirai0331:20201227144246j:plain

f:id:yuukihirai0331:20201227144252j:plain

f:id:yuukihirai0331:20201227144256j:plain

f:id:yuukihirai0331:20201227144301j:plain

f:id:yuukihirai0331:20201227144306j:plain

f:id:yuukihirai0331:20201227144312j:plain

f:id:yuukihirai0331:20201227144317j:plain

f:id:yuukihirai0331:20201227144323j:plain

f:id:yuukihirai0331:20201227144328j:plain

f:id:yuukihirai0331:20201227144335j:plain

f:id:yuukihirai0331:20201227144340j:plain

f:id:yuukihirai0331:20201227144346j:plain

f:id:yuukihirai0331:20201227144351j:plain

f:id:yuukihirai0331:20201227144356j:plain

f:id:yuukihirai0331:20201227144401j:plain

f:id:yuukihirai0331:20201227144405j:plain

f:id:yuukihirai0331:20201227144410j:plain

 

 

これが出来たらalweiさんのハンズオン資料を読むと良いでしょう。

 

unrealengine.hatenablog.com