週刊SleepNel新聞

SleepNel所属のぽうひろが日々の個人開発で気になったことを綴ります。

アーバンナックル(とS)をTokyoIndieFes2017に出展してきました!

みなさん、こんにちは。ぽうひろです。

昨日2017/5/14 秋葉原UDXで行われた TokyoIndieFes に出展してまいりましたので、
ご報告いたします。
www.tokyosandbox.com


出展したのはアーバンナックル(リリース済み)と開発中のアーバンナックル・Sです。
ubk.strikingly.com


土曜日はビジネスデーということで、こちらも出展したかったのですが、
なかなか土日連続では家を抜け出せないこともあり、一般デーのみの参加となりました。

「展示者が少ないみたいなので、参加されてみてはー?」
と気軽な感じでお誘いを受けたので、「あ、でますでます( ^ω^)」と気軽に申し込んでしまったのですが、
出展者の皆様のブースはめっちゃこなれてて綺麗!!

ぐぬぬ・・・・これははめられたか( ^ω^)」

ダンボールで作ったSleepNel看板が逆に目立つ感じです。

「まぁこれはこれで味があっていいか・・・」

ものすごく入場者が多くて、ゲームが好きな人が国籍関係なくたくさん来場されていました!

個人開発者の知り合いもたくさん来てくださり、外国の方はもちろん、こんな小さいお子様達も自分の作ったゲームを熱心に遊んでくださりました!

開発者冥利につきますなぁ・・・。゚(゚´Д`゚)゚。

こういったインディーゲームの展示会は、いろいろなメリットがあるので、まだ参加されたことのない開発者の皆様にはぜひお勧めしたいです!

<メリット1> 見えなかったユーザの存在を実際に目視できる!
いろんな人が見に来てくれます。自分で自分の作品を見てもあまり自信が持てないかもしれませんが、必ず気に入ってくれる人は存在します。
こんな作品でもちゃんと気に入ってくれる人がいるんだなぁ。。。これからもがんばろう・・・って気持ちになりますね!

<メリット2> 仲間が見つかります
自分の他にも同じような境遇で、隙間の時間を見つけては頑張って開発している個人開発者の仲間を見つけることができます。お互い励ましあい、面白いものを作っていこうとしている仲間です。きっと、一生の宝物になると思います。

<メリット3> リリース前でも大丈夫!ユーザにデバッグしてもらいましょう
とりあえず遊べるものを展示して遊んでもらって、ユーザの様子をしっかり見ましょう!
きっと自分のゲームの改善点が見えてきます。 自分のゲームのブラッシュアップできるまたとない機会になりますよ!

今回、こんなに楽しくて大規模な展示会に参加させていただき、誘っていただいたMissileManでおなじみOHASHIさん(@papicoon)には感謝の念に堪えません。
また、主催された運営の方々にも感謝したいと思います。ありがとうございます。
わざわざブースに遊びに来ていただいた皆様もありがとうございます。

また、楽しいゲームを作って参加できるように、日々少しづつ頑張っていこうと思います( ^ω^)


それではまた!

リモートワーク探したけど大コケした話

みなさん、こんにちは。ぽうひろです。

1ヶ月前くらいに、渋谷の常駐案件をやめ、リモートワークに移行したお話をしました。
sleepnel.hatenablog.com

あれから1ヶ月も立っておりませんが、5月から別のところの常駐案件を受けることにしました(つд⊂)

f:id:pouhiroshi:20170425114843j:plain:w400
希望に燃えていた1ヶ月前でしたが、みるも無残な大敗です。一体何があったのか、後世の参考になるかもと思い、反省を書いていきたいと思います。
※なお、これは私がエセフリーランスだったというだけの話で、世の中には本当に自分の力で営業して、何にでも対応していって稼ぎを叩き出していく真のフリーランスの皆様が実在し、頑張っておられることは明記しておきたいと思います。真のフリーランスの壁は想像以上に分厚かったです。(自分にとっては

時系列で起きたこと

  • 3月時点

知り合いのご紹介でリモート可なPHP保守案件をいただくことができていました。単価は以前の半分。ですが、あと半分は別のリモート案件を探せばいーだろーって安易に考えておりました。リモート案件の紹介が多そうなエージェントやサイトに登録してエージェントとの面談もこなして行きました

  • 4月1週目

案件をこなしつつ、リモート案件を探す日々。なかなかエージェントから案件が出てこず焦ってまいりました。収入は現時点で半分なのでこのままやっていても赤字になります。来週くらいには決まればいいかなとまだ思ってました。

  • 4月2週目

エージェントやサイトからのめぼしい案件は出てきません。いよいよやばいと思い、クラウドソーシングの案件を探し、とにかく提案を出しまくってみました。時給は2000円以下。けどやるしかない。

  • 4月3週目前半

せっかく受けれたリモート案件も、独自FWでどう動いているのか全然わからない。焦る毎日。たりない収益。時給1500円のバイトも思った以上のボリューム。これは受けない方がよかったと思いつつも後の祭り。眠れない日々になってしまいました。ここでリモート案件を探すのは断念。各エージェントさんには「常駐でも可」と要望を伝えたところ、来るわ来るわ案件の波が・・・w
リモートの風はまだ自分には吹いていなかったのだなぁと実感することになりました。(エージェントさんに教えていただいたのですが、3月、4月初旬は、会社としても新人さんを受け入れたり新年度で案件出してる余裕がないとのこと・・・そりゃそうだよなぁと自分の間の悪さも痛感しました。。。)

  • 4月3週目後半

エージェントさんに横浜近郊の案件を紹介していただき、2社ほど面談。両方とも以前の額と同じ額を出していただけるくらいの結果でした。雰囲気も良いですし、ぜひ来て欲しいと熱烈歓迎。通勤は30分になりますし、願ったりかなったり。 自分を売り込む場所(マーケット)を見誤るとこんなに違うのか・・・・と痛感しました。

とまぁ、こんな感じで、4月の2,3週目は精神的に全く余裕がなく厳しい状態でした。
娘の幼稚園入園式や結婚記念日などもあったのですが、それどころではありませんでした。
自分は何のためにリモートワークを切望したのか。僕はリモートワークチャレンジを(今回は)諦めることにしました。

各所にご迷惑をおかけして本当に反省している反面、得難い経験もできたので、以下にまとめていきたいと思います。

悪かったこと

  • リモートでゲーム作る余裕できると思ったら逆だった

売上を立てるので精一杯になり何も考えられなくなったでござる。

  • 家族との時間を楽しむ余裕が全く無くなった

上記ともかぶりますが、常に仕事のことやお金のことを考えてました・・・

  • 夜寝るときも不安で寝たら死ぬみたいな強迫観念で眠れなくなった

寝たら心臓が止まるみたいな夢をリアルで見ました・・・ これはやばい。

以上は実際に起きた悪い現象です。
精神的・時間的な余裕が無くなったのが原因ですね。

次からは良かったこと(わかったこと)を挙げていきたいと思います。

良かったこと

  • 準備のなさ、見積もりの甘さ、何とかなるの精神論の甘さがわかった

今までは何とかなってきたので甘く見てました。とにかく動いた方が正しい、というのは改めないといけないですね。ただの特攻です。勉強になりました。

  • 自分の市場価値は思ってた以上に低いということがわかった

市場価値と言うより、自分がターゲットとしている市場がリモートできる市場とマッチしていなかったと言うべきかもしれません。

  • 安定収入、顧客の大事さがわかった

自分の能力を評価してくれて、長期間仕事を依頼してくれる顧客は本当に貴重なんだなということがわかりました。いい仕事は安定した収入があってこそだな・・・(家族持ちは特に・・・)とわかりました。

  • 家計について嫁さんと話し合ういいきっかけになった

f:id:pouhiroshi:20170425114336j:plain:w350
 そもそも毎月の何に使ってるんだよってくらい支出が多いので、夫婦で見直しました。いいきっかけになってよかったです。これくらい追い詰められないとやらないんですよね・・・

  • 知り合いのコネはとても貴重だった

今回ツイッター関連の知り合いの皆様に、案件紹介などとてもたくさんしていただけました。また短い時間でなど、違った形で協力できれば良いなと思っています。

  • 選択肢を複数持っておくことの大事さに気づいた

常に選択肢は多く持っておくべきです。面談も複数受けることで、他の条件と競わせて交渉することができます。

  • とはいえ、リモートワークの良いところもわかった

今回タネマキというコーワキングスペースに入りましたが、いろんなコミュニティがあり、落ち着いて生活費が稼げているのならとても素敵な環境だなと思いました。家から10kmなので自転車通勤するのもいい運動になりました。おかげで高かった血圧も下がりましたよ!

まとめ

今回、多方面に迷惑をかけつつ、僕のリモートチャレンジは幕を閉じました。ただ、世間の流れは東京一極集中から、地方へ分散、働く時間と場所を選ばない、そんな流れになりつつある状況です。今回の経験を糧にして、いつの日か再チャレンジすることがあるかも・・・?? その時のために、自分のスキルを磨きつつ、また準備をしていきたいと思いました。今回のエントリが皆様のご参考になれば幸いです。またこれからも開発仕事頑張っていきますので、よろしくお願いしまっす! (๑•̀ᄇ•́)و✧

RAIN(AI)でWayPointパトロールAIを実装してみた

みなさん、こんにちは。ぽうひろです。

突然ですが、ゲームを作成するとき、敵の動きをプログラムするのめんどくさいですよね。

あ、そうでもないですかねw

僕はめんどくさいので、アセットの力を借りたいと思います。

RAIN AI for Unity
https://www.assetstore.unity3d.com/jp/#!/content/23569
f:id:pouhiroshi:20170405192716p:plain

こちらのアセットを使えば、(あまり)プログラミングしないでAIによるキャラクターの動作を制御することができます!!

今日は、決めたポイント(Waypoint Route)をうろうろパトロールする処理をやってみましょう。
まずはじめに、大事な設定を行います。
RAIN->Help->SettingsからShow Advancedをチェックしておきます。
これを行うとRAINの細かい設定ができるようになるのですが、この中に、視界センサが壁を突き抜けないようにする設定が混ざっており、デフォルトがOFFなんですよね。。。。
なんでONにしとかないの!悪意を感じます・・・

では、はじめにAIを作成します。
f:id:pouhiroshi:20170405193711p:plain
AIをつけたいキャラクタを選んで、メニューバーにあるRAIN->CreateNew->AIを選びます。
するとAIコンポーネントが作成され、Inspector上でいろいろ設定を行うことができます。

まずは視覚センサーをつけましょう。
f:id:pouhiroshi:20170405194431p:plain
作成されたAIオブジェクトを選ぶと、Inspector上にRAIN Rig ScriptがGUIで表示されます。
この中の「目」のアイコンを選ぶとセンサーの設定ができます。
Add Sensorセレクトボックスから「Visual Sensor」を選びます。すると、
視界の範囲が作成されます。紫色の帯の範囲です。
f:id:pouhiroshi:20170405194708p:plain
視界は360度にしていますが、Horizon Angleで90度とかに狭められるので、狭めてみましょう。
f:id:pouhiroshi:20170405194820p:plain

次にパトロールするポイント(WayPoint)を作成します。
ここではプログラムから4地点作ってみます。
WaypointRigというコンポーネントにWayPointをAddしていくイメージです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using RAIN.Navigation.Waypoints;

public class EnemySample : MonoBehaviour {

	// Use this for initialization
	void Start () {
		CreateWaypointNetwork();
	}
	
	// Update is called once per frame
	void Update () {
		
	}

	void CreateWaypointNetwork()
	{
		GameObject tObject = new GameObject("WPN");
		tObject.transform.position = Vector3.zero;
		WaypointRig tWaypointRig = tObject.AddComponent<WaypointRig>();
		//Choose either Network or Route for the type
		tWaypointRig.WaypointSet.SetType = WaypointSet.WaypointSetType.Network;
		tWaypointRig.Serialize();

		Waypoint point1 = new Waypoint();
		point1.Position = transform.position + new Vector3(5f,0.2f,0f);
		Waypoint point2 = new Waypoint();
		point2.Position = transform.position + new Vector3(10f,0.2f,0f);
		Waypoint point3 = new Waypoint();
		point3.Position = transform.position + new Vector3(10f,0.2f,5f);
		Waypoint point4 = new Waypoint();
		point4.Position = transform.position + new Vector3(5f,0.2f,5f);
		
		tWaypointRig.WaypointSet.AddWaypoint(point1);
		tWaypointRig.WaypointSet.AddWaypoint(point2);
		tWaypointRig.WaypointSet.AddWaypoint(point3);
		tWaypointRig.WaypointSet.AddWaypoint(point4);
	}
}

とりあえずこれで実行してみましょう。
f:id:pouhiroshi:20170406095722p:plain
はい、緑色の丸みたいなポイントがWayPointです。

f:id:pouhiroshi:20170406095708p:plain
WPNというオブジェクトをInspectorでみると、Waypoint NETWORKにちゃんと4つWaypointが設定されてますね。

これだけではパトロールしませんので、最後にAIを作成します。
ツリーエディタがあるので、これで部品を組み合わせて作ります。
キャラクターに作ったAIの頭のアイコンタブを開くと下の方にOpen Behavior Editorというボタンがあるのでクリックします。
f:id:pouhiroshi:20170406100042p:plain

すると、Behavior Editorというウインドウが開きますので、右のBehavior Treeの中から、Create New Behavior Treeを選びます。
f:id:pouhiroshi:20170406100207p:plain
すると名前を聞かれますので、なんでもいいのですがPatrolAIとでもしておきましょうか。
f:id:pouhiroshi:20170406100331p:plain
すると選べるようになりますので、選ぶと編集ができるようになります。
f:id:pouhiroshi:20170406100430p:plain
右クリックで追加部品を選べます。Create->Dicisions->Waypoint Patrolを選びましょう
f:id:pouhiroshi:20170406100727p:plain
WAYというのが追加されましたね。必要な項目を記述します。
Waypoint Route の所に作成したWaypointRigの名前を文字列で入力します。
GameObject tObject = new GameObject("WPN"); としたので、"WPN" と書きます。eと書いてある部分はプログラム記法で書いてねという意味らしいので、ここでは文字列なのでダブルクォーテーションで囲まないとエラーになります。
あと、Move Target Variableに 移動対象変数名を宣言します。ここにはeと書いてないので、ダブルクォーテーションで囲まなくて良いです。
好きにつけて良いのでwpとしておきます。

さて、ここからwaypointpatrol部品上で右クリックして、子ノードを追加します。
Create->Actions->Moveを選びます。
f:id:pouhiroshi:20170406101144p:plain

moveが追加されたら、必要な項目を設定します。
Move TargetにWaypoint Patrolで設定したMove Target Variableの変数名 wpを入れます。eと書いてあるのでダブルクォーテーションで囲むと思いきや、プログラム記述になるのでwpのままでOKです。
Move Speedも設定します。ここは数値なのでダブルクォーテーションで囲まなくて良いです。1としておきましょう。
f:id:pouhiroshi:20170406101735p:plain

はい、これで必要な設定は終わりました。AIの保存は自動でやってくれるようです。
最後にAIのBehavior Treeで今作成したAIを選びます。
PatrolAIでしたね。
f:id:pouhiroshi:20170406101538p:plain

はい、これでひとまず完了です! 実行してみましょう!

警官がWaypointをパトロールしていますね!

Behavior Treeで、mecanimでアニメーション制御とかもできるので、歩かせたりとかもできます。

あまりSampleがなく、最初はかなりとっつきにくいですが、慣れたらサクッと敵AIを作れるようになるのではないでしょうか!!(勉強中)

次回は、パトロール中にプレイヤーを発見したら、追っかけてくるようなAIを発展させて作ってみようと思います。

それではまた!

激動の近況報告

みなさん、お久しぶりです。ぽうひろです。

しばらく記事を更新していなくてすみません。

Twitterで絡んでいる方はご存知だとは思いますが、いろいろ忙しく動いておりまして、やっと落ち着いたのでご報告いたします。

常駐仕事をやめ、リモート(持戻り)仕事をやります(4月から)

常駐案件は報酬もよく魅力的ではある一方、通勤時間がかかる(自分の場合は往復3時間)、自分の開発ができない、などといったデメリットがありました。
最新技術のキャッチアップもその現場は早く、勉強になっていたので苦渋の選択でしたが、思い切ってやめることにしました。
4月からの仕事は得意なJavaではなくPHPですが、何とか頑張っていこうと思います。
皆様からのお仕事も引き続きお待ちしています!

仕事場所として横浜のコワーキングスペース タネマキ に月額会員で入ります

tane-maki.net
以前、ドロップインで入ったことはあったのですが、オーナーの上津原(うえつはら)さんがとても親切な方で、すごく居心地が良い作業場所です(*´ω`*)


ディスプレイも借りれます。(月額会員は無料)素晴らしい。
お茶やコーヒー、お水も無料のものがあります。これは集中できますね!!
Unityもくもく会や電子工作部など、楽しいコミュニティも定期的に開催されてるようなので、楽しく暮らせそうです(*´∀`)
将来はコワーキングスペースの運営もやってみたいので、いろいろ勉強させていただきます!

人間ドックの結果

健康でなくては、いきなり常駐案件をやめるのは不安があったので、人間ドックを受けてまいりました。
結果は、高血圧・カリウム不足 と言う所見がつきました(;´Д`)
仕事を変えるのでどうしても不安からストレスを受けていて、脈拍がおかしいなーと思ってたので案の定でした・・・
また運動不足もありますね。これも解決せねばなりません。
今は精神状態も落ち着いてきており、さぁやるぞと言う感じなのでストレスはなくなってきています。
あとは運動不足ですね。これには秘策があります・・・・それは・・・・
f:id:pouhiroshi:20170331133512p:plain:w400

自転車通勤!!

家からタネマキまでは自転車で30分ほどの距離にあります。行き帰り自転車で通えば、運動にもなるし、電車賃も浮くし、ジム代も要りません!一石三鳥! ということで、ジャイアントESCAPE Airという軽量がウリのクロスバイクを中古で購入しました。
雨の時はさすがに電車にしようと思いますが、頑張ってこれで通勤します!!

TokyoIndieFes2017に当選しました!

www.tokyosandbox.com
申し込んだら当たっちゃいましたw
展示できるものがアーバンナックル(Urban Knuckle Official Site on Strikingly)くらいしか今はないのですが、
アーバンスパイを完成とまでは言わず、遊べるくらいまでにして持っていけたらなと思います。(*´∀`)
あと1ヶ月半・・・・・いけるかなぁ?w
進捗↓
sleepnel.hatenablog.com



激動の近況報告は以上です!

不安あり期待ありのフリーランス第2章! 頑張って生き抜きたいと思いますので、皆さん今後ともよろしくお願いいたします!

お仕事、お待ちしています!!(念押し

それではまた!

アーバンスパイにFPSを導入してみたら30分でできた

こんにちは。ぽうひろです。

みなさん、ご存知の通り今ロングダークにハマっている真っ最中なのですが
sleepnel.hatenablog.com

途中まで作っているアーバンスパイ(仮)にロングダークのようなFPS(一人称視点ゲーム)を取り入れたら面白いのでは?と思い立ち、やって見みました。
f:id:pouhiroshi:20170303184015p:plain:w500

UnityのStandardAssetsの中に、FirstPersonControllerと言うものがあり、これを使うと簡単にFPSが実現できるそうです。ほんまかいな。
やってみましょう。

ナックルさんのオブジェクトにFirstPersonControllerコンポーネントを追加します。
f:id:pouhiroshi:20170303183159p:plain:w300

あと、CharacterControllerと連携して動かすみたいなので、それも追加します。
f:id:pouhiroshi:20170303183307p:plain:w300

基本的にはこれだけです!あとはMainCameraがシーン上にあればそれが視点になりますので、
位置を顔の位置に置いておくと良いです。

キャラクターの子オブジェクトとしてカメラを追加して、顔の辺りに置いてあります。
f:id:pouhiroshi:20170303184015p:plain:w500

FirstPersonControllerのパラメータで歩くスビードや顔を向けるスピードなどを設定できます。
シンプルでいいですね。

FirstPersonControllerによる操作はキーボードのWASDで移動です。W(前進)、A(左移動)、S(後退)、D(右移動)
マウスで顔の向きを変えられます。
この辺の操作はロングダークと同じです。っていうかロングダークもこれ使ってるんじゃないでしょうか・・・w

それでは、実行してみた結果はこちらです!


これは想像以上にロングダーク感です・・・!!
やっぱり一人称視点は没頭感が出ますね!

これで脱出ゲームを作るのも楽しいかもしれません。

皆様も簡単にできますので、ぜひトライしてみてください!

ではでは!

TheLongDark プレイ動画 3日目その2配信しました!

みなさん、こんにちは。ぽうひろです。

f:id:pouhiroshi:20170203102027p:plain

TheLongDark プレイ動画 3日目その2配信しました!

前回までのあらすじ
sleepnel.hatenablog.com
漁師小屋に銃を求めて向かったぽうひろだったが、そこには銃はなかった。。。。悲しみにくれるも、鹿の肉と皮を剥ぎ取りに小屋へ向かう・・・するとそこに重くるしい足音が忍び寄る・・・!!

ということで、プレイ動画をお楽しみください!(∩´∀`)∩

TheLongDark プレイ動画 3日目その2

プリンキピア〜master of science〜 プレイ動画#1 公開しました!

みなさん、こんにちは。ぽうひろです。

今日のプレイ動画は tomeapp(@shinhirota)さんのプリンキピア(PRINCIPIA)です。
f:id:pouhiroshi:20170213131145p:plain:w500

steamのページはこちら
store.steampowered.com


このゲームは17世紀ヨーロッパ科学史に登場した科学者になりきって、研究を重ね、論文を提出し、名声を高めていくサイエンスシュミレーションゲームです。
17世紀はどうやら科学革命というものがあり、アイザック・ニュートンガリレオ・ガリレイなどが登場しますね。

17世紀 - Wikipedia

17世紀の科学革命
微分積分学と光学、万有引力などの諸法則・定理を発見したアイザック・ニュートン、望遠鏡を使用して月の表面に凸凹があることや木星に衛星があること、天の川が無数の星の集合であることなど天体に関する様々な発見により天文学に大きく貢献したガリレオ・ガリレイ、惑星の軌道が楕円であることなど天体の運行法則に関するケプラーの法則の提唱やルドルフ表を作り地動説のほうが精密に惑星の運行を計算できることを明示したヨハネス・ケプラーなど科学的な発見が相次ぎ、科学哲学上にも大きな影響を与えたことから科学革命と呼ばれている。 誰にでも検証可能な方法によって自説の正しさを証明するという、科学的方法が用いられるようになったのもこの時期からである。

オープニングから、ヨーロッパの雰囲気漂う心地いいストリングスのBGMがはじまります(*´∀`)

それではどうぞご覧ください!!


プリンキピア #1