とあるゲームプログラマの挑戦と敗北の歴史

UE4とプログラミングとmayaとpythonとhtmlとマラソンを中心に情報を発信する元「技術ブログを目指すブログ」から再始動した毎日の日々を発信するブログです。

UE4:第16回UE4ぷちコンに応募しました。

今回もヒストリア様で行われている
UE4ぷちコンに応募しました!
https://historia.co.jp/ue4petitcon16



今回の募集テーマは「みち」ということで、
エンドレスランナー系応募が多い中、ランナー系ゲームを作りました。
f:id:toncrimentan_w:20210920164553j:plain


タイトルは
「真夏のドライビングホリデー -Once Again- 2ndSeason」です。
youtu.be



最初は全く別の作品をつくっていたんです。
たとえばこんな感じの作品。
youtu.be
全く違う作品ですねぇ~


テーマは「みち」なんだから道歩くやつ、
それだけではすぐ飽きて別のをつくりたくなりました。


さて最近は、作品を色々作ろうとしても最後までやり遂げることができず。
途中で辞めちゃうことが多かったです。
でもつまらなくてもいい、納期まで仕上げるんだ!
を目標になんとか無事にやりきることができました。



このゲームの特色は2つ
コース生成 と ダイナミックなカメラワークを実現するためのカメラシステムです。



コース生成について
このように美しいカーブを描いた1本のメッシュデータで構成されています。
f:id:toncrimentan_w:20210920164836p:plain

まず、処理的には、ヒストリアさんのブログ、基本はコレをマネました。
https://historia.co.jp/archives/21842/


そのままやっても美しい曲線にならなかったので
凸凹しないようにもっと細かく割ったりしています。


そして、
道だけではなく壁も作っています。
※実際には透明な壁が存在します。落ちないように
 空洞の中を走っている感じになってるんですねぇ~
f:id:toncrimentan_w:20210920170022p:plain


道については
おわかりいただけるだろうか、
多少お椀型にサイドに膨れ上がっているメッシュをあるくようになっています。
f:id:toncrimentan_w:20210920170333p:plain




カメラシステムについて
こちらがカメラデータ、
サンプリング用のパス、カメラ座標用パス、カメラ注視点用パスを作成し、
キャラクターの位置に一番近いサンプリングパス上の割合を求め、
割合から、カメラ座標用パス上の位置、カメラ注視点用の注視点をもとめ
ダイナミックなカメラワークを実現しています。
f:id:toncrimentan_w:20210920232411p:plain



私が気づいたこと!
下り道ではキャラクターになるべくカメラを近づけ、
地表ギリギリで走ってる感を出すと、疾走感がでます!

下り前、俯瞰カメラ
f:id:toncrimentan_w:20210920170948p:plain

下り中、寝かせてキャラに寄ったカメラ
うぉ~!!
f:id:toncrimentan_w:20210920170906p:plain



時間を入力することで
実行前でも、どのようなカメラが実現されるか確認できる環境を作りました。
(これもUE4のコンストラクションスクリプトのおかげ)
f:id:toncrimentan_w:20210920232625p:plain



これだけ、カメラが動くと操作も難しいので
左スティックではなく、ボタン入力で前進。
レースゲームのような操作方法にしました。
SetControlRotationを利用することで、矢印の向きが前になるようにしました。
これで操作も多少は楽に!
f:id:toncrimentan_w:20210920223739p:plain




エフェクトについて
買ってきた素材の不要な部分を削除して利用してます(笑)
わたしはエフェクトつかえません!
f:id:toncrimentan_w:20210920222740p:plain



以上が、
第16回UE4ぷちコンの振り返りです。
しばらく、最後までやり遂げることが少なかったので、
ひさしぶりに最後まで作ることができて良かった!

面白くなくていい!納期を守ろう!

UE4:一番手っ取り早いエンジンソースコードの取得方法

僕なりに試行錯誤して、
最短でエンジンソースコードを手に入れる方法を見つけたため、
そのメモ書きです。

※正確な取得方法やPerforceを利用し,
 指定バージョンのソースコードにアクセスする方法ではないです

僕なりの試行錯誤手順を明記してあります。



まずは参考にしたお世話になってるヒストリア様のサイト
https://historia.co.jp/archives/231/
こちらも参考にしました。



手順)
・UnrealEngineアカウントとGitHubアカウントの紐づけ
 https://www.epicgames.com/account/connections
 へアクセスし、
 接続>アカウント>GITHUBをクリック
 UEとGitHubを紐づけます。
f:id:toncrimentan_w:20210406235752p:plain

 そして登録したメアドにメールが送られてくるので
 Joinのリンクから進めると、
 UnrealEngineのエンジンソースコードにアクセスできるようになります。
 うまくいくとメールが送られてきます。



・Web上からソースコードを取得する
 https://github.com/EpicGames/UnrealEngineへアクセスし
 Code>DownloadZIPをクリックし取得します。
 (紹介するのは一番手っ取り早い方法です。)
f:id:toncrimentan_w:20210406230513p:plain



・ファイルの解凍
 ダウンロードしたUnrealEngine-release.zipを解凍します。
 これには超時間がかかります。
f:id:toncrimentan_w:20210406230538p:plain



・短いパスの場所へ移動
 次の工程(Setup.batを実行)の際に
 デスクトップで展開するとパスが長くてエラーが出てしまうので、
 短いパスの場所へ移動しておきます。
f:id:toncrimentan_w:20210406231120p:plain



・Setup.batの実行
 Setup.batを実行し完了するまで待つ
f:id:toncrimentan_w:20210406231058p:plain



・GenerateProjectFiles.batの実行
 ここで会社などでUE4を利用している方にはおなじみの
 GenerateProjectFiles.batを実行します。

 でもどういうことかエラーが出てしまいます!!
 でも大丈夫!これはエラーログに従えば解決できます。 
f:id:toncrimentan_w:20210406231020p:plain

 言われた通り
 https://aka.ms/msbuild/developerpacks へアクセス
 (自動的に
  https://docs.microsoft.com/ja-jp/dotnet/framework/install/guide-for-developers
  にリダイレクトされるので)
 ログに従い.net Framework 4.6.2 のリンクをクリックするとー
f:id:toncrimentan_w:20210406231242p:plain

 net framework4.6.2 のダウンロードサイトに移動します。
 (https://dotnet.microsoft.com/download/dotnet-framework/net462

 DeveloperPackをクリックし
 .net framework4.6.2 のDeveloperPackを取得しインストールすれば解決しました。
f:id:toncrimentan_w:20210406231304p:plain



・再びGenerateProjectFiles.batにチャレンジ
 再度GenerateProjectFiles.batを実行すると
 無事UE4.slnのソリューションファイルを作成することができました。
f:id:toncrimentan_w:20210406231407p:plain



UE4のビルド
 ビルドにはかなり時間がかかります。
 実行するとエディタが起動します。
 ※この段階でフォルダ容量が100GBを超えます。
  容量が足りないとビルドが通りません。
f:id:toncrimentan_w:20210406231539p:plain



・プロジェクトの作成
 指定したパスにプロジェクトを作成します。
f:id:toncrimentan_w:20210406231637p:plain

 プロジェクトができました。
f:id:toncrimentan_w:20210406231743p:plain


・プロジェクトのVisualStudioプロジェクトの作成
 メニューバー>ファイル>新規C++クラス
 を選択し何でもいいからクラスをつくることで
 2つ目のVisualStudio(プロジェクトのVisualStudioプロジェクト)
 を作ります。
 ※そして後で無駄に作ったクラスは消しましょう。
  少々変な手順ですが、

 詳細は
 https://learn.unrealengine.com/course/3548019
 の動画を参照のこと
f:id:toncrimentan_w:20210406232021p:plain

 無事プロジェクトができました。
f:id:toncrimentan_w:20210406232253p:plain



・プロジェクトのVisualStudioプロジェクトのビルド
 2つ目のVisualStudioプロジェクトをビルドするとー
f:id:toncrimentan_w:20210406232429p:plain
 プロジェクトのソースコードも含んだエディタが起動します。
f:id:toncrimentan_w:20210406232457p:plain



手っ取り早いとはいえ長かった・・
手っ取り早いには違いないがSSD容量がものすごく圧迫された。

UE4:第15回UE4ぷちコンに応募しました。

今回もヒストリア様で行われている
UE4ぷちコンに応募しました!
https://historia.co.jp/ue4petitcon15


タイトルは
「戦え!ボンバーマンvsエアーマン」です。
f:id:toncrimentan_w:20210405083009p:plain


さっそくですができたものはこちら
youtu.be


テーマは"かわる"ということなので
自身を"気体"に変化できるという無敵能力を持った主人公による
潜入ステルスアクションゲームを開発しました。


かわる。なので最初は
変身スーパーヒーローもので!とか思っていましたが・・


変身するにはしますが、細かく変身と解除を繰り返して
ミッションをクリアする作品を制作しました。



ルームBP)
ダンジョンをつくるのが面倒だったのでー
ドロップし、拡縮するだけで自動で壁と床が生成できる部屋BPを作成しました。
f:id:toncrimentan_w:20210405083911p:plain


やってることとしては、コンストラクションスクリプト
メッシュコンポーネントを追加し編集の段階で壁や床を作るようにしています。
f:id:toncrimentan_w:20210405084117p:plain

StaticMeshComponentを追加ノードを利用して編集毎に追加しています。
f:id:toncrimentan_w:20210405084207p:plain
はたしてUE4では、
こういったコンストラクションスクリプトの使い方で正しいのか?
というとそこは不明。使えるには使えます。
※ライティングのビルドまわりがうまく機能していないかもしれないです。
 これはちょっと調べたほうがが良いかもです。



ワープBP)
ワープコリジョンの位置調整に関してはスプラインコンポーネントの始点と終点に
自動でコリジョン位置が調整されるBPを配置することで対処しました。
(これもコンストラクションスクリプトで行っています)
f:id:toncrimentan_w:20210405085023p:plain



ドロップしてスプラインを編集するとこんな感じ。
(スプラインの編集方法はAltを押しながらエディットポイントを
 調整することで自由にカーブをつくれます)
f:id:toncrimentan_w:20210405085103p:plain



非破壊メッシュ)
オブジェクトの破壊に関しては以前書いた
非破壊メッシュのやりかたのおぼえ書きを参照のこと
UE4:非破壊メッシュのやりかた - とあるゲームプログラマの挑戦と敗北の歴史
f:id:toncrimentan_w:20210405085325p:plain



演出過多)
あまりにもテーマ感が薄かったので
テーマに沿ってる感をわかるよーにしました。
変身UIを表示、変身時カメラが寄るように修正。などなど
f:id:toncrimentan_w:20210405085543p:plain



マテリアル)
変身時に固体から気体に対して徐々に変化するマテリアルをつくり
それをフィーチャーした作品にするよていでしたが。
どうせ一瞬だったりするので、残念ながら小さくに収まっている作品になっています。
それにいちいち長い変身演出見せられても飛ばしたくなる。というのもあり
f:id:toncrimentan_w:20210405090316p:plain
f:id:toncrimentan_w:20210405090023p:plain



レベルデザイン
レベルデザインへの挑戦、
マップ設計のようなところが、製作中とてもおもしろかったです。
ダクト、ターゲット、エネミー、ダメージ床、自動発砲装置といった
多様なギミックがうまい具合にかみ合っている仕様でないと、
ゲームとして面白くならないので、ルールづくりみたいなところは結構大事でした。


うーん、ここは気体にならないとダメージを受けてしまうマップ設計)
f:id:toncrimentan_w:20210405091630p:plain


自動発砲装置にダメージ床でエネミーも・・でもその先にダクトがあるぞ!なマップ設計)
f:id:toncrimentan_w:20210405091829p:plain


ルートによっては敵との戦闘を回避できるマップ設計)
f:id:toncrimentan_w:20210405090729p:plain
そして安全なエリアからターゲットを破壊!
f:id:toncrimentan_w:20210405092112p:plain


ダクトに入ったが最後、ダメージ床なマップ設計)
※これがやりたいためにダクトを通った後は強制変身OFFルールにしました。
f:id:toncrimentan_w:20210405091408p:plain


ダメージ床怖いけど、勇気を出して飛び込めば先に進めるのでは・・なマップ設計)
f:id:toncrimentan_w:20210405092258p:plain



いろいろつくったけど、基本的には俯瞰からのカメラ映像なので、
コンパクトにまとまっちゃってる感はある作品だと思います。

PCがカメラに寄っても問題ないゲームデザインであれば
もうちょっとダイナミックな絵ができたかもしれないですね。
なかなかレベルデザイン業務が楽しい開発でした。

二次創作系のネーミングなのでNGっていわれたら、
しれっとタイトルは変えましょう。(内容ちがうし)

開発中はエアーマンが倒せないのBGMが頭の中で流れていました!

UE4:Udemyで脱初心者!UE4でFPSが作れるようになるチュートリアルを受講しました

Udemyで
脱初心者!UE4FPSが作れるようになるチュートリアル
を受講した際のおぼえ書きです。

https://www.udemy.com/course/ue4fpstutorial/



ジャンプ回数指定
CharacterのJump Max Countを指定することで
連続ジャンプ回数を指定できます。
f:id:toncrimentan_w:20210203164446p:plain



起動時ウィンドウをアクティブにする方法
ゲーム起動後ウィンドウをアクティブにするため
マウスでウィンドウをクリックする必要がありますが、
エディタの環境設定のゲームでマウスコントロールを取得
チェックボックスをいれることで
起動後自動的にウィンドウをアクティブにすることができます。
f:id:toncrimentan_w:20210203164650p:plain



SetTimerbyEventノード
SetTimerbyEventノードのイベントピンからCreateEventノードを作成
することで別のイベントを発行することができます。
f:id:toncrimentan_w:20210203164757p:plain
そのほかの使い方
f:id:toncrimentan_w:20210204160321p:plain



ライントレースのデバッグ表示
DrowDebugTypeをForDurationに変更することで
ライントレースのデバッグ表示をすることができます。
f:id:toncrimentan_w:20210203165031p:plain



ヴィジェットBPのカスタムサイズ指定
スクリーンサイズの右のコンボボックスをクリックすることで
スクリーンサイズを指定することができます。
フルスクリーンでないウィジェットなどで利用することができます。
f:id:toncrimentan_w:20210203165259p:plain
作ったヴィジェットは
コンポーネントを追加からも指定することができます。
意外としらなかった・・
f:id:toncrimentan_w:20210203165337p:plain



変数の詳細設定表示
変数の詳細設定表示(AdvancedDisplay)にチェックをいれると
通常は隠れていて▽をクリックしたときにのみ表示される変数にすることができます。
基本的にはいじらなくてよい変数。
みたいなものを指定することができます。
f:id:toncrimentan_w:20210203165521p:plain



2つのアニメーションモンタージュ
出力ピンが少ないものと多いものが存在します。
レイテント(ディレイ)付きのノードは出力ピンが多く便利です。
f:id:toncrimentan_w:20210203165640p:plain



ポーズのキャッシュ
アニメーションBPではポーズをキャッシュして利用することができます。
f:id:toncrimentan_w:20210203165727p:plain



下半身上半身のアニメーションを別に再生
レイヤードブレンドを利用し
上半身と下半身のアニメーションを変えることができます。
f:id:toncrimentan_w:20210203165930p:plain



タイムラインの特殊な再生方法
直接タイムラインにピンをつながなくても
タイムラインをGetしPlayfromStartをすることで再生することができます。
f:id:toncrimentan_w:20210203170154p:plain



SetLifeSpan
Delay+DestroyActorです。
関数内などでdelayを使えないため利用することができます。
f:id:toncrimentan_w:20210203170238p:plain



ダイナミクスの有効化
Meshのコリジョンコリジョン
コリジョンプリセット:カスタム
CollisionEnabled:CollisionEnabled
ObjectType:Pawn
に変更し
CharacterMovementをStopMovementImmediatelyを実行
MeshのSetSimulatePhysicsを有効にすると
ラグドールな倒れ方をすることができます。
f:id:toncrimentan_w:20210203170425p:plain



ObservedBlackboardValue
ビヘイビアツリーのMoveToで
ObservedBlackboardValueにチェックボックスをいれると
MoveTo中に対象の目的地が変更された場合に目的地を更新するようになります。
エネミーが逃げるプレイヤーに向かって攻めてくるときなどに利用できます。
f:id:toncrimentan_w:20210203170546p:plain



子クラスから親クラスを開く方法
子クラスのスパナをクリックすると
親クラスに移動することができます。
f:id:toncrimentan_w:20210203170753p:plain



サウンドのピッチの変更
サウンドキューのモジュレーターノードを利用すると
ピッチを変更できるようになります
f:id:toncrimentan_w:20210203171016p:plain
またボリューム減衰の有効化にチェックを入れる
と減衰されます。
f:id:toncrimentan_w:20210203171128p:plain



GenerateAbstractClassで配置できないクラスにできるます。
継承専門のクラスなどで利用します。
f:id:toncrimentan_w:20210203171151p:plain



enumによるブレンドポーズ
アニメーションBPでは
enumによって分岐するブレンドポーズを作ることができます。
(例:ピストルポーズ、ライフルポーズなどを分けれる)
f:id:toncrimentan_w:20210204155551p:plain



MapRangeClampedノード
Valueの値がInRangeA~Bの間での割合に応じて
OutRangeA~Bの間での値を出力します。
便利なノードです。
f:id:toncrimentan_w:20210204155910p:plain



Saturationノード
PostProcessSettingノードに
PostPocesSettingsとカメラを入力し
PostPocesSettingsのColorGrading|Global>Saturationをチェック
サチュレーション指定することで画面を暗くする効果を指定することができる。
f:id:toncrimentan_w:20210204160137p:plain



カメラ調整時のTIPS
カメラを右クリック>CameraActorをパイロット
でカメラが見ている視点でカメラ調整をすることができます。
f:id:toncrimentan_w:20210204160443p:plain



カメラの手振れ機能
MatineeCameraShakeクラスを利用することで
攻撃時の手振れ処理などを簡単に作ることがあります。
(オススメ値は画像参照)
f:id:toncrimentan_w:20210204160554p:plain
実行方法はこちら
f:id:toncrimentan_w:20210401004312p:plain
f:id:toncrimentan_w:20210204160730p:plain



出来たやつ)
youtu.be



このコースは最初の方は簡単そうに見えますが、最終的には非常に参考になるコースでした。
プログラマの場合、プログラムには存在しないからといって、
ついつい使わないがちになってしまいそうなイベントディスパッチャ、BPインターフェイス
などを頻繁に利用し、改めて使用方法について理解することができます。
アニメーションBP、ビヘイビアツリー、ポストエフェクト、カメラすべてにおいて新しい発見が一つ以上ありました。

UE4:UE4ぷちコン映像編2nd に参加しました

今回は従来の UE4ぷちコン とは違い、

映像編と題してカットシーン製作ツール、シーケンサを利用した
映像作品を作りました!!


私はエンジニアのためデザインの人間ではないのですが、
なんとか音楽のちからも得て大急ぎで

エモい映像作品をつくることができました。

f:id:toncrimentan_w:20210112215343j:plain



せっかく覚えたスプライトスタジオの知識も利用し
3Dの空間内に2Dのキャラが出現するという表現に挑戦しました。

f:id:toncrimentan_w:20210112215711j:plain


注意が必要なのは
UE4のスプライトスタジオのプラグインの取得方法
スプライトスタジオ6のプラグインを取得するようにしましょう
https://github.com/SpriteStudio/SS6PlayerForUnrealEngine4


マテリアルも変更しました。
すでに売っているアセットを改造して
カメラの手前から近づくと緑のテクスチャに代わるようなしくみに変更しました。
当初はここが見せ所とおもっていました。

f:id:toncrimentan_w:20210112220405j:plain


ワンカットだけ出現されるためだけに
わざわざ500円だしてサンタクロースのアセットを買ってきました。

f:id:toncrimentan_w:20210112220636j:plain


以下応募作品

youtu.be




にしても
みなさんの応募作品がおもしろいです。

UE4:スプライトスタジオを学び始める

UE4でスプライトスタジオを使いたいので


Udemyに唯一あるスプライトスタジオのコースを受講中


講師はおそらくデザイナーが専門というわけではないので、


コースに準じて進めるといい感じの作品が出来上がる。
ではなく、機能の説明を主に学習できる。


それがいい!


最初はずいぶん雑だなとおもったけど
何気に学習になっています。


2日で最後まで終わりそう。



レンダリングしてみた。
f:id:toncrimentan_w:20201218014205g:plain



さらにはサーバーにアップロードしてみた。
https://www.ohguchi.online/Course16/NewAnimation_anime_1_gif.html

UE4:UNREAL FESTxぷちコン 冬のゲームジャムに参加しました

UNREAL FESTxぷちコン 冬のゲームジャム祭り
に参加していました。

「UNREAL FEST×ぷちコン 冬のゲームジャム祭り!」イベント参加方法・配信タイムテーブル - Unreal Engine

たった2日間でゲームを作るというオンラインイベント。
そのうち一日は用事があったため時間をとれず
それでも超特急で作成して応募しました。

11/20(金)
9:00 作品テーマが発表される
いそいでアセットを用意して明日は早いので眠りにつく

11/21(土)
10:00 朝から皇居で20km走る(笑)
16:00 結局家に着いたのが16時、そしてここから作る
28:00 ここまで起きて黙々作成

11/22(日)
8:00 起床、我ながら肉体年齢は高い模様
14:00 余裕をもって完成

15:30 運動のためまた走り始める17km(笑)
20:00 結果発表飲み会。


やっつけで作ったのがコレ
f:id:toncrimentan_w:20201128235518j:plain

作品テーマ「あつまる」だったので
走り続けるおとこの背中に仲間が集まる。というゲームを開発。
それにしても応募動画が、すごくキリのいいところでBGMが止まってくれた。

リアルでも走っていたし、ゲームでも走っているゲームになってしまった。

youtu.be

あらためて考えると
障害物にぶつかったら走りが止まって仲間が去っていく
ずっと障害物をよけつづけて仲間を集めるゲームとかのほうがよかったかも。



適当に考えたあらすじ)

みんなで魔王を倒そうと募集をかけたらだれもあつまらなかった。
やけを起こして走っていた。
走り続ける男の背中には仲間がマラソン大会と勘違いしてあつまった。
集まってから走り出すとかじゃなくて、
前に進み続けているから仲間があつまるんだなーと気づく。 コレ

という感動作品にしました。

UE4:カメラのリセット

UE4でカメラをリセットする手順


ただ単純にワープした後あたりに こうしたい。と思っている。
f:id:toncrimentan_w:20200921162833j:plain


もっと正しいやり方があるのかもしれないが、

意外と見つからず。無理やり作ることにした。
(意外とこれが答えだったりして。)


カメラのピッチ角をキャラ後方にするブループリント
f:id:toncrimentan_w:20200921163038j:plain


カメラのヨー角をキャラ後方にするブループリント
f:id:toncrimentan_w:20200921163119j:plain


やってることとしては
カメラマネージャーからカメラの向きをとってきて
キャラの背中にカメラが向くように、
プレイヤーコントローラーに対して入力を入れてあげる。

もっと一発でできるブループリントがあればしりたいぐらい。


そしてカメラリセットができた。
f:id:toncrimentan_w:20200921163834j:plain

UE4:GitHubでサブミットしないプログラムファイル

ひきつづきGitHubにみんなで作業できる環境づくり


ただ、UE4のプログラム用データのなかで
アップロードしなくてよいファイルもあったため おぼえ書き


アップロードしなくてよいファイル)
.vs/
Binaries/
Intermediate/
Saved/

.sln

VisualStudioの出力ファイル、
そしてソリューションファイル
※ソリューションファイルは右クリックから
 各作業者ごとに自動生成するため。

ソリューションファイルの作り方はコレ
f:id:toncrimentan_w:20200915223234j:plain



もしソリューションファイルを自動生成できなかった場合は
こちらを参考に
.uprojectファイルが関連付けされません - UE4 AnswerHub

C:\Program Files (x86)\Epic Games\Launcher\Engine\Binaries\Win64\UnrealVersionSelector.exe
を実行、レジスターなんとかというエラーが出ても気にせずクリック。
f:id:toncrimentan_w:20200915223651j:plain



話題はそれたけども
GitKrakenでのアップロードファイルの除外対象の指定方法

フォルダの除外)
f:id:toncrimentan_w:20200915223842j:plain


ファイルの除外)
f:id:toncrimentan_w:20200915223830j:plain


そして除外するよという情報のアップロード)
f:id:toncrimentan_w:20200915223900j:plain


つぎは、
統合自宅開発環境みたいなのをがんばって作るぞ!

UE4:第14回 UE4ぷちコンおしまい。

無事に2本のゲームを応募。
UE4プチコンも終わりました。


そして ちっちゃく 紹介もしてもらえました。

紹介ありがとう。


そして次回はもう少しオープニングが短いゲームにするね、


あとまたRPGを作ろうと思う。

www.youtube.com





最優秀賞は「グレイマンすくい」だった模様
なかなかネタに走った面白いゲームが優勝だったみたい。おもしろい!

www.youtube.com