ホーム » takehata の投稿

作者アーカイブ: takehata

Unityの交通システムアセット

交通システムのアセットに興味があったので探してみた。

1.Ultimate Traffic Controller(LITE)


LITEバージョンのため、破格の値段で最安値5ドル。フルバージョンは30ドル。 破格の代わりに、スポーンシステムは自力で作ってねということらしい。 ちょっと試すのには良さそう。

2.Road & Traffic System

▼ストアの紹介文引用

Road & Traffic System は、トラフィックピースや信号を配置することによって、ユーザーがどんな車両にも対応するダイナミックな大小様々な、トラフィックネットワークを素早く作成・シミュレートすることができる、Unity向けに設計されたプラグインです。

このシステムは統合Unityエディタツールキットで簡単にカスタマイズできます。ユーザーは、自分のロードピースをカスタマイズしたり、ロード&トラフィックシステムの基本ロードピースやトラフィックピースを拡張することができます。モバイルで高速機能!

サイトをチェック。
フォーラムをチェック。
チュートリアルを全部チェック。ビデオ.

最新”シティジェネレーター”をチェック。 Road & Traffic System パッケージに完璧対応。あなたの街の中に道路をドラマティックに展開! もっと知りたい方は、シティジェネレーター ウェブサイト をチェック。




3.Simple Traffic System

▼紹介文引用

シンプルな交通システムにより、ウェイポイントベースのルートをすばやく作成でき、モジュラー方式で相互接続することで、シーン内の道路に交通ルートを作成できます。プライマリーロジックは、マルチスレッド用の新しい C# Job System および Burst Compiler を使用することで高度に最適化されています。

AI トラフィックロジックは、AI Traffic Cars が登録する単一の AI Traffic Controller によって処理されます。これはデータ指向型のロジック構造であり、AI ロジックを使用可能なすべてのコアに分散した並列ジョブにて実行し、メインスレッドにおける CPU 使用量を削減できます。

90 分の明確で簡潔なチュートリアルビデオが利用可能で、適切なワークフローを指南し、利用可能な機能を実証するのに役立ってくれます。

 WebGL デモ
 PC デモ
 ディスカッションフォーラム
ユーザーマニュアル



4.iTS – Intelligent Traffic System

75ドルと200ドルのバージョンがある。
違いについてはよくわからない。

▼紹介文引用

Intelligent Traffic Systemは本物の物理駆動車両を用いてプレーヤーの周囲の交通をシュミレートする交通シュミレーションシステムです。歩道上の歩行者、その他豊富な種類の車両をシュミレートし、道路のリアルな雰囲気を表現します。あなたのシーン(ゲーム、実際のシュミレーション共)に命を吹き込みましょう! 利点: • 大きな時間の短縮、交通AIのプログラム不要 • ゲームを書かずにすぐに作り始めましょう! • 非常に複雑な道路ネットワークを作成できます! • どのような形をした車線でも作成でき、その数は無限です。繁華街の道、高速道路など全ての道路がシュミレート出来ると言う事です! 当バージョンには以下のものが含まれます: • AIは互いを認識して安全運転をします • AIはプレーヤーを認識してブレーキをかけるか(そのための車線があれば)追い抜くかします • パフォーマンスを上げるため、マルチスレッド処理されています! • ソースコードが含まれています! • 前に他の車がいる場合はブレーキ • 走っている車はウィンカーを使用します • 道路ネットワークを簡単に作成にできるよう、エディターツールが含まれています • 信号対応、同期とグループ分けを容易にするエディターツール • 他のプロジェクトから簡単にエクスポート、インポートできるよう、全ての道路データのセーブ、ロード。 • PCプラットフォームでは1シーンに150以上の自動車

5.Urban Traffic System

交通システムアセットで見かけた中で、一番値段が高かったのがこれでした。
アセットに含まれるモデルが豪華なので、その分が含まれてると思う。
値段が違うパックがあるのは、中に含まれるものに違いがあるようだ。



6.Modular Traffic for PlayMaker

PlayMakerのアセットをすでに持っている人向けではあるのですが、その分、費用対効果が高いアセットに思いました。

▼紹介文引用

この製品の使用にはPlayMakerプラグインが必要です!
——————————–
-> ウェブプレーヤー・デモ Android apkファイル
-> [Pc, Mac, Linux]
——————————–

一人称視点、三人称視点、オープンワールド、シティビルディング、その他ゲームの作成に使用できます。

この製品にはモジュール道路パックが含まれており、既に持っている場合には、それをアップデートすることができます
1車線道路、2車線道路、1車線から2車線に変化する道路
直線、折り返し、T字型、X字型の交差点
環状交差点、傾斜路、高速道路
ガードレール、街灯、信号機

通常タイプと十字タイプ、二種類の横断歩道信号機の設定
標準的なAIの車
標準的なAIの歩行者
50m x 50mの道路タイル
道路用のメッシュ
ベイクするためのUnityナビメッシュ
コライダー(Unityと凸状メッシュ)
4096 pxの道路UVテクスチャ

-シンプル・タウン・カープレハブ*
-1 ポリゴンカー(3)プレハブ*
ユーザーがSynty Studioのアセットを持っている場合。

フォーラムとインポートに関する詳細情報:
 PlayMaker フォーラムポスト
 Unity フォーラムポスト

CorgiEngineコーギーエンジン使えそうなプレファブとか

ちょっとマイナーな機能が欲しい時に探すの大変だったりするので、さくっと検索して見つける用のメモ。

MovingPlatformFree 乗ってる人が固定され、ジャンプできないリフト。

GravityZone 重力場。

MinimalAutoMovementControlZone 方向転換。

Jumper 強制のジャンプ台。

LadderBiDirectional 金網。

PushableBlock 押せる箱。

DestructibleBlock 壊せる箱。

Rope ロープ。

Wind 風。

Water 水。

TimeZone タイムゾーン。




Unity内でお絵描きができるアセット「Paint in 3D」をレポート

これといってドキュメントがないのですが、デモシーンが豊富にあり、使い方はシーン内で説明されてる。でも英語です。
手っ取り早いのは、デモシーンから欲しい機能をコピーして使う。

「ペンの役割のあるオブジェクト」と「ペイントされる側のオブジェクト」のふたつがあれば、最低限のことができたので、該当するものをプレファブ化して、自分のシーンに持ってったらOKだった。
細かい仕様については、デモシーンのどこかで説明はされてると思う。


「ペンの役割のあるオブジェクト」にアタッチされてたコンポーネントはこんな感じ。

P3dHitScreenは、ペンの設定。
P3dPaintSphereは、インク設定かな。
パッと見でわかるのは、Colorでインクの色を変えるんだろうな。


こっちは、「ペイントされる側のオブジェクト」についてたコンポーネント。
テクスチャとマテリアルを、色々するみたい。
どんなことができるかはこれから調べよう。

ドキュメントサイトがあれいいんだけど、自力で調べなきゃいけないな。

VRでモデリングするソフトまとめてみた

VRがやっと手頃なお値段になってきてきたので、オキュラスクエスト2を購入しました。まだ新参者なので、なんもわかってないのですが、没入感がやっぱすげーという感想。あと、実際に触ってみて思ったのがコントローラーの精度の良さ。どの指を、どのように動かしたかを検知してるので、むしろそっちに感動した。

ゲームで遊んだりもしたいところなんだけど、とりあえずは前から気になっていたVRでモデリングできるソフトをいじってみようと思いました。

4つぐらい見つかったのでその比較。


結論を先に言うと、「Medium by Adobe」がとても良かったので今のところ個人的な暫定1位。 PCに繋いで「Oculus Link」にしないといけないのはネックだけど、ソフト時代のお値段は無料で、モデリングからペイント、エクスポートまでできるのは実用性が感じられました。既存のソフトで近いのは3D-Coatになるかな? ポリゴンは意識しないで、粒子を固めたり削ったりっていう雰囲気。

こっちは「Blocks」というソフトです。PCに繋ぐ必要はある。
ポリゴンモデリングをVRでできる感じだった。無料。
曲線のものよりも直線的なものを作るなら、こっちのほうが向いているような気がする。


Gravity Sketch」というソフト。
これはPCに繋がなくて大丈夫なやつ。ちょっとお値段はする。2990円。
色々、出来ることは多そうだけど、学習コストがかかるなという印象。
これからじっくり触っていきたい。


SculptrVRというソフト。
PCに繋げなくてよい。
お値段990円。
モコモコとした質感が楽しい。




結論。
PCにつなげられるなら「Medium by Adobe」と「Blocks」が無料でできるので、その二つを試すのがいい。
繋げなくても遊びたいってときは、「Gravity Sketch」と「SculptrVR」で。
ちょっとしか触ってないからアレだけど全部、良いもののはず。

スチームチャレンジ244日目

おさらい。
今年の元旦に立てた目標がありました。
1年間でゲームを完成させて、スチームでゲームをリリースする。
というものでした。
ヒットするかどうかは、横に置いといて、ゲームを完成させることぐらいはできるんじゃないかと、色々やってきていました。

当初は3Dゲームを作るつもりだったけど、こっちはまだ勉強してから挑みたい。最近はコーギーエンジンに夢中になってるので、2Dアクションでこのまま突っ切ろうかと思ったりしてる。

とりあえず完成させることが目標なんだ。
あと4ケ月しかないが、できることをやりたい。

それで、今は色んな行動パターンを作っているところ。

CorgiEngineを、2週間ぐらい使ってみての感想。

2Dアクションゲームのテンプレが、そのまま自分のものにできるのは美味しい。
誰かにオススメできるかどうか聞かれたら、人にもよるなぁという印象。
テンプレを改造してって形にするのが好きな人向け。
Unity標準の機能も知ってる必要もあるし、独自ルールを覚えなきゃいけない。
そこさえクリアできたら無双できるツール。と思った。

▲タイルマップとスプライトアニメーションはUnity標準の機能。
自分はその辺りの知識がなかったので、覚える必要があった。

CorgiEngineの情報があるところと覚書

2Dアクションゲームが作れるアセット。
2Dアクションの基本はだいたい網羅されてて、カスタマイズもできる。
いつもアセットストアの目立つところにあるので、きっと良いものに違いない。
気になって購入した。

今は、使い方を覚えようと情報集め中。
CorgiEngineの情報があるところメモしたよ。

◆公式ドキュメント

◆公式YouTube

◆CorgiEngine-1-とりあえず使ってみる/げんとめブログ

◆Corgi Engineを勉強中 Part.1〜最小のシーンを作る

◆Unity&CorgiEngineを使ったアクションゲーム作り ~アニメーションと当たり判定①~

◆Corgi EngineのNPCのAIを細かく砕く


とりあえずやってみたこと。

●MinimalLevelという最低限必要なものだけがあるシーンがあり、それをコピーする。
●キャラクターを追加するのは、任意のゲームオブジェクトに「Character」というコンポネートを追加。それをプレイヤーとして使いたい場合は、コンポネート内の「Autobuild Player Character」それ以外のAI(敵とかNPC)にしたい場合は、「Autobuild AI Character」を押す。
●色んな能力が追加されるので、いらないものを外したり、変更したりでオリジナルのキャラクターにしていく。
英語なのがネックなだけで、欲しい能力はチェックして、変更したい場合は数値をいじったり、いらないのは外すという素直な作りなので、理解しやすいと思う。

ジェットパックがいらないと思ったら「Character Jetpack」のチェックを外せばいけました。
デフォで2段ジャンプだったので1度でいいと思ったら、「Character Jump」の中の項目「Number Of Jumps」の数値を1に変更したらOKでした。
落下中ジャンプができてしまうのをできないようにしたいと思ったら、「Character Jump」の中の項目「Jump Restrictions」の選択タブを「Can Jamp On Ground」にしたらできた。


とりあえずやってみたのはここまで。
どんな機能があるのかは、学習中であります。

Unityリフト移動

Unityでつまずきやすいポイントのメモ。
移動するリフトに乗っても、プレイヤーは移動しない問題。
床だけが移動するリフトというのも面白いけど、一緒に動きたい場合は、
リフトに乗っている間だけ親子関係にするとよい。
子供のオブジェクトは、親の動きと同期する。

↓の記事が詳しく載っていました。
Unityで動く床を実装するときにハマる罠とその解決方法

これの応用で、接地している間だけ、リフトの形状を変えたり、動きを変えたりもできる。

タグの種類を増やしてって、リフトの種類も増やせる例を作ってみた。 コードは乗る側、タグはリフト側で設定。
void OnCollisionEnter(Collision col)
    {
        //接触した相手のタグが"LiftA"場合、その子供になる
        if (col.gameObject.tag == "LiftA")
        {
            transform.SetParent(col.transform);
        }

        //接触した相手のタグが"LiftB"場合、相手のサイズを変える
        if (col.gameObject.tag == "LiftB")
        {
            col.transform.localScale = new Vector3(20, 1, 5);
        }

     }

    void OnCollisionExit(Collision col)
    {
        //接触が終わったとき元に戻す
        if (col.gameObject.tag == "LiftA")
        {
            transform.SetParent(null);
        }

        if (col.gameObject.tag == "LiftB")
        {
            col.transform.localScale = new Vector3(5, 1, 5);
        }
    }
    

Unity覚書 二次配列のマップ

Unityで二次配列を使ってマップを作るやつ。よく忘れるのでメモ。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MAP : MonoBehaviour
{
    public GameObject kabe;
    public GameObject jimen;
    public GameObject st;


    int[,] map = new int[,] {

        { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, 
        { 1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1},
        { 1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1},
        { 1,0,0,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1},
        { 1,0,1,0,1,0,1,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,0,1},
        { 1,0,1,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,0,1,0,0,0,1},
        { 1,0,1,1,1,1,1,0,1,0,1,0,0,1,1,1,0,1,1,1,1,1,1,1},
        { 1,0,1,1,1,1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,1,1},
        { 1,0,1,1,1,1,1,0,0,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1},
        { 1,0,1,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1},
        { 1,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1},
        { 1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1},
        { 1,0,0,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,0,1,1,1,1,1},
        { 1,1,1,0,1,0,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1},
        { 1,0,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1},
        { 1,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1},
        { 1,0,0,0,1,0,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1},
        { 1,1,1,0,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1},
        { 1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1},
        { 1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1},
        { 1,0,0,0,0,1,0,0,0,0,0,0,1,1,2,1,1,1,1,1,0,0,0,1},
        { 1,0,1,1,1,1,0,1,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,1},
        { 1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1},
        { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},

    };


    // Start is called before the first frame update
    void Start()
    {
        
        for (int i= 0;i< 24; i++){
            for (int j = 0; j < 24; j++)
            {

                if (map[i,j] ==0) { Instantiate(jimen, new Vector3(i * 1, 0, j * 1), transform.rotation); }
                if (map[i,j] ==1) { Instantiate(kabe, new Vector3(i * 1, 1, j * 1), transform.rotation); }
                if (map[i, j]==2) { Instantiate(st, new Vector3(i * 1, 0, j * 1), transform.rotation); }
            }
        }
    }


    // Update is called once per frame
    void Update()
    {
        
    }
}

ラストオブアス2をクリアした感想(ネタバレ注意)

※ネタバレ注意です。クリア後に読むことをオススメ。

自分なりの妄想を含んだ感想です。

敵側にも、色々事情があって、想い合う仲間がいる。
血が通った、同じ人間なのだ。
そういうのを徹底した結果がこんな恐ろしいゲームになってしまった。
敵は悪者ではないが、どうしても憎いし許せない。ぶっ殺してやる。
そういうゲームだった。

エリーもアビーもお互いの大切に想う仲間が殺されて、憎しみを増幅させるたびに、周囲の誰かが死んでいく。

エリー側に感情移入してるので、どちらかというとエリーを応援していたので、中盤以降アビーに主人公交代することに面食らったし、ショックだった。

アビー視点でスタートすると、エリーに仲間たちが殺されていくのを見せつけられる。最終的には、エリーと対峙し、エリーを倒す方向に話が進む。

ここが、自分の中でモヤモヤしたポイントでした。
主人公の目的と、プレイヤーの目的が一致しなくなるのだ。
アビー操作をミスして、ゲームオーバーになった時、これが結末でもいいのでは? という考えが頭をよぎる。
エンディングを迎えるよりも、あるタイミングでアビーが命を落としてくれたほうが、マシな結末になるのだ。

でもゲームは進めたい。
ゲームを進めたいので、アビー視点で、エリーを倒さなきゃいけない。
何でプレイヤーにエリーを殴らせてるんだろう?
訳が分からない。

再びエリーに主人公交代したときは、安心したが、これはこれで複雑な気持ちになった。
この頃にはアビーは憎い相手ではあるけど、悪者ではないということに気付いてしまうからだ。
もしも、アビーが極悪人だったなら、喜んで復讐に進めるのに。

それをわかってのことか、エリーはアビーに対して不思議な行動をとる。

放っておけば死ぬ状況のアビーの命を救い出し、それから決闘を申し込むのだ。
決闘を申し込んでおいて最後トドメを刺せるタイミングになって、中断する。
ジョエルに対して放った「許せないけど、許したい」という言葉がここに重なってくる。

面白かったかと聞かれると、答えに迷うゲームだが、遊んでよかったゲームではある。

ジョエルとエリーに感情移入していたので、ふたりには幸せになって欲しかったが、そういうゲームではなかった。特効薬を見つけてハッピエンド、そういうのだったらいいなと思ったが、そんなお花畑な考えはすぐに吹き飛ぶ内容でした。

3が出ることがあれば買いたいが、さらに過酷な内容のゲームになりそうで怖いな。

管理人

ハンドルネーム:タケハタ
本名:波田野剛望(はたのたけみ)

お絵描きとゲームが好きなオス。
2020年の目標は、スチームでゲームをリリースすること。