Unity 2Dライトについて

お久しぶりです。またもやガナリヤです。
最近はバイト先でうまく教えられなくて辛い毎日です。
もっとうまく教えたいものですね・・・・

現在けもふれパズルのリファクタリングを行うためのクラス構造を考えており、することが特に今はないため、Unityを再び触っています。
去年はC#の基礎と、使い方もわかっていないのに、インターフェースとかTのtypenameとかをやってたためUnityがさっぱりわかってませんでした。
今、久しぶりに触ってみると多少わかるようになっており、時間が立つのは早いものだと感じました(もう三年生になってしまうのですね・・)

Unity2Dにおいて、画像を光らせる方法を模索したので自分用にここでまとめておこうと思います。

1.Post Effect
現在のUnityのバージョン2017では、画面に行うエフェクトを使うためには、Unity公式が配布しているunity post processing stackというアセットがあります。
これは、調べたところによると、Unityのエディタでフレームとして出力したあと、post Processing stack が、それを更に加工して出力しています。
つまり、出来上がったものをさらに、調味料とかを入れて完成させているわけですね・・・(わかってない)
使い方としては、
1.アセットのダウンロード
2.メインカメラにPost Processing Behaviourをアタッチ
3.プロジェクトのcreateからPost Processing Profileを作成
4.PostProcessingProfileをメインカメラのPostProcessingBehaviourにアタッチします。
これであとは、PostProcessingProfileをちょちょっと弄るだけで、いろいろな画面エフェクトが行えるというわけらしいのです。
今回は、Bloomを使用しますが、それはこのあとに記述していこうと思います。

2.Emission
Unityには
・シェーダー
・マテリアル
と言うものがあるらしいのです。
シェーダーは、Unity内のゲームオブジェクトのレンダリングの際に、どのように表現するかを記述するらしいのです。(表面をどれくらい光らせるか、模様はどうするかなど・・・)
マテリアルは、シェーダーやSpriteなどを含み、ゲームオブジェクトの属性としてアタッチする際につけるらしいです。
つまり、マテリアル=シェーダー+テクスチャ+色とか・・
の上記の式が成り立つはずです。

そして、EmissionはシェーダーであるStandardSharderの項目に含まれており
「その物体がどのくらいライトを反射し、他に影響をあたえるか」
を表しています。
Emissionが高いほど、自分の色を光らせて周囲の物体に影響をあたえることができるのです!(3D)

ん・・・・・?Diffuseシェーダーとは何が違うねん・・?

調べたところによると、
Emissionは、他にライトがなくてもある程度光る(自分の持つColor+Emissionのため)
Diffuseは、他にあるライトを反射して、初めて光る
という違いのようです。

このEmissionとDiffuseというシェーダーを使えば光らせられる!
・・・と思っていた時期が僕にもありました。
3Dではこの方法でうまく行ったのです・・・
しかし、2Dでは、ライトのレンダリングの関係なのか
EmissionでもDiffuseでも、オブジェクト自体のみが多少光り、他の物体に何も影響を与えます!
ああいけません!(ピングー)

そこで次の方法を考えました。

3.Point Lightを使う
 結局ライトを使えばよいのではという発送に至りました。
Unityではライトを簡単に使うことができます。
Create→Lightで自分の好きなライトを選択すればシーンに配置されます。
Lightの種類はたくさんありますが、だいたい使うのは2つです。
一つ目はDirectionalLight、これは太陽光などの、どの角度なのかはあまり関係なく、シーンに配置すれば、すべての場所が明るくなります。基本光りとして使えますね・・
二つ目は、PointLight、これは、懐中電灯などの、ある一定の範囲のみを明るくするときに使用することができます。

PointLightを使えば特定のものを明るくできる!
そう思っていたじk(ry

僕の作りたいゲームはスマホ向け・・・
しかも、PointLightを多分50個ほど生成することになります。
これは無理だぁ・・・

4.Emission+PostProcessingEffect
最終的にこの内容に至りました。
シェーダーの項目であるEmissionと、PostProcessingに含まれているBloomを使用します。

まず、Emissionを1以上に設定してオブジェクトを白く光らせます。(この時、エディタ上では、HDRと表示されます。HDRは、物体の表示するRGB(255,255,255)の明るさの範囲を超えているよ!、という意味で、HDRにすることで、普段は表現できない明るさを表現することができます。この表現できない明るさが、他の物体に影響を与えるということらしいです(3D))

Emissionを利用することで、オブジェクトが少し白く光りました。
そこにPostProcessingのBloomを使用します。
Bloomは、すでに描画されたフレーム内の白色に近い部分を抜き取り、白色の部分をぼやかして乗算することで、まるで光っているような表現を行うことができます。
Intensity(光の強さ)やtherouseなんとか(光らせる白色の閾値)を設定することでどのぐらい光らせるかを決められます。

Emissionでオブジェクトを少し白く光らせ、Bloomでそれをぼやかすことで、まるでオブジェクトが自分で発光しているかのような表現を行うことができそうです。
この方法で新しいスマホゲームを作ってみようと思います。

わかりづらい記事かつ、情報もあやふやですみません。Unity初心者のため、まだ仕組みがよくわかってません。
いずれ画像も追加していこうと思います。

つたない文章でしたがお許し下さい!
ガナリヤでした!

次期ゲームジェネレーター(仮) について少し(部員向け)

サバです。

最近は次期ゲームジェネレーター向けにしこしこコーディングしてました。

ゲームジェネレーターというのは学祭の際にゲームを一覧表示にして起動までしてくれるあの便利ソフトのことです。今の院生の先輩、通路さんが2年前に作成してくださいました。

これの改良版を作ろうということで、今のところはこしょう氏がUIの作成、私がファイル管理の作成を行っています。進捗はよくわかりません!(がばがば計画性)

そんでやってたらなんかよくわからなくなったので、TNPのグーグルドライブにぶん投げといたんで暇な人は見……たら頭を痛くするし、暇でない人も頭を痛くするのでなるべくご覧にならない方がいいかもしれないです。(パスは 共有フォルダ>資料 内です)

ソースにコメントはないものだと思ってください。メイン関数にSiv3DのGUIを使った超簡易版のジェネレータ()を試しに作ってあります。

ああ、言い忘れました。環境は VS2017 Community C++ と Siv3D August 2016 v2 です。

Siv3DはVS2017を推奨していませんが今のところ問題がないのでこの組み合わせです。

 

新キャラ登場?

 どうも、初めまして。2年次の和紙という者です。

 新しいブログが仮設立され1ヶ月が経とうとしている中、私も新たなTNPブロガーとして記事を書いていきますのでよろしくお願いします。
 多分この堅苦しい話し方もすぐに崩れてしまうと思うのでご容赦ください。

 

 それでそれで、他の方々が今までと変わらず、月末報告会の報告やコミケの話、プログラミングの話等々、真面目な話をしてくれると思いますが。
 そんな中私はどんな記事を書いていくのかと言いますと…

 ゲーム・娯楽の話をしていこうかなと思っています。

 内容としましては、私が最近やっている、盛り上がっているゲームの話ですねー。
 本当はこういう話をTNPのイメージキャラクターである”TNP子”になりきって、某バーチャルユーチューバー的なことをしたかったのですががが
 どうやらブログの執筆者が表示されてしまうとのこと。
 流石に、記事上部に 投稿者:和紙 とハッキリ記載されているのに…

「こんにちは!TNP子だよー!今日はね、最近話題の”どうぶつタワーバトル”をやっていくよ!きゃは!」
「あー、じゃあここにゾウさんの鼻をひっかけてー…、あれ、これ角度微妙j(ry あ゛あ゛あ゛あ゛!!!待って行かないで、あ゛あ゛あ゛あ゛!!ソ゛ウ゛さ゛ん゛!!!!!」

 とかしてもしょーもないので断念。
 正直、キャラぶち壊してなりきりたかったですはい。
 まあそれでもやってほしいという意見があればなりきるかもしれません。

 というわけで早速いろいろ書いていきたいのですが、まあ初回なので内容の方針だけで終わりにしようかなと思います。
 では今回はこのへんで、それでは。

 

 

 

 具体的な内容の話を全くしていませんでしたはい。
 こんな調子ですがもう少しだけお付き合いください。
 では話していくゲームですが、コチラになります。どん

 

 

 はーい、これまた最近話題の”アズールレーン”ですねー。
 美麗なグラフィックと可愛いSDキャラたちを愛でるスマホの横スクロールシューティングゲームです。
 公式サイトのURLをこちらに。
 アズールレーン公式サイト http://www.azurlane.jp/ 
 まあ細かい仕様とかシステムの話はおいおいしていくとして、とりあえずチュートリアルを進めて初期艦を決めましょう。

 

 TNP子のアカウントを作り、初期艦に選んだのはラフィー!
 かあいいですねー、今後実装されるであろう彼女の改造にも期待していきましょう。
 で、ちゃっちゃとアマゾンの指示に従ってチュートリアルを終え、いざ、建造と行きましょう!
 (ちなみに、チュートリアルで引いた2人は、アマゾンとシュロップシャーでした。確定?)
 手元にあるキューブは5個なので特型艦建造を2回行いますよー!
 では…

 1回目どん!

 

 おおー!ロンドンですね!
 前衛火力バフをもった優秀なアタッカーです!
 今後はスタメンで大活躍してくれるでしょう。
 全体的に落ち着いた風貌なのに下は素足でちらりと見えるヒモがGood!

 いい出だしだと思います。
 ではこのまま2回目も特型艦建造で、ゴー!

 

 

 

 

 ……………

 えーっと、良いオチが付いたところで今回はこの辺で暇としましょう。

 

 少しずつになってしまうとは思いますが、このアカウントで頑張っていきたいと思います!
 (でももしかしたらイベントとかの関係で次回から私の本アカをやっていくかもしれません…)
 サーバーは”鹿児島”、UID:805400276です!
 鹿児島鯖のみなさんよろしくお願いします!

 あ、あとあと、アズールレーンの話だけじゃなくて、そのうち”ポケモンウルトラサンウルトラムーン”の話もしていきたいなぁと思ってます。
 ではではー。

 

 P.S.
 サンディエゴは対空最強クラスの性能を持った優秀な軽巡艦です。
 が、あまりの排出率とそのキャラクター性によりネタキャラという位置づけになっております。
 いつか来るとは思っていましたがこんなに早く来るとは…。  

けもフレパズル体験版

 

ついに12月になってしまいましたね・・・今年ももう終わりですか・・
まるで成長していないガナリヤです

10月後半から作り始めていたけもフレパズルというゲームがようやく体験版として形となったので紹介させて下さい。


このゲームは上から降ってくるブロックをお互いに落とし合いフレンズのみんなで切磋琢磨し合うというパズルゲームです(まだ博士とミミチャンしかいません・・・悲)
最初は、ブロックを落とす前に、自分でブロックを組み合わせて自分でブロックを生成するというゲームだったのですが、コレが非常にプレイしているときに不快に感じ(なぜ気づかなかった)
なかなか考えることが出来ないゲームになってしまいました・・・
そのため、ブロックを一つずつしか落とせないように変更しました
すると、階段積みで安定勝ち出来るようになってしまいシステムのガバガバさが露呈してしまいました。

今回のコミケではこちらの動画のバージョンが含まれると思います。
なんとか、次回のコミケまでには
・GUIの強化
・CPUの作成
・システムの根幹の改善
・ストーリーの作成
を頑張っていこうと思います

今年の一年生は非常に真面目な方ばかりで、既にクオリティの高い作品が続出しています(しゅごい)
止まるんじゃねえぞ・・・

ガバガバ落とし穴

お久しぶりです
TNPのガバ担当ガナリヤですぞ
最近良く思うですが、ガナリヤのブログの書き方とか、キャラがブレブレですね・・

今回書こうと思ったのは、プログラミングでのクラスで、
参照自体を返すメソッドを作ればいいというのをすっかり忘れていたからなのでした・・・
奥底にあるクラスメンバからひっぱりだすために
どんどん細かいクラスメンバにget(),set()を全て作っていました・・
無茶苦茶めんどくさいし、クラス構造がガバガバになってしまう・・(手遅れ)
その時、サバニキのありがたい言葉を思い出したのです。
「クラス内のメンバの参照を返すメソッドがあるんやで」

・・・ファ!?
やべえよやべえよ(C++の使い手への厚い尊敬)サバニキの言葉を忘れないようにソースを自分なりにまとめようと思います

 


class A{
public:
     void getReferenceB(){
          return b;
     };
private:
     B  b;
};

class B{
private:
   int b;
};

参照を返せるメソッドを作っただけで、ソースコードが大分スッキリになりそうです!
リファクタリングとエラーまみれや。

ガナリヤでした!

新TNPサイト仮設立

初めましての人は初めまして!お久しぶりの方はお久しぶりです。
秋田大学2年生TNP所属ガナリヤです!

今回の投稿ではテスト投稿を兼ねつつ、新しいTNPサイトのテスト設営を兼ねています!このサイトでは、これまで別々だったHPとブログを統一し、また、ゲームジャムなどで作成した一部の作品の紹介ページ、ダウンロードページを作るために作成されました。

まだ、私ガナリヤが、Web言語にあまり詳しくなく、美的センスがボロボロでCSSが書けないため、WordPressのテーマを今回使用しています。

折を見て、どんどん改築をしていこうと思います。

 

よろしくお願いします!