ホーム » takehata の投稿

作者アーカイブ: takehata

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が出ることがあれば買いたいが、さらに過酷な内容のゲームになりそうで怖いな。

ゲーム完成できない病からの脱出

頭に浮かんだゲームは神ゲーなのに、実際に作ろうとすると形にならない。
実力以上のことをやろうとしてたんだなと冷静になって考えた。

長編の超大作も作りたいが、コンパクトでカジュアルに遊べるゲームも合間に作って経験値稼ぎをしようと思ったのが6月の初めでした。

で、作ってみた。

神経衰弱にRPGの要素を加え、インド風味にした内容のゲームです。
3分ぐらいで遊べます。

今はなき「神経衰弱塔」っていうブラウザゲームの影響を強く受けて作ったものです。

「神経衰弱・インド編」ブラウザで遊べます。


ここで反省会。
ちょっとしたブラウザゲームを作るのにも一か月掛かってしまった。
作るスピードが遅いかもしれない。
思いついたアイディアはすぐに形にして、どんどんリリースするのを目標にしたい。

とはいえ、自分はゲーム作っているのに完成できない人間じゃないかと不安が膨らんでいたのが、その呪縛を解くことができたってのは収穫でした。

今はまだ、超凄いゲームは作れていないけれど、いつか超凄いゲームが作れるはずだと信じて、頑張ります。

千里の道も一歩から。
少しづつ進んでいけばいいんだと思いました。

マジックザギャザリングに差別問題の余波

少し昔に「ちびくろサンボ」という絵本があった。
絵本の内容は、虎が何故かバターになるというシュールな話で、差別的な表現はない。ただ、サンボという表現は、良くない言葉だったらしく、それに抗議が起こり、この絵本は世界から消えた。
そんなエピソードがあったことを、ぼんやりと思い出した。
その時と、似たようなことがさっき起こったからだ。

マジックザギャザリングというカードゲームで、7枚のカードが消滅することになった。
その理由が、差別的な表現があるカードだったからだそうだ。
どんなカードが禁止になったのか、どの部分がアレだったのか気になったので調べてみた。

※テキストはWikiから引用

Invoke Prejudice (青)(青)(青)(青)
エンチャント

対戦相手1人が、あなたがコントロールするクリーチャーと共通する色を持たないクリーチャー呪文を唱えるたび、そのプレイヤーが(X)を支払わないかぎり、その呪文を打ち消す。Xはそれの点数で見たマナ・コストである。

Cleanse (2)(白)(白)
ソーサリー

すべての黒のクリーチャーを破壊する。

Stone-Throwing Devils (黒)
クリーチャー — デビル(Devil)

先制攻撃1/1

Jihad (白)(白)(白)
エンチャント

Jihadが戦場に出るに際し、色1色と対戦相手1人を選ぶ。
選ばれたプレイヤーが選ばれた色のトークンでないパーマネントをコントロールしているかぎり、白のクリーチャーは+2/+1の修整を受ける。
選ばれたプレイヤーが選ばれた色のトークンでないパーマネントをコントロールしていないとき、Jihadを生け贄に捧げる。

Imprison (黒)
エンチャント — オーラ(Aura)

エンチャント(クリーチャー)
プレイヤーが、エンチャントされているクリーチャーの、その起動コストに(T)を含むマナ能力でない能力を起動するたび、あなたは(1)を支払ってもよい。そうした場合、その能力を打ち消す。そうしなかった場合、Imprisonを破壊する。
エンチャントされているクリーチャーが攻撃かブロックするたび、あなたは(1)を支払ってもよい。そうした場合、そのクリーチャーをタップし、戦闘から取り除く。この戦闘でそれによってのみブロックされていた、それがブロックしていたクリーチャーはブロックされていない状態になる。そうしなかった場合、Imprisonを破壊する。

Crusade / 十字軍 (白)(白)
エンチャント

白のクリーチャーは+1/+1の修整を受ける。

ざっと効果に目を通してみると、自分の色を有利にし、別の色を不利な状況にするものという共通点は見られる。
でもそれが理由だとすると、そういう類のカードはこの7枚に留まらず、大体のカードがそうなる。

あとマジックザギャザリングには5色の色があり、白は秩序と正義。
黒は狂気と死という、そもそものコンセプトカラーがあり、黒は邪悪な色という前提がある。それが、差別問題に触れるというなら、このゲーム自体の存続が危うい。

他のゲームではどうだろう。
属性を色で分けるものはあるが、闇属性は紫色が多かったりする。
配慮があってそうなってるわけではないと思うが、黒を避けるのであれば紫が妥当である。

結論。
いつ個人のゲームにも余波がくるかわからないので先手を打った方が良い。
個人でゲームを作る人は、エルフやゴブリンにも人権があることも思いをはせながら、闇属性に該当する魔法や技は、紫にしとくのがいいと思った。














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

もう100日過ぎてる。
でも進捗は、いろんな壁にぶつかりまくりで、停滞している。
TPSゲームのテンプレアセットの、
「Third Person Controller Template」の力を借りれば楽ができると思ってたんだけどね。
確かにプレイヤーの操作やカメラ設定は、お任せであっさり完了できる。
ただ、武器の設定がめんどくさい。
武器の、手首や腕の角度などは、手動で調整していかないといけないのです。

こうやって動画で観ると、そんなに問題ないように見える。

でもよく見ると、添えてる手の位置がどうしても不自然になってしまう。
頑張ってやってはいるんだけど、その辺の才能がないみたい。

まあ、見た目が不自然なのを目をつぶれば、ゲームの進行には問題はないともいえる。見過ごすのも作戦のうちなのかも。

ピストルは不自然さが目立ったが、アサルトライフルはあまり不自然さは無かった。不自然さが目立つ武器を諦めて、そうでもないのでやりくりするのもいいかもしれない。

とにかく先に進みたいので、そうする。

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

「Third Person Controller Template」というアセットを購入しました。
近接戦闘のプリセットが色々と用意してくれてるやつです。
あんまりスクリプトをいじらずにインスペクター上で完結するように設計されてるので、プログラム苦手でデザインに注力したい自分には合ってると思いました。

少し前に購入した「Camera Controller 」は、きめの細かい動きはやってくれるものの、システム構築は各自で頑張ってねっていうスタイルだったので、とにかく楽をしたい自分には合わなかったかもしれない。とにかく楽したい。
「Camera Controller 」 のほうは違う機会に、やるかも。

Character Creator3で作成した、キャラクターも無事にセットアップできました。

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

作りたい3Dゲームがいろいろあるけど、とりあえずは小規模のゲームを作ってみて、指針を決めたい。
スチームにいづれ出すゲームをどうするかは、まだ思案中。

早速、ZBrushでしめじ君を作りました。
最弱の雑魚キャラの予定です。

blenderでボーンとアニメーションを組みました。
この工程はとても面倒で苦手なので、無理にでも自分を褒めながら突き進みます。

とりあえずUnityに持ってって、動かすところまで。 次はちょっとしたバトルを作ったり、キャラクターを増やす作業に入ります。

Character Creator3 テクスチャ覚書

外部のペイントソフトを呼び出して、テクスチャを変更できる。
クリップスタジオでできることを確認済み。
大体のソフトで大丈夫だと思う。

スライダーで色を変えることもできた。

ざっくりで良い場合は、直接D&Dで画像を差し替えられる。

CharacterCreator3を買いました。

無料の人間ジェネレーターでは色々物足りなくて、かといって自力でモデリングもできなくて、迷走中だった。
いっそ有料のツールを買っちゃおうと思った次第。
CharacterCreator3は、ちょっとお値段するが、手が届かないわけではない。
このまま迷走してるよりは、勢いで買っちゃえと思いました。

さっそく試してみる。 プリセットに斧を持った戦士があったので、そのままエクスポート。 Unityに持ってったよ。

ちゃんと動きました。良かった。

カスタマイズするのにももうちょっとお金は掛かりそう。
衣装や髪、体型などのバリエーションを増やすのに、別料金かかるっぽいので、お財布と相談しながらやっていこうと思います。

自力でモデリング出来る人は必要ないツールだけれど、そうでもない人にとってはオススメかもしれない。お金は掛かるけれど。

キングダムカム・デリバランスを遊んでみる

Epic Games で無料で入手した、キングダムカム・デリバランス。
ファンタジー要素は排した、中世オープンワールド。
地味だが、現実的。
そういうのが好きな人向けかもしれない。ちょっと遊んでみる。

オープニング、森の景色がとても綺麗。

街並みも綺麗。地味だけど。

お父さんは鍛冶屋さん。
お仕事をしながらのセリフがある。これは何気に凄いところ。

町の人も、何か仕事をしてる様子が見れる。
ゲームの進行に関係ないところが凝ってるのは、臨場感あって良い。

剣でのバトル。練習につきあってくれるオジサン。
チュートリアル的なやつ。

イラスト調のマップが可愛い。
まだ行ってない場所は、雲で隠れてる。可愛い。

まだ序盤。
父親から、簡単なおつかいイベントを終えると、町に異変が。
敵の軍団が攻めてきた大変だってところで、休憩した。
これがきっかけで冒険に出かけるんだろうか。

主人公は超人ではない普通の青年で、世界もファンタジー要素はない。
モンスターや魔法は出てこないらしい。
そういう現実に基づいてる世界観は、ありなのかどうか。
気になるので、ちょっと進めてみたいと思う。

管理人

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

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