FC2ブログ

スポンサーサイト

スポンサー広告
-- /-- --
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

新作ゲーム開発中!

ゲーム制作
03 /29 2018
しばらくブログの更新が滞っててごめんなさい。

現在、しめなわんとして2作目の作品を鋭意開発中です!
オリジナルのTPS&アクションRPG?的なものになると思います。PC用ゲーム(VR非対応)で、対象年齢はR-18です。

文明崩壊後の世界で、女の子が銃や剣でモンスターを退治!お宝ゲット!みたいな世界観にしたいなー

highcolor.png

前作はUnityとPlaymakerを中心にした開発でしたが、今回はプログラムの勉強もしたいと思ってUnity C#を中心に開発を進めることにしました。(とは言いつつAIまわりはPlaymakerを使わざるを得なくなりそうですが…)

そのため結構開発に手間取り、時間がかかっております。完成はいつになることやら…
どうか気長にお待ちくださいね~


10.png
主人公キャラモデルだけなら進捗は現在60%くらいです
スポンサーサイト
[PR]

[PR]

Unityで近づいたターゲットを発見するスクリプト

ゲーム制作
03 /29 2018

Unityで敵AIに積む想定の「近づいたターゲットを発見する」スクリプトを組んだので公開します。良かったら使ってみてください。
あと、プログラムの書き方がアレな点が多々あると思うので、ツッコミやアドバイス頂けると大変ありがたいです。

dafafaf.png

主な機能

・視界内に入ると発見、trueを返す
・壁の向こうなら発見しない
・一定距離に近づくと見えてなくても発見
・発見する範囲は調整可能

要改善点

・敵がプレイヤーを発見する想定なので同時に1つの目標しか発見できない
・ラインキャストまわりの動作が怪しい
・ガバコード

InSight.cs


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace Shimenawan
{

public class InSight : MonoBehaviour
{

//視認可能な距離
public float radius = 15f;

//視野角(0~360°)
public float viewingAngle = 90f;

//探す対象
public GameObject searchTarget;

//LineCastを使って死角(壁の後ろなど)にいる対象を発見しないようにする
public bool useLineCast = false;

//視線の高さ(この高さでrayを撃つ/受ける)
private Vector3 hightOfSearcher, hightOfTarget;

public bool drawDebugLine = true;

//一定距離に使づくと視認可能かにかかわらず発見する
public bool DetectbyDistance = true;

//強制発見距離
public float detectDistance = 5f;

//Linecastを使う場合、見つけたいターゲットのレイヤーに加え、探す側の視界を遮るべきオブジェクト(壁・建物等)のレイヤーも指定する
//探す側自身のレイヤーは選択しない。レイがそっちに当たって検知できないかもしれないのでレイヤー分けは必須
public LayerMask searchLayer;

private Vector3 searcherVector, subjectVector;
private Collider[] hitColliders;
public bool targetFound = false;
private GameObject subject = null;
float currentDist = 0f;

// Use this for initialization
void Start ()
{
hightOfSearcher = transform.up;
hightOfTarget = transform.up;
}

// Update is called once per frame
void Update ()
{
//TargetInSight ();
if (drawDebugLine)
Debug.DrawLine (transform.position + hightOfSearcher, searchTarget.transform.position + hightOfTarget, Color.red);
}


public bool TargetFound ()
{
TargetInSight ();
return targetFound;
}


private void TargetInSight ()
{
subject = null;
viewingAngle = Mathf.Clamp (viewingAngle, 0, 360);
radius = Mathf.Clamp (radius, 0, 200);

//自身から一定範囲内のコライダーを取得し、ターゲットと一致すれば自身との角度を取得する
hitColliders = Physics.OverlapSphere (this.gameObject.transform.position, radius);

if (hitColliders.Length == 0 || !searchTarget) {
targetFound = false;
return;
}

for (int i = 0; i < hitColliders.Length; ++i) {

//hitObjects.Add (hitColliders [i].gameObject);

if (hitColliders [i].gameObject == searchTarget) {
subject = hitColliders [i].gameObject;
}
}

if (subject == null) {
targetFound = false;
return;
}

subjectVector = (subject.transform.position - transform.position).normalized;
searcherVector = transform.forward;

//角度が視野角の範囲内なら発見
float angle = Vector3.Angle (searcherVector, subjectVector);

if (DetectbyDistance) {

//距離が一定以下なら見えてなくても発見
currentDist = Vector3.Distance (subject.transform.position, transform.position);


if ((angle * 2.0f <= viewingAngle && CanSeeTarget () == true) && currentDist < radius || currentDist < detectDistance) {
targetFound = true;

} else {
targetFound = false;
}

} else {

if (angle * 2.0f <= viewingAngle && CanSeeTarget () == true && currentDist < radius) {
targetFound = true;

} else {
targetFound = false;
}
}
}


private bool CanSeeTarget ()
{
if (!useLineCast)
return true;

RaycastHit hit;

//探索者・ターゲットの間にsearchLayerで指定したコライダーがなければtrue
if (Physics.Linecast (transform.position + hightOfSearcher, searchTarget.transform.position + hightOfTarget, out hit, searchLayer)) {

if (hit.collider.gameObject == searchTarget) {
return true;

} else {
return false;
}
}
return false;
}
}
}

Oculus Rift CV1対応について

ゲーム制作
11 /10 2017
猫にゃんのお部屋VRをver1.2にアップデートし、Oculus Rift CV1に対応しました。
正しく動けばTouchコントローラで画像の通りのボタン操作ができます。
※万が一、ボタン操作が変だったり動かなかったらご連絡ください。

DLsite様→http://www.dlsite.com/maniax/work/=/product_id/RJ204096.html
DMM様→http://www.dmm.co.jp/dc/doujin/-/detail/=/cid=d_114877/

oculus sousa

猫にゃんのお部屋VR ver1.1アップデート

未分類
09 /04 2017
猫にゃんのお部屋VRを以下の通り更新しましたのでよろしくお願いします。
Oculus Riftはまだ届かないので、対応は次回以降のアップデートとなりそうです。

ver1.10 更新

・簡易ドールモードに位置調整機能を追加
・胸サイズ調整時のシェーディング改善
・胸サイズ調整結果を保存し、次回起動時も反映できるようにした
・H中のキスの判定範囲を縮小
・VRカメラモード説明文を追加
・男モデルが立ち上がったとき、不意に画面が暗転してしまう部分を修正
・その他、細部操作性の改善

DLsite様→http://www.dlsite.com/maniax/work/=/product_id/RJ204096.html
DMM様→http://www.dmm.co.jp/dc/doujin/-/detail/=/cid=d_114877/

猫にゃんのお部屋VR ご意見要望・サポート欄

ゲーム制作
08 /04 2017
先日発売となりました猫にゃんのお部屋VRですが、今後も随時アップデートでの改善を図っていきたいと思います。
そのため、バグや不具合、改善点やご質問、ご要望等ありましたら遠慮なくコメントをお寄せください。

皆様のご意見を生かしてより良いゲームを作りたいです。
どうぞよろしくお願いいたします。

[追記]
貴重なご意見をいただきましてありがとうございます!
今後、私の技術力でも修正および実装が可能なものについては、ご意見を参考に改善を進めていきたいと思います。

しめなわん

しめなわん
同人サークル「しめなわん」にて、アダルトVRゲームの開発等を行っています。
現在、「猫にゃんのお部屋VR」を頒布中 & 次回作開発中!

【メールアドレス】shimenawan@yahoo.co.jp
【Twitter:@shimenawa33】
【Pixiv:しめなわん】
【ニコニコ動画:しめなわん】

※頒布の作品に登場するキャラクターは全て18歳以上です。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。