Raspberlyのブログ

Raspberlyのブログ

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

【Unity】NavMeshSurfaceでNavMeshを動的にBakeする【NavMesh】

 

内容

NavMeshSurfaceを使い、NavMeshを動的Bakeする方法についてまとめます。

 

開発環境

Unity 2022.3.9f1
AI Navigation ver1.1.4

 

 

パッケージのインストール

Unity Package ManagerからAI Navigationをインストール

 

Unity 2021の場合

Package Managerの左上にある+ボタンから、

「com.unity.ai.navigation」を入力し、Addするとインストールされます。

 

 

SceneにNavMesh Surfaceを作成します。
Sceneビュー右クリックのメニューにAIの項目が増えているのでNavMesh Surfaceを選択

シーン内にNavMeshSurface(がアタッチされたオブジェクト)が作成されました。

 

 

各パラメータを見ていきます
(Unityのバージョンによって微妙に違いがあります)

Agent Type

影響を受けるNavMeshAgentの対象
Humanoidなら、HumanoidのAgentだけがこのエリアを影響を受ける。

Default Type

生成するエリアのタイプ。
歩行可能なエリアだけ作成する、歩行できないエリアだけ作成するといった使い方ができる。

NavMeshLinkの作成の有無。
複数のNavMeshSurfaceを接続する時に使う。

Use Geometry

使用するジオメトリの設定。
Render Meshesなら、レンダリングされるメッシュ(Terrainを含む)に合わせてベイク。
Physics Collidersなら、Collider(IsTriggerでないもの)に合わせてベイク。

Object Collection

ベイク対象のGameObjectを選別する設定

  • All Game Objects:Scene内の全てのオブジェクトが対象
  • Volume:Scene内の指定範囲内のオブジェクトが対象
  • CurrentObjectHierarchy:NavMeshSurfaceの子オブジェクトが対象
  • NavMeshModifierコンポーネントがアタッチされたオブジェクトのみが対象

Include Layers

ベイク対象のレイヤー

 

 

InspectorのBakeボタンを押すとBakeされNavMeshが生成されます。

 

Scriptからは以下のようにBakeできます

using UnityEngine;
using Unity.AI.Navigation;

public class Builder : MonoBehaviour
{
    [SerializeField] private NavMeshSurface surface;
    public void Build()
    {
        surface.BuildNavMesh();
    }
}

 

当然ゲーム実行中にBakeできます。

 

 

まとめ

NavMeshSurfaceを使ってNavMeshを動的にBakeしました。
ランダム生成ダンジョンなど、リアルタイムにNavMeshを更新したい時に役立ちますね。


昔はGitHubからパッケージを落としてこないと使えない機能でしたが、今ならUnityPackageManagerで導入できるので大分使いやすくなりました。

 

以上です。

 

 

おまけ AI Navigation Displayの表示切替

AI NavigationをインストールするとSceneビューにこのようなDisplayが表示されます。

これは右クリックからHideを選ぶと非表示になります。

 

もう一度表示したい時は、Sceneビューの右上端にある3点マークを押してOverlay Menuを選択し、

Overlays Menuが出るので、AI Navigationの目をクリックすると表示されます



 

 

参考資料

 

 

www.matatabi-ux.com

 

 

 

【イベントレポ】: 横浜ゲームダンジョン

イベントのレポート(メモ)です。
参加したのはこちら、「横浜ゲームダンジョン

tokyogamedungeon.com

ハッシュタグ : #横浜ゲームダンジョン

横浜ゲームダンジョンとは

東京ゲームダンジョンから派生したインディーゲームの展示会です。
作品の試遊や購入、開発者との交流がメインのイベントになります。

こちらで体験したゲームの感想とか書いていきます

 

東京ゲームダンジョンはこちら

raspberly.hateblo.jp

 

 

※以下体験させていただいたサークルおよび作品の紹介です
※掲載している写真は全て許可を得て撮影しています
(人が写っている写真はトリミングやぼかしなどの加工をしています)

2階

2階は協賛団体、学生展示がメイン

B-12 SOMEN/体調大事に

流しそうめんアクションゲーム「SOMEN」を体験しました。
ハーフパイプの要領でそうめんを飛ばし、その伸びやコシを競います。
そうめんの躍動感がすごい。

 

 

B-17 SPACE/あにまるなんばーず

シューティングゲームSPACE」を体験しました。
名前の通りSPACEキーのみで操作するゲームで、攻撃と移動を同時に行います。
操作・システム共にとてもシンプルですが、欲張ろうとしたり焦るとミスる塩梅が良い。

個人的にタイトル画面からゲームを開始する流れがすごく好きです。

 

 

3階

H-10 怪獣分解カンパニー/dot.studio

会社経営シミュレーションゲーム怪獣分解カンパニー」を体験しました。
怪獣が存在しその解体業の需要がある世界。
ボロボロの会社を立て直すため、人を雇用し、怪獣を調達し、解体した素材を売って経営をやりくりします。
物の売買でお金を増やしますが、価格レートは変動し続けるのが特徴。

 

被写界深度を効かせたミニチュア感のある絵作りも魅力。

ゲームの世界観を元にした社員証ノベルティでもらえるのもいいですね。

 

 

G-03 ココロミル/ムツミ

アドベンチャーゲームハッピーテレパシー」を体験しました。
心が読める少女が主人公で、相手の心読みコミュニケーションを取るゲームです。
男子に対して思わせぶりな発言もできる。

 

 

F-18 ナタデコロコロ/☆TAKA☆

パズルゲーム「ナタデコロコロ」を体験しました。
ナタデココが主人公のゲームで、コロコロ転がりゴールを目指します。
転がる時やブロックにぶつかった時のぷにぷに感が気持ちいい。

 

 

G-01 SpookySalvage/Achamoth

アドベンチャーゲームSpookySalvage」を体験しました。
ロンドンのお化け屋敷を舞台に、幽霊の言葉を集めたり謎を解くゲーム。
屋敷の絵作りとかとても良く、途中登場するでかい男がめっちゃ好き。

 

Steamで配信予定

spookysalvage.wordpress.com

 

 

 

E-01 ZURARARARUSH!!!/合同会社天晴ファクトリー

ツインスティックシューティングゲームZURARARARUSH!!!」を体験しました。
スコアアタック型のゲームで、ハゲの主人公がヅラをとってパワーアップするシステムが斬新。
世界観もいい感じにぶっ飛んでます。

 

 

E-23 囚われホテル/おやすみ高原

謎解きビジュアルノベルゲーム「囚われホテル」を体験しました。
獣人が存在する世界、山奥のあるホテルで働くことになった主人公(人間)の物語。
冒頭のみ試遊でしたが、今後事件が起きるみたい...
獣人もたくさん登場しそう!

 

Steamで配信予定

 

 

H-04 釣りのゲーム(仮)/mumimumi

オイオイオイオイやべぇゲームが来たぞ(歓喜

みなさんは釣りのゲームと聞いてどんなのを思い浮かべますか?
このゲームは「川で魚を釣る」だけでなく、女装して男の脳を破壊する「男釣り」ができるゲームです。
プレイヤーの脳も破壊される

 

女装用の衣装もいろいろありそう。逆バニーだしてほしい

 

 

E-18 Rush&Slash/Meteor fall Creators

ローグライクアクションゲーム「Rush&Slash」を体験しました。
ダンジョンを舞台にブレードとショットを駆使して最深部のお宝を目指します。
弾幕をかいくぐりワラワラ沸いてくる敵を薙ぎ倒す爽快感は〇。

 

 

D-05 タングステンの復讐劇/魔女の脳

シューティングゲームタングステンの復讐劇」を体験しました。
こちらが攻撃している時は、敵弾が見えなくなるというシステムが特徴。
こまめにオンオフすれば安全ですが、攻撃を続けると威力が上がるため弾幕を覚えながら戦わなければいけません。
見えない中避ける緊張感がたまらない。

 

Steamで配信予定

 

 

H-07 ニャイト ミュージアム/株式会社Alunite

アドベンチャーゲームニャイト ミュージアム」を体験しました。
警備員となり、ミュージアムを見回りして泥棒を捕まえるゲームです。ミュージアム自体に秘密もありそう。

 

ミュージアムは複数のエリアに分かれていて、エリアごとに展示物が異なります。
展示物が動いていたり、泥棒を追いかけまわしていたりとても賑やか。
背景は3D、キャラクターは2Dでライトと影の表現がすごくきれい
GooglePlayとAppStoreで配信予定。

 

 

 

イベントの感想

今回12作品体験しました。
特に面白いと思ったのは「怪獣分解カンパニー」と「女装フィッシング」です。

 

怪獣分解カンパニーは、今回遊んだゲームの中で一番ユニークだと感じました。
レート変動もそうですが、ゲーム内ニュース記事など世界観の表現が素晴らしい。
実際に怪獣を解体する絵作り、ユーモアのある面接もグッド。

 

 

女装フィッシングは、今回遊んだゲームの中でぶっちぎりでヤベーやつ。
mumimumi氏がこういうのゲームを作るとは思わなんだ
もっとやれ

 

定番のホワイトボード

 

 

他の人のレポとか

gamemakers.jp

note.com

game8.jp

halcyonsystemblog.jp

note.com

t.co

 

 

以上です

【イベントレポ】: 東京ゲームダンジョン3

イベントのレポート(メモ)です。
参加したのはこちら、「東京ゲームダンジョン3」

tokyogamedungeon.com

ハッシュタグ : #東京ゲームダンジョン#東京ゲームダンジョン3

 

東京ゲームダンジョンとは

インディーゲームの展示会です。
作品の試遊や購入、開発者との交流がメインのイベントになります。

こちらで体験したゲームの感想とか書いていきます

 

 

過去のレポはこちら

raspberly.hateblo.jp

raspberly.hateblo.jp

 

 

 

 

※以下体験させていただいたサークルおよび作品の紹介です
※掲載している写真は全て許可を得て撮影しています
(人が写っている写真はトリミングやぼかしなどの加工をしています)

 

F-12b DropStella/青木とと(ˊᗜˋ*)

DropStella」を体験しました。
ピンボールとターン制RPGがマッチしたようなゲームです。
敵の攻撃に当たらないようボールを誘導してモンスターと戦います。
敵の攻撃範囲に入らなければダメージを受けませんが、ボールの跳ね返りによっては大ダメージになることも。
こちらからの攻撃方法も複数あり、威力と使用回数、狙いやすさが違います。

 

unityroomでプレイできます
DropStella - 体験版 ver.2023.7 | フリーゲーム投稿サイト unityroom

 

 

 

G-02a Inverted Angel/SCIKA

ミステリーゲーム「Inverted Angel」を体験しました。
インターフォンを通じて突然訪ねてきた謎の女性と対話し、彼女が何者なのか当てるゲームです。
推理の判定にはChatGPTが使われていて、推理に応じて物語が分岐するとのこと。

 

 

 

H-08 まよなかさんぽ/pixelはる

アドベンチャーゲームまよなかさんぽ」を体験させていただきました。
真夜中、明日がイヤで寝たくない主人公がどうするかといゲーム
没入感を高めるため暗い囲いの中でゲームをします。
ドット絵のゲームですが、光と影の表現が本当にきれいで印象的でした。

 

 

 

F-17a ノウ-know-/おはな世界

ホラーアドベンチャーゲームノウ-know-」を体験しました。
不穏で不気味な雰囲気の世界を探検するホラーゲームです。
この世界には怪物がいて、願いを叶えて協力してもらうこともできますが、相手によっては普通に死ぬ。

 

途中までのプレイでしたがとても続きの気になる内容でした。

 

 

 

E-02b ぎゃるすも/イモタベルカ

とんとん相撲ゲーム「ぎゃるすも」を体験しました。
タブレットをトントンして相撲をとるゲームです。
最初の1発目で倒れちゃうこともあれば、予想外の展開により大逆転することもあったりとにかく楽しいゲーム。
開発者の方と対戦しましたが、勝っても負けても盛り上がりました。

 

 

 

E-02a 猫の鉄骨渡り/TapiGames

アクションゲーム「猫の鉄骨渡り」を体験しました。
猫を操作し鉄骨渡りをするゲームですが、かわいい見た目とは裏腹に恐ろしい高難易度ゲーム
かなり判定がシビアでちょっとでも足を踏み外すとすぐ落ちる。
放置ゲー要素もあるみたい。

 

 

 

E-06a BATTLE JUNK/haraha

アクションゲーム「BATTLE JUNK」を体験しました。
ロボットを操作する3Dアクションゲームで、弱った相手の機体を乗っ取れるのが特徴
武器や移動速度は機体ごとに違い、状況に合わせて乗り換えながらスピーディーなバトルが楽しめました。

 

 

 

 

H-12 Romp of Dump/ザクロ弁当屋

アドベンチャーゲームRomp of Dump」を体験しました。キャッチコピーがとても目を引く

囚人とカードゲームをして、彼らの秘密を暴いたりバックストーリーを聞き出すゲームです。
キャラクターのアニメーションがとても細かく、各キャラクターを映すカメラワークもすごく良い。

 

キャラクターは何人かいますがフェイが好きですね。尊厳破壊したい

 

 

Steamで配信予定

 

 

 

G-12a BLIND/yudaigames

ホラーゲーム「BLIND」を体験しました。
ものすごく斬新なゲームでなんとビジュアルがほとんどありません。画面に出るのは文字だけです。
歩いている時の音、何かがたれてる音、床の音、人の声などは全て文字として表示されます。
これがまたすごく怖い。

 

C-19 Louloudi Asteri Save the Solar System/星花🌸ゲーム開発

シューティングゲームLouloudi Asteri Save the Solar System」を体験しました。
宇宙を舞台にした奥行きのある3Dシューティングゲームです。
一見2Dシューティングゲームですが、右スティックで立体的な動きができます。
視点をグルっと回転させることもできます。
敵の弾幕はかなり濃いですが、奥行きも駆使してすり抜けるような避け方も可能です。

 

 

Steamで配信予定

 

 

 

 

D-05 京浜東北線クイズ/CampnouGames

クイズゲーム京浜東北線クイズ」を体験しました。
名前の通り、京浜東北線に関係するクイズゲームです。
クイズの内容は駅の乗り継ぎ、中間・隣接駅の名前、車両の種類などなど。
京浜東北線はよく使いますが知らないことがたくさんありました。

 

こちらから遊べます

play.google.com

 

 

 

A-06 スゴイツヨイトウフ : とうふのアクション/ゾウノアシゲームズ

アクションゲーム「スゴイツヨイトウフ」を体験しました。
豆腐を操作してゴールの味噌汁に飛び込むゲームです。
豆腐はとても脆く、高いところから落ちたり敵にぶつかると粉々になってしまいます。
リトライ時、前の豆腐の欠片がしばらく残っている演出がいいですね。

 

Steamで配信予定

関係ないけどチラシがペラッペラで草

 

 

 

D-04 アルティメットマウス/HaraPeko部

アルティメットマウス」を体験しました。
とにかくマウスを連打しまくるゲームです。連打するたびデカくなる!
マウスの持ち方が重要!

 

 

 

D-03 PARRY KING/まっともぉん

アクションゲーム「PARRY KING」を体験しました。
前回のゲームダンジョンでもプレイしましたが、大幅にパワーアップしています。
3Dになり、忍殺フィニッシュムーブが追加されるなど演出もモリモリ。パリィがさらに気持ちよくなりました。
簡単なチュートリアルも追加されかなり遊びやすくなった印象。

 

クリア自体は前回のプレイ経験が活きたのかあまり苦労せずできました。
もっと難しくして♥

 

 

 

I-07 Eye on the world: diorama discovery/りりぃカンパニー

アドベンチャーゲームEye on the world」を体験しました。
監視カメラごしに探し物をするゲームです。
ボクセルで描かれた町なみはとてもきれいで、うまく溶け込んでいる猫や鍵などを探します。
カメラごしに見る町の空気感がすごくよかったです。

 

Steamで配信予定

 

 

 

 

H-11 脳みそジャーニー~かわいい脳みそには旅をさせよ~/megamittz

アドベンチャーゲーム脳みそジャーニー」を体験しました。
脳みそが奪われた少年が謎のカボチャと一緒に脳みそを取り戻すゲームです。
死にゲー要素があり、色々な死に方をコレクションできます。
キャラクターがとてもかわいい。

 

あるアイテムを入手するとそこでデモが終了しますが、
同じアイテムをノベルティとしてもらえるのがめちゃくちゃいいですね。

 

こちらからプレイできます

megamittz

 

 

 

H-02 幽町/t0kag3

ホラーゲーム「幽町」を体験しました。
片腕を奪われた少年が、仮面をかぶった怪しい男と一緒に冒険をするゲームです。
デモでは各エリアの探検ができました。

 

生意気そうなショタの絶望顔はたまらん
もっとちょうだい

 

 

 

H-01 パパが何度も死ぬゲーム/カツサダ研究所

EXECUTE DADDY~パパが何度も死ぬゲーム~」を体験しました。タイトルの圧!癖が全開!

わんこ系奴隷くんとイチャイチャする冥界の管理人になって悪事を働いてきた男を処刑しまくるゲーム
当然死ぬ描写が入りますがSDキャラで描かれているのでとてもかわいく仕上がっています。
処刑の部分だけ体験しましたが、探索要素もあるみたい。

奴隷くんがとにかくかわいい

 

 

Steamで配信中

 

 

 

 

F-07b バグ取りスイマー ~水底の修理屋さん~/エンタロピーゲームズ

パズルゲーム「バグ取りスイマー~水底の修理屋さん~」を体験しました。
海に廃棄されたロボのバグを取るため、コードをつなげ修復するパズルゲームです。
ホタテを集めたり、コードにくっついた珊瑚を取り除いたりと海の中ならではのギミックが盛りだくさん。

 

 

 

E-03b オオカミ村/Puppy Playhouse

アクションゲーム「オオカミ村」を体験しました。
オオカミと戦い畑を守るゲームです。
今回はデモ版ということで、村の中でモンスターを倒せるところまでプレイさせていただきました。

 

 

 

E-04a Conflict/ねこまんま

アクションゲーム「Conflict」を体験しました。
ボス戦がメインのアクションゲームで、回避・ジャンプ・攻撃を駆使して戦います。
ゲーム自体は短めですが操作性がとてもよく、あらゆる動作がサクサク動くため気持ちいい。

 

なんとこれ専門学生が3週間で作ったらしい...

 

 

 

I-17 琉奈と悪夢の館/ZephyrStudio

ホラーゲーム「琉奈と悪夢の館」を体験しました。
謎の館からの脱出を目指すホラーゲームです。
最初女の子が縛られている所に癖を感じる

 

Steamで配信予定

 

 

 

 

F-14b ClimblocK/ClimblocK

パズルゲーム「ClimblocK」を体験しました。
落ち物とパズルゲームが合体したゲームで、「パズルモード」をプレイしました。
パズルモードはブロックで足場を作りながら、自動で動くキャラクターをゴールまで導くモードです。
キャラクターは色によって挙動が異なり、自動で動く関係上ブロックを置くタイミングが重要になってきます。

 

 

 

F-12a LOOP LOOP ROOM/ですのや☆

パズルゲーム「LOOP LOOP ROOM」を体験しました。
スライムを操作し☆を集めるアクションパズルです。
画面のスクロールや回転、分裂してスイッチを押すといったギミックがありました。
キャラクターがぷにぷに動いてかわいい。

 

 

Steamで配信予定

 

 

 

 

B-03 Physical Layer/RaStar Studio

シューティングゲームPhysical Layer」を体験しました。
銃やスキル、地形にあるブロックを投げ飛ばして戦う見下ろし型ガンシューティングゲームです。
カスタマイズ要素もあり、武器やスキンが豊富。

 

このゲームの特に好きなところは画面の右側にキャラクターが表示されるところですね。
見下ろ視点ではかわいいスキンが見えないという問題点を、見事に解決できる素晴らしいアイデアです。

 

Steamで配信中

 

 

 

D-10 シカクリバーシ/HeX Wrench

一風変わったリバーシゲーム「シカクリバーシ」を体験しました。
基本的なルールは通常のリバーシと同じですが、マス目がなく自由な配置ができるのと、
コマの大きさにいくつか種類があります。
大きなコマの置き場所を考えたり、相手にコマを置かれないよう隙間を埋めた...と思いきやギリギリ置かれたりとなかなか奥深い

 

勝ち負けはコマの数ではなく色の面積で決まります。
陣営の色は選べますが、そのカラーコードが表示されるのもオシャレ。

 

unityroomで遊べます

シカクリバーシ 体験版 | フリーゲーム投稿サイト unityroom

 

 

 

C-17 ITERAZERS/ROHI & GOROMATU

ガンシューティングゲームITERAZERS」を体験しました。
パラメータを自由に調整できるのが特徴で、自機性能と左右の武器をかなり自由に調整できます。
プレイヤーならHP特化にしたり機動力特化にしたり、武器なら連射速度や弾の軌道、特殊効果をつけたりなど。


デモでは3体の敵が用意されていて、最後の敵は特に手ごわかったです。
パラメータの調整を繰り返しなんとか勝てました。

 

Steamで配信中

 

 

 

 

D-15 じん⛩じゃぱん/ハッピーチャイルド

ボールを飛ばし、クラゲのようなキャラクターにぶつけ動物を解放するゲームです。
まだまだテスト段階ということで、意見やアドバイスを募っていました。

 

神社がテーマということでおみくじも引かせてもらいました。

 

 

 

 

イベントの感想

今回28作品体験しました。
特に面白いと思ったのは「BLIND」と「Conflict」です。

 

BLINDは、今回遊んだゲームの中で一番斬新だと感じました。
ゲームは黒い画面に文字だけなのに本当に怖い。
プレイヤーの想像力をうまく刺激する素晴らしい表現だと思います。

 

Conflictは、今回遊んだゲームの中で一番操作性が良いと感じました。
操作のレスポンスがよく、攻撃・回避のアクションが楽しい。
動かしていてとても気持ちよかったです。

 

 

 

いつものホワイトボード




 

他の人のレポとか

gamemakers.jp

note.com

senehata.com

nyorokoapps.com

siromaru460.fanbox.cc

 

 

 

 

以上です

【勉強会レポ】: 📣 unity1week online共有会 #12

勉強会のレポート(メモ)です。
参加したのはこちら「📣 unity1week online共有会 #12」

meetup.unity3d.jp

ハッシュタグ : #u1w共有会

 

アーカイブはこちら

youtu.be

unity1week共有会って何?

unity1weekでいろんなゲームを遊んでいると
「どういう実装をしているんだろう」「どんな人が作っているのか」など気になることがいっぱい!

それら気になることを直接聞けばいいじゃん!というのがunity1week共有会の始まりで、
みんなで学んで成長することが趣旨です。

unity1weekについてはこちら

Unity 1週間ゲームジャム | フリーゲーム投稿サイト unityroom

今回は10人の発表者にトークしていただきました。

 

過去回はこちら

 

 

 

LT1:フルッピー・ペンギン開発奮闘記

フルッピー・ペンギンどうやって作ったかという技術的な内容。

加速度センサーを入力として使う方法や、

baba-s.hatenablog.com

PUN2でスマホとPCをつなぐ方法に関してお話でした。

ソースコードGitHubで公開中!

github.com

note.com

 

 

 

 

LT2:「デザイン」全般の話 | 3Dでなんとなくイケてる絵をでっち上げる方法

なんとなくそれっぽい絵を作る方法を解説されました。

  • 高機能で軽量なURPをつかう
  • 解像度は1280x720
  • Unity感をなくすためSkybox
  • オススメのポストプロセス
  • 色決めに迷ったらモノトーン

など見た目を盛るTipsが盛りだくさんです。
すごい実用的!

 

 

 

LT3:「ふるふるソフト」チーム開発と絵作りの話

絵作りチーム開発の話2本立て!

絵作りでは、Blenderを使ってソフトクリームを作る手順の紹介と、2Dの絵作りについて。

チーム開発の秘訣では、以下のTipsが紹介されました。

 

  • 準備編
    ・開始時点でビルド可能な状態を作っておく(大事)
    ・メンバー全員がGitが使えるようにしておく
    ・企画のイニシアチブをとる人を決めておく
    ・やること(要件)を書き出しておく
  • 開発編
    ・極力Prefab化する、シーンでやるとコンフリクトするため
    ・ScriptableObjectを活用
    ・UniTaskとAnimeTaskを活用
    ・声かけ大事、コンフリクトを防ぐため

 

 

 

LT4:ユニーク

ユニークについてのお話。
青の洞窟というパスタソースを事例に、ユニークさとは何かにというお話でした。
ユニークとは奇抜だったり個性的という意味ではない

きちんとした狙いや理由、意図がないと「斬新さ」として評価されない。

 

 

 

LT5:子づくり、親になる、三度の飯

ゲームに登場する愉快なキャラクターがどうやって作られたかというお話でした。

  • 情報を整理する
    なんでこういう髪型か、なんでこういう装飾品をつけているか説明できるようにする
  • 世界観をきめる
    舞台や時代などなど、キャラの容姿の方向性に深く関わる
  • 個やグループで妄想する
    キャラクターの内面を考えて外見を整える
  • 描いてみる
    とにかく描け
  • 健康に過ごす
    妄想するには頭を動かす必要がある。そのため健康に過ごす必要がある。
    寝ましょう

 

 

 

LT6:u1w知見n連発

u1wでの気づきや学びの紹介でした。

  • リトライしやすくしよう
  • 新ランキングシステムはプレイヤーがなんども遊んでくれる、データが取れる
  • うちの子を使うとゲームを作るモチベを維持できる
  • テキストを使わないキャラ表現
  • 機関部パーティクルで作る危険、攻撃の弾をパーティクルで作ったところ環境によって変動してしまう
  • Processingはいいぞ、静的に画像素材を生成していい感じにできる

www.slideshare.net

 

 

 

LT7:これだけはしないで! 雰囲気作り

雰囲気作りと、今回雰囲気が下がったことについてのお話

  • 雰囲気の評価を落とさない方法について
    事前に雰囲気を決めると、お題に合わないことがある
    →お題に合わせてアイデアを決めてから雰囲気を作る
  • 適当に組み合わせない
    ゲーム性や素材はベクトルを持っている、ベクトルの向きを揃える
  • 雰囲気を上げるには、向きを揃えることとベクトルを大きくすること
    世界観とストーリー性もベクトル
  • 完全自作にこだわらない
    適当に組み合わせてしまいがちなのでベクトルが合わなくなる

 

 

 

LT8:ドット絵関係で何か

Asepriteを使ってドットを作る時に考えていることや便利なに関する内容。

Pintarestなどを使ってコンセプトにあった資料を集めるといったお話や、
色分け時にわかりやすくする工夫など

 

 

 

LT9:魅力の扉はチュートリアル

今回ゲームに取り入れたチュートリアルの工夫点に関するお話。

  • シームレスチュートリアル
    操作説明を読まない人、とりあえずプレイしたい人もいる
    ゲームを進めるだけで自然と操作が見につくようにする
  • 1レクチャー1アクション
    人間は複数のことを同時に覚えられない、ちょっとずつ動作を覚えさせる
  • アクションの達成感
    プレイヤーの入力に対し、達成感を得られる演出を入れる

 

 

LT10:ゲーム制作の息抜きの1weekゲーム制作

ゲーム製作の息抜きに参加した時のお話。

  • たのしく無理せずやる
    なるべく楽する
  • 便利なパッケージを作っておく
    毎回実装している機能をまとめておく
  • 気になっていたツールを試してみる
    長期開発で使いたいと思っていたツールをお試しできる機会になる
  • まとめ
    得られるものも多い、無理のない範囲でやってみるとよい

 

 

 

感想

みんなおもしろかった~
どれも良かったですが、個人的に刺さったのはLT2のURPと、LT4のユニークに関するお話ですね。

 

のたぐすさんのLTはとても実践的な内容で、私もURPを使うことが多いですが参考になる点満載でした。
いい感じのマテリアルの設定もそうですが、Skyboxが簡単に作れるのも知らなかった!

 

ユニークに関するLTは、ユニークさとは何かという多くの人が悩みやすいテーマが言語化されていて大変わかりやすかったです。
斬新さ、ユニークさが呪いになっている人は助かったのでは?

 

 

以上です。
LT登壇者のみなさま本当にありがとうございました。

 

 

【Unity】 振り子を作る 【HingeJoint + LineRenderer】

今回はUnityネタをやっていきます。
Unityで振り子を作る方法についてまとめておきます

 

直近のUnity 1週間ゲームジャムでリール動画を作成しました。

youtu.be

 

お題が表示されるシーンはUnityで作成していて、その時の実装方法についてまとめておきます。

 

 

開発環境

Unity 2021.3.12f1

 

 

支点と振り子の作成

支点となるオブジェクトと、振り子(揺れる)となるオブジェクトを作成します。

支点の作成

シーン内にCubeを作成、名前を「Pivot」に変更。
Rigidbodyをアタッチし、IsKinematicにチェックを入れます。

 

振り子の作成

シーン内にSphereを作成、名前を「Furiko」に変更。
Rigidbodyをアタッチします。

HingeJointのアタッチ

振り子の揺れる処理はHingeJointコンポーネント*1を使用します。
これは2つのRigidbodyをつなげて動きに制限をつけるコンポーネントです。

docs.unity3d.com

 

 

「Furiko」にHingeJointコンポーネントをアタッチ
ConnectedBodyにPivotを指定、AnchorのYを5、今回は横にだけ揺らしたいのでAxisのZを1AutoConfigureConnectedのチェックを外しておきます。

Anchorは支点との距離です。

 

この状態で、ゲームを起動し「Pivot」を動かすと「Furiko」が振り子のような挙動をするのが確認できます。

 

 

揺れの調整

そのままだとゆったりした揺れになるので調整します。
HingeJointのUseSpringにチェックを入れておきます。

 

Springで揺れる力を調整

Springは振り子が元の位置(この場合支点の真下)に戻る力の強さです。
この値が大きいほど振り子の動きが大きくなります

 

 

Damperで減衰力を調整

Damperは揺れの減衰を表します。
この値が大きいほど揺れが早く収まります

 

上のSpring1000の状態でDamperを100にした場合のGIF。

 

 

 

振り子の糸を作る

支点と振り子を糸でつなぎます。

LineRendererのアタッチ

糸の描画にはLineRendererコンポーネントを使用します。
「Pivot」にLineRendererをアタッチ。

 

そのままだとピンクの太い線になるので、Widthを小さくMaterialsにDefault-Lineを設定します。



LineRendererの制御

LineRendererの制御用Scriptを作成します。
下記のFurikoLine.csを「Pivot」にアタッチ。

using UnityEngine;

public class FurikoLine : MonoBehaviour
{
    [SerializeField] LineRenderer lineRenderer;
    [SerializeField] Transform startPoint;
    [SerializeField] Transform endPoint;

    void Update()
    {
        var positions = new Vector3[] { startPoint.position, endPoint.position, };
        lineRenderer?.SetPositions(positions);
    }
}

 

LineRendererとStartPointには「Pivot」を紐づけ、EndPointには「Furiko」を紐づけます。

これで振り子の糸ができました。

 

 

リール動画でやっていること

糸の色

LineRendererの色を調整し、最初の方を透明にすることでイイカンジの糸に仕上げました。

 

糸の終点

文字を使う関係上LineRendererの終点が真ん中だと困るので、
参照用の空のGameObjectを上側に配置することでイイカンジにしました。

 

インチキ

揺れ方など何度調整しても動画にぴったりな絵がなかなか撮れなかったので、
最終的にTimescaleを変更して良さそうな絵を撮りました。
こういうのもアリ

 

 

 

まとめ

・HingeJointを使って振り子を作成しました。揺れの大きさと減衰力もパラメータで調整できます。
・振り子の糸はLineRendererで作成しました。

 

 

以上です。

 

*1:ヒンジで連結するかのような制約をつけられるのでHingeJointといいます

【アセット紹介】Feel でヒットストップを作る【Unity】

今回はアセット「Feel」を使ってヒットストップを実装する方法についてまとめます。

 

 

どんなアセット?

音やエフェクトなどゲームに様々な演出を簡単に実装するアセットです。
過去に紹介記事を投稿しています。

 

基本的な概要や使い方はこちらの記事をどうぞ

raspberly.hateblo.jp

今回は、発展的な内容として、ヒットストップを実装する手段をまとめます

 

 

開発環境

Unity 2021.3.12f1

Feel ver3.12

 

 

やりたいこと

Feelを使ってヒットストップを実装します。

以下の3種類の方法を用いて解説します。

・Time.timeScaleを0にする

・Animator.speedを0にする

・Animator.speedを遅くする

 

 

下準備

アセットとかの準備

プレイヤーにSD ユニティちゃん、敵にCubeを用意。

 

攻撃モーションとエフェクトも用意します。
モーションとエフェクトは下記のアセットを使用しています。これはなんでもいいです。

 

 

プレイヤーの作成

シーンに空のGameObjectを作成、名前をPlayerにしてユニティちゃんを配置、手のボーンに剣を持たせます。

剣には攻撃判定用のColliderをアタッチしておきます。

 

 

PlayerのAnimator

Animatorを作成。
ステートを2つ作成し、待機モーションと攻撃モーションを持たせます。
bool型パラメータattackを追加し、attackのオンオフでステートが切り替わるようにします。

 

PlayerのScript

以下のFeelPlayer.csを作成し、Playerにアタッチ。
キーボードのスペースキーを押すと、登録したFeedbacksを再生する単純なScriptです。

using UnityEngine;
using UnityEngine.InputSystem;
using MoreMountains.Feedbacks;

public class FeelPlayer : MonoBehaviour
{
    [SerializeField] MMFeedbacks attackFeedbacks;

    void Update()
    {
        if(Keyboard.current.spaceKey.isPressed)
        {
            attackFeedbacks?.PlayFeedbacks();
        }

        // 旧InputManagerでやりたい人用
        //if(Input.GetKeyDown(KeyCode.Space))
        //{
        //    attackFeedbacks?.PlayFeedbacks();
        //}
    }
}

 

攻撃Feedbacksを作成

空のGameObjectを作成、名前をAttackFeedbacksに。

 

MMFeedbacksコンポーネントをアタッチし、各種Feedbackを実装していきます。
攻撃時にAnimatorのパラメーターを書き換えるAnimationと、
攻撃判定用ColliderのActiveを切り替えるSetActiveを追加。

 

Animationの方は、対象のAnimatorとパラメータを設定。

 

Feedbackの紐づけ

PlayerにFeelPlayer.csをアタッチし、AttackFeedbacksを紐づけます。

 

これでゲームを開始しスペースキーを押すと攻撃します。

 

わかりにくいですが、攻撃モーション中ColliderもActiveになっています。

これでPlayerは完成。

 

 

敵の作成

空のGameObjectを作成、名前をEnemyにしてCubeを配置します。

EnemyのScript

以下のFeelEnemy.csを作成。
OnTriggerEnterで登録したFeedbacksを再生する単純なScriptです。

using UnityEngine;
using MoreMountains.Feedbacks;

public class FeelEnemy : MonoBehaviour
{
    [SerializeField] MMFeedbacks hitFeedbacks;

    private void OnTriggerEnter(Collider other)
    {
        hitFeedbacks?.PlayFeedbacks();
    }
}

 

ヒットFeedbacksを作成

攻撃が当たったときにエネミーが呼び出すFeedbacksを作成します。
空のGameObjectを作成、名前をAttackFeedbacksに。

 

MMFeedbacksコンポーネントをアタッチし、各種Feedbackを実装していきます。
Cubeの大きさが変化するScaleと、攻撃時にエフェクトを出すParticlesPlayを追加。

 

ヒットストップとは直接関係ない賑やかしなので、特になくてもいいです。
ここはお好みで。

 

 

 

最後、EnemyにFeelEnemy.csをアタッチ、ColliderとRigidbodyもアタッチします。
HitFeedbacksも紐づけます。



 

これでEnemyの準備を完了。
後はヒットストップを追加していくだけです。

 

 

 

MMTimeManagerを配置

最後に空のGameObjectを作成し、MMTimeManagerをアタッチします。
これはFeelで時間を制御する時に必要なコンポーネントです。シーン内に必ず存在する必要があります。

 

 

これで下準備は終わり。
次からヒットストップを実装していきます。

 

 

ヒットストップを実装

TimeScaleを0にする

一番手早いヒットストップ。Time.timeScaleを0にします。
特徴は時間が止まるため、他のオブジェクトやエフェクトも全て停止するという点です。

HitFeedbacksに、Time/FreezeFrameを追加します。
これは指定の秒数、時間を止めるFeedbackです。

 

今回は0.2秒止めてみます。FreezeFrameDurationに0.2を設定



これで完成、攻撃ヒット時0.2秒間Time.timeScaleが0になります。

 

 

 

プレイヤーのアニメーションを止める

攻撃ヒット時、プレイヤーのアニメーションを一瞬止めます。

HitFeedbacksに、GameObject/AnimatorSpeedを追加します。
これはAnimatorの再生速度を変えるFeedbackです。


今回は0.3秒止めてみます。
Bound AnimatorにユニティちゃんのAnimatorを紐づけ、
ModeをInstant Then Resetに、Durationを0.3にします。



これで完成、攻撃ヒット時0.3秒間アニメーションの再生速度が0になります。

 

 

プレイヤーのアニメーションを遅くする

攻撃ヒット時、プレイヤーのアニメーションを遅くします。
やり方はさっきとほとんど同じです。New Speed Minに0.05を設定します。

 

 

これで完成、攻撃ヒット時0.3秒間アニメーションの再生速度が0.05倍になります。

 

 

 

まとめ

今回はアセット「Feel」を使って、ヒットストップを実装しました。
Time.timeScaleを0にする方法、Animatorの再生速度を0にする方法、
Animatorの再生速度を遅くする方法の3つを紹介しました。

 

 

プレイヤーに爽快感や良い手触りを与える演出ですが、FeelならScriptを編集せずに実装できますね。
参考資料にある動画も、タメになるのでぜひどうぞ。

以上です。

 

 

参考資料

youtu.be

youtu.be

wikiwiki.jp

 

 

 

 

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

raspberly.hateblo.jp

 

 

 

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

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

【イベントレポ】: Indie Games Connect 2023

イベントのレポート(メモ)です。
参加したのはこちら、「Indie Games Connect 2023」

www.konami.com

 

ハッシュタグ : #IGC2023 #IGC

 

 

 

Indie Games Connect 2023とは

インディーゲームの展示会です
参加サークルは60+サポーター枠8、入場無料

以下公式サイトより引用

「自らのアイデアを注ぎ込んだ渾身のゲームをより多くの人に楽しんでもらいたい」
そんなアナタを応援します!
「自分の手で作り上げた作品をより多くの人に楽しんでもらいたい」
そう願っているクリエイターの想いに応えるため、
KONAMIでは少しでもたくさんの方々の手に触れていただくための、
クリエイターとユーザー、またはクリエイター同士の交流の場を作りたいと考え、
2022年より開催しています。

 

 

前回のレポはこちら

raspberly.hateblo.jp

 

 

※以下体験させていただいたサークル及び作品の紹介です
※掲載している写真は全て許可を得て撮影しています
(人が写っている写真はトリミングや黒塗りなどの加工をしています)

今回はセミナーにも参加したので少なめ

 

No.12 JetCola

コーラ型コントローラーを使うのが特徴。
コーラを大きく速く振り、宙高くまで飛ばすゲームです。

全力でコーラを振るのでものすっごい疲れる!

最後は飛んでいく様子を見られますが、コーラが惑星を越えていく様は壮観。

 

 

 

No.22 錬魂のレナフィーネ

5つのネイト」でおなじみ「ねこどらソフト」の新作。
魔王軍として、魔物を召喚・育成し敵と戦うゲームです。
序盤だけの体験でしたが、ストーリーはかなりダークそう。

 

事前登録受付中!

yoyaku-top10.jp

 

 

 

No.59 NyanCommando-にゃんこマンドウ-

ねこを操作した全方位シューティングゲームです。マウスパッドがかわいい
ねこには4つの能力があり、使いこなしながらボスを倒します。
ボス以外に雑魚敵が大量に出現し、それらをクジラで吹き飛ばすのがとても気持ちいい。

ボスはもうとにかくデカイ

 

 

 

No.56 トランスアングル

 

不思議な操作感のアクションゲームです。
地面に突き刺さって画面を回転させゴールを目指します。
画面が回転するたび重力の向きも変わるためとにかく頭が混乱する

 

unity1weekで投稿されたRE:ッターン!も展示されていました。

unityroom.com

 

 

 

 

No.5 モンスターフィッシング

2Dのオープンワールドで釣りを楽しむゲームです。
フィールドはかなり広く、船を使って移動し場所ごとに釣れるモンスターが全く違いました。
釣り部分だけの体験でしたがNPCがあちこちにいたり、洞窟に入れたりと探索も楽しそう。

 

スマホ版が公開されています

play.google.com

モンスターフィッシング

モンスターフィッシング

  • YOSHIYUKI NAKASHIMA
  • ゲーム
  • 無料

apps.apple.com

 

 

 

No.24 GRAPPIN

www.konami.com

グラップリングフックを使った登山ゲームです。
グラップリングを壁に撃ちこみ、空中を移動していくのがとても気持ちいい!
ダッシュとジャンプ、180ターンがワンボタンで行えるため移動がかなり快適。
ローポリながらグラフィックの雰囲気もいい感じ。

 

Steamで販売中!

 

 

 

No.39 在宅ワーク

www.konami.com

最大4人で遊べるパーティーゲームです。
上司の目の前では働くふりをし、上司が見ていない時は暴れてサボるゲームです。
野良参加でしたが、協力して道具をクラフトしワチャワチャするのがすごく楽しい!

 

Switchなどのプラットフォームで配信中です。

store-jp.nintendo.com

 

 

 

No.50 BATTING CARDGAME

野球をベースとした対戦型カードゲームです。
ルールはこちらから

youtu.be

攻守に分かれ、バッター側はストライクを撃ち、ピッチャー側は空振りを狙って得点を稼いでいきます。
捨て札はいつでも確認できるため、次の展開を予想しながら駆け引きを楽しめるゲームです。
なんとアナログ版もあり、実際にカードを使って対戦することができました。

 

 

No.49 STEP BY STEP

スマートフォンで遊ぶARゲームです。
足元しか見えないのが特徴で、周りを見渡しながらパズルを解いたり、
線路をつなげて列車をゴールまで導いたりとARを使ったギミックがすごい!
絵作りの雰囲気も良い。

 

 

 

 

イベントの感想

今回は9つのゲームを体験させていただきましたがどれも面白かった。
個人的に一番楽しいと感じたのはNyanCommando-にゃんこマンドウ-
ねこがかわいいのと、大量の敵に巨大なボスと画面がとにかく賑やかで爽快感もあり楽しかったです。

 

 

セミナーにも参加しました。
あそびのデザイン講座と、Unityの新しい機能や新URPテンプレートに関する内容でした。

youtu.be

セミナーは後日Unity Learning Materialsでも公開されるみたい。

 

 

 

ちなみに現在IGC2023を記念したセールがSteamで開催中みたい。

store.steampowered.com

 

 

 

以上です。