忍者ブログ

素人ゲーム開発を垂れ流しつつ、覚醒に至るまでの記録や役立ち情報、愚痴を書くブログ。ちなみに前立腺の開発もやっている。




オッサンほいほい、西部劇。
20代前半に買った「夕日のガンマン」DVD版。
何で買ったか覚えてないけど当時メルカリは使ってなかったと
思うのでどこか店頭で買った気がします。

祖父が映画好きでリビングでは西部劇がよく流れていました。
当然子供の頃は汚らしい髭づらのおっさん達がむさ苦しい汗を
垂らしながら繰り広げられるしょーもない薄っぺらいストーリー
にあまり興味がありませんでした。


 


何がきっかけだったか、当時簡単な言語でFPSを創っているときに
このDVDを見て「SAA」のカッコよさを知った気がします。
ブラックパウダーによる銃口からの煙がカッコいいんですよね。

これはゲームに追加したい要素と言う事でゲーム内に登場させて
行きたいと思います。ソレっぽく描いてみました。ハッタリですが、まぁこれでいいでしょう。





 


ダブルバレルも追加で。
ソウドオフとロングの2種類を用意してみました。
FPSでダブルバレルショットガンを初めて使ったのは
ゲームボーイアドバンス版DOOM2だったと思います。
この時期はあまり良さを感じませんでしたが決定的だったのは
KillinFloorのサポートスペシャリストのアレでした。

オルトファイアでぶっ飛ぶスペシメン達に脳汁が出たのを覚えています。
友達も何もいない、寂しい思い出です(笑)




PR
 


とりあえずテスト用にロックオン(今では死語?)出来る「敵」
を2つ用意し、OnTriggerStay2DOnTriggerEnter2DOntriggerExit2D
駆使して複数重なったターゲットで最も近い敵をロックできるシステムを構築したい。


BoxCollider2DRigidBody2Dを使う事でスマートではないが
簡単に当たり判定は取得可能。当たった場合上のOnTrigger系が呼ばれるので
この3つを使って何とか実現できそう。1つの空オブジェの子として2つのレティクル用オブジェ
を作成、この階層と並列にBoxColliderを設置。レティクル側と敵側の2種類にBoxColliderを。

RigidBodyはレティクル側に付け、物理処理は「重め」の常時作動に。
この設定をしなければRigidBody搭載オブジェが静止した時にOnTrigger系が呼ばれないので
常時動かす必要がある。それだとうまく使えないのでこの設定はONが条件。




いろいろ考えたがもっと簡単な方法があった。
そしてこのデバック機能は本当に便利で、問題があった時に一時停止してくれて
変数1つ1つにどのタイミングで何が入っているかが分かるので非常に助かる。

謎の挙動をした時はこれが一番確実と思われる。



現在のレティクルがロックオン可能のオブジェに何個当たっているか?
と言う判定は、ヒット数カウント変数を作りそこに
Enterが呼ばれた時に+1
Exitが呼ばれたときに1を代入することで取得できた。


後はオブジェを格納するLIST変数を用意しヒット毎(Enter)に呼ばれたら
ヒットしたObjectを格納。Exitで離れた場合ヒットしたObjectDeletすれば
絶賛当たっているObjectだけが格納される変数の出来上がり。(のはず)


このList変数に入っていると言う事は当然現在当たっているObjectのみ
なので、ティクルの中心地から一番近いターゲットを割り出せば
上手い事ロックオンマーカーが意図したターゲットに付けられるはず。



でも今日はいい時間なので寝ることにする。
試験的に色分けしてみましたが、見にくいかもしれません。
どうですかね。















1日手をつけずfar cry2をプレイする日でありました。その前日はボックスコライダーヒット中のオブジェクトをカウントするスクリプトを書きました。






trigger stayが呼ばれない時用のカウンターを作りましたが、Updade()とは独立して呼ばれるtrigger系がフレームレート的に低い為この方法だとtrigger stayでisHit的な判定用Bool変数を作ってもtrigger系が呼ばれなかった場合上書きされずにfalseに…


stayよりもEnterで判定用変数に1プラスし、Exitで1マイナスにすることで当たってるオブジェが簡単に取得できる事をある記事で知りました。これは便利。
あとはlistにEnterヒットしたオブジェを入れて行き、Exitの時にヒットしてるオブジェとlistに入れたオブジェが一致してたらそいつをリストから消せばヒット中のオブジェクトのみがlistに入ってることになりますね!


後はその残りのlistのオブジェクトの座標を全て調べて照準のセンター座標から1番近い方を割り出せば上手くロックオンマーカーの表示すべきオブジェクトがわかりそうです。


面倒なので今日は取り敢えず寝ますzzZ



Input.MousePositon」はマウスの座標を取得できます。
しかし最近のUnityでは旧式の「InputManager」を推奨していません。
残念ながらInput.系はこの旧式のInputManagerです。



新型のInputSystemのみを使う場合は使えないのですね。
設定でInputManagerとInputSystemの併用が可能ですが
僕の環境だとマウスを動かした途端InputSystem側の操作が
うまく作動しなくなり「操作不可能」になる場面がありました。


InputSystemは非常に便利でアクション1つに複数の周辺機器を登録でき
、Xbox系だろうがPlayStation系だろうが纏めることが出来るため、
出来ればInputSystemを使いたい所。しかし面白い事に主流になった今でも
マウス座標の取得は







// マウス座標取得
Input.MousePosition





といろんなブログなどで見かけます。




これはこの競合を避ける為にInputSystemのみ使用する設定にすると当然ながら
使えなくなります。エラーを吐きます。



この場合は



Mouse.current.position.ReadValue()





コチラを使う事で回避できました。
まだよくわかってませんがとりあえず行けたのでここに記録しておきます。



参考にさせていただいたサイト↡
https://teratail.com/questions/348893



とりあえず「車が動く」まで行ったので、車体の振動を再現して
ソレっぽくしてみました。いい感じです。



日本ならではな要素を出したいので軽トラや原付(カブ的な)
を出してみたいと思ってます。

内容はう~ん、今の所迷ってますが現代社会で感じている息苦しさ
をテーマに盛り込んでいくつもりです。

まだスピリチュアル的要素を全開にするには早すぎる・・・
けど半開ぐらいならいいんでないかな?






昨今では銃器もそのままの商品名であることが出来なくなってまいりましたね。
時代です。逆に言うと正常化したというか、まぁでもスピリチュアルな視点
からすると著作権と言う概念は非常に謎であるわけで・・・


とりあえず対空には携帯型ミサイル。
でも今までやって来た中でチョーきもちぃ!!と言う
爽快感のある追尾武器があるゲームはあまり見かけませんでした。


これは腕がなります。
爽快感はゲームの面白さに直結します!



う~ん、何か足りない・・・
と言う事で発射後にブーストする瞬間の弾頭の発光を再現。






うむ、ちょっとわかりにくいですがソレっぽくなってまいりました。
処理は単純でスティンガーミサイルなどでおなじみ
第一段階の弾頭飛び出しの後若干の遅延後にブーストするあれ。




ゲーム的にはこれと火花、そして画面の揺れが加われば尚よし!




  
ブログ内検索
最新コメント
[01/01 FrankSeita]
[10/06 ダージリン]
[10/03 ゼン]
[10/01 ダージリン]
[09/25 ゼン]
プロフィール
HN:
kawaハギ
年齢:
36
性別:
男性
誕生日:
1989/07/03
職業:
無職
趣味:
ゲーム 音楽
自己紹介:
人類を5次元意識へ押しあげる為のゲームを
開発しています。

小学生3年頃から鬱を発症。対人恐怖症、醜形恐怖等で引きこもり。
生きる意味を長らく探し求め、ようやく答えを見つけスピリチュアル
にたどり着く。覚醒を数段階体験し現在は”もう一度”物理的な自立を目指しています。
カウンター
Copyright ©  -- 覚醒できるゲームを作るブログ --  All Rights Reserved

Design by CriCri / Material by petit sozai emi / powered by NINJA TOOLS / 忍者ブログ / [PR]