ゲームジャム(センター試験直前編)

はじめに

 

 お疲れ様です。2年次のまんじゅうです。今回はセンター試験直前の数日が休講日であったため、1月16日(木)にゲームジャムを開催しました。
約1ヶ月程遅れてしまったので、すっごく今更な報告となります。申し訳ありません(見てる人どれだけいるか分かりませんが)。

 今回のお題は、「太陽系」、「エネルギー」、「瓦」と、センター試験直前ということで「受験戦争」を追加し、合計4つ設定しました。

 今回も参加者からの成果物の紹介や感想を貰っているので、最後まで見て頂けたら幸いです。

成果物紹介

1年次 ハイブリッジ

開発環境 DXライブラリ 
テーマ:瓦

 エンターキーを連打してパワーを溜めて、瓦を割った数を競うゲームです。システムは出来たと思うのでグラフィック面を今後の課題として頑張ります。

1年次 なりょー

開発環境 DXライブラリ 

 どうも。1年次のエターナルデスサイズです。嘘です。なりょーです。
 今回のゲームジャムではunity3Dを使ってエー〇コンバットのような操作を実装したかったのですが、 自キャラが旋回すると前後上下左右がずれていくという問題を残したまま終わってしまいました。
 自キャラの上、前、右に適当なオブジェクトを置いてそれとの相対ベクトルを取ればよくね?と思いつきましたが試していません。また、制作当初はAddForceを使って瞬間的な加速の実装も目指していましたが、慣性の効き具合が納得いかなくてやめました。どうするといい感じになるのか、教えてエロい人。

1年次 UMA

開発環境 Unity

 「カ〇ジの沼」です。音声素材については著作権ガン無視なので未来永劫公開されることのないプロジェクト・・・とのことです。

2年次 まんじゅう

開発環境 DXライブラリ 
テーマ:太陽系、エネルギー

 今回はキーを連打する、タイミング良くキーを押す(2種類)の3種類のミニゲームをこなして、それらで貯めたパワーで太陽系の星々を破壊していく、という感じのゲームを作成しました。○ービィの○ガトンパンチを彷彿とさせますね(似せたつもりは無かったのですが、気がついたらこうなってました。許せサスケ)。
 システム面は完成しましたが、グラフィック面がしょぼい(背景のループ処理位しか実装できていない)ので、今後はちゃんと楽しめるゲームに仕上げていきたいと考えています。

2年次 ズッキー

開発環境 ブレンダー

 ブレンダーを使った初めての作品です。あまり複雑でないもの(ツール?)の中でポケモンのコオリッポを作成しました。
作業を通してブレンダーの基本的な操作を学べたと思います。

3年次 いっちー

開発環境 DXライブラリ 
テーマ:受験戦争

 適度に休憩を取りながら受験勉強に励み、志望校合格を目指すゲームです。
 遊び方は簡単で、勉強や睡眠などの行動を選択してストレスや眠気が限界を超えないように勉強量を増やしていくだけです。
 勉強以外の行動は1回しか選択できず、ストレスや眠気が限界の状態で勉強を選択すると、倒れてしまいゲームオーバーとなります。

 各行動時のパラメータ変化
[ 勉強 ]  勉強量:+1 ストレス:+2 眠気:+1
[ 睡眠 ]  ストレス:-2 眠気:-2
[ お風呂 ]  ストレス:-1 眠気:+2
[ マンガ ]  ストレス:-1
[ お菓子 ]  ストレス:-1 眠気:+1
[コーヒー]  眠気:-2

最後に

 やっぱりゲームジャムはいいですね(いつもの)。
こういう機会があれば初めて触る環境や技術も試そうと思えますし、なにより長時間制作活動に専念できる上に分からない点は他の人から教えて貰えるので、作業が捗ります。
 また、今回は人数が多めだったので、作業中は部屋に活気があったように感じました。次回以降もこのくらいの人数は欲しいなあ(願望)。

 それと、今回はお題を考えずに自分が制作したい物を作っている人が多かったですが、個人的には全然アリだと思います。理由としては、一番大きいのは参加者自身のモチベが上がりやすいからですね。

 他にも色々理由っぽいのはありますが、長くなるので今回は割愛します。この辺りは近いうちにポエム枠の記事で気持ちを語るかもしれません。

 最後まで見て頂きありがとうございました。また次回の報告で会いましょう。

2018年5月活動報告

 BLAZBLUE_CROSS_TAG_BATTLEを過って購入した3年次Bヒロです。

 先日は『TNP5月の月末報告会』を開催しました。

__________________________________________________________________________

 制作者:いっちー(2年次)

 迷路などで使えそうなフィールドグラフィックを制作していただきました。右下には

マップ画面を表示しています。

 今後はさらに遠近感をだしたいとのこと。

__________________________________________________________________________

 制作者:YUTA(2年次)

 UFOキャッチャーゲームを制作してくれているようで、画面奥にはミラー、

右上には天井視点、左上は景品出口といったところでしょうか。

 見やすいグラフィックで完成が楽しみな作品です。

__________________________________________________________________________

制作者:Golden_River(副会長)

 『スタイリッシュ・シミュレーション・アクション・エアホッケーゲーム』

 現在制作途中だそうで、夏コミまでには完成させたいとのこと。

__________________________________________________________________________

制作者:Bヒロ(3年次)

 『未定』

 敵キャラを避けて、右下を目指すためだけのゲームを今回は作成しました。

 ゲームバランスなどの、調整後RPGアツマールに投降予定

__________________________________________________________________________

 発表者:こしょう(会長)

 UnityでLeap Motionを見せていただきました。

 カメラにより、手を認識して、手先から立方体などを出したりなど、興味深いものを紹介

していただきました。

__________________________________________________________________________

 その他にも、TNP子Vtuber企画(うおちー(2年次):TNP子のモデリング)、BGM制作、

イラスト制作などなどの発表もありとてもMARVELOUSでした。

 今月は初年次講義が始まったりとTNP新体制として動き出した月でした。

 6月には新入生歓迎会などイベントを開催予定です。

MMD4MecanimのMacでのエラーについて

 
 お疲れ様です。ガナリヤです!
 UnityでMMDモデルを使用したいと考えたのですが、なかなかうまく行かなかったため、忘れないうちにこちらに記しておこうと思います。

UnityでMMDモデルを読み込む方法

①Blenderで一度取り込み,.blendファイルを読み込む
 MMDのモデルデータは、pmx形式になっています。
 しかし、Unityで対応しているモデルデータ形式は
 ・fbxファイル(Unityではこれが普通。ただし、マテリアル、テクスチャが読み込まれないなどめんどくさい)
 ・blendファイル(Blender)
 が主にあります。以前Splatoonプロジェクトを行ったときはfbx形式を使用していました。
 今回は、BlenderでMMDモデルを取り込むため、fbx形式、blend形式のどちらでも良かったのですが、なぜかどちらもうまく行きませんでした。
 fbx形式では、マテリアルとテクスチャが取り込まれず
 blend形式では、マテリアルとテクスチャは取り込まれたものの、色の設定が行われておらず、表示位置から少しずれていました。
 Unity2017の最新版で、うまく対応してないのかもしれません。
 今回はこの方法でうまくいかないため、新たな方法②を使用しました。

②MMD4Mecanimを使用する
 MMD4MecanimはNoraさん(@Stereoarts)が開発した、Unity上でMMDモデルであるpmx形式を直接読み込み、fbx形式に出力できるというすごいツールです!
 
 なお、MMD4Mecanimの導入は他のサイトさんをご利用ください。(うまくかけないため)

 自分もMMD4Mecanimを導入したのですが
 Processボタンを押してもうまく行きませんでした。
 
 そこで、うまくいかない理由は以下のとおりであると考えました。
 「自分の開発環境がMacであり、MMD4MecanimはWindowsの機能を利用するため、うまくいかない」

 そこで、上の画像にもあるのですが、「Wine」というLinux/Macで動作するアプリを使用しました。これは、Mac上で、Windowsのソフト、機能を使用することができるというアプリです。
 このWineをインストールしてもうまく行きませんでした。(後に確認したところ、Wineはなくても、最新のMMD4MecanimはMacでも動作するようです。) 

 じゃあなんで行かないのじゃぁ・・・(のじゃロリ風)

 圧倒的壁に立ちはだかったため、開発者であるNoraさんに質問をさせていただきました。
 質問をさせていただいたところ、UnityのEditorログにエラーが載っているとのことでした。

 確認をしてみたところ
「 Reason: Incompatible library version: pmx2fbx_275 requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0
Processed pmx2fbx.」
 という表記があり、libiconv.2.dylibという動的ライブラリのバージョンが古いため作動していないということでした。

 libiconvってなんやねんって思い、検索してみたところ、要約すると、文字列の文字コードを変換するライブラリでした。
 ・・・・・なるほど、よくわからん。
 
 とりあえずlibiconv.2.dylibのバージョンが8になればいいやと思い、色々とサイトを調べ、継ぎ接ぎ継ぎ接ぎ実行した結果うまく行きました。
 方法としては
1.XCodeのコマンドラインツールが必要なため、インストール
2.macportsというパッケージ管理ツールをダウンロードしてインストール(homebrewに近いものです)
3.ターミナルに「port rev-upgrade」と入力し、libiconvをアップデート(うまくいかない場合は先頭に sudo とつけて、管理者権限で行ってください)
4.ターミナルに 「brew install libiconv」と入力し、libiconvをこれでもかとアップデート

 上の方法で、自分でもよくわかっていませんが、なんかうまくいきました。うまく行った結果は以下の画像です。

 
 かばんちゃんかわいいよハァハァ・・・

 よくよく考えたら明日テストでした。
 どうしましょう。以上、ガナリヤでした

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初心者のため、まだ仕組みがよくわかってません。
いずれ画像も追加していこうと思います。

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

Top