週刊SleepNel新聞

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

Arbor3について雑に解説してみる

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

この記事は アセット真夏のアドカレ2019 8/5 の記事になります。

先日のUnity1week で作成した「にゃん友ワンだふる」でも使用しました
VisualScriptingアセット「Arbor3」について使用感などふくめて雑に解説していこうと思います。

assetstore.unity.com


unityroom.com

にゃん友ワンだふる
にゃん友ワンだふる

VisualScriptingということで、C#のプログラムを書かずにイマドキの命令ブロックをつなげていくような形で
プログラムを作成していくことができます。

にゃん友ワンだふるでは、障害物となる車の生成、移動処理に使用しました。

f:id:pouhiroshi:20190802190853g:plain
緑の四角アイコンが表示されているのがArborがついているGameObject

やりたかったこととしては、「ランダム間隔で車オブジェクトを作成(Instantiate)し、進行方向を向かせて、そのあとは移動させる」
というものです。

まず最初にArbor3で制御したいGameObjectにArbor FSMコンポーネントをつけます。

f:id:pouhiroshi:20190802191436p:plain
ここではVehicleSpawnという空のGameObjectにArbor FSMコンポーネントをつけています

はい、準備はこれだけ。
Open Editorというボタンが付いていますので、これを押すとArborのビジュアルプログラミングEditorが開きます。

車を作成(スポーン)して進行方向へ向かせる。それをランダム間隔で繰り返す。

f:id:pouhiroshi:20190802191912p:plain

これが「ランダム間隔で車オブジェクトを作成(Instantiate)し、進行方向を向かせる」までのプログラムです。

Initという右上のブロックが初期状態です。
TimeTransitionというブロックをつかっていますが、これはある時間seconds(秒)が経過したらNext Stateでにつながっている状態に遷移してくれます。
secondsに左上のRandom.Range FloatからOutputでつながっていますが、Random.Range Floatは最小(Min)から最大(Max)までのFloat値を返してくれます。
ランダム間隔でというのはこれを使って実現しています。

次の状態は Instantiate(コピーを作成する)ですね。
Instantiate Game Objectは文字通りGameObjectを作成してくれます。
Prefabには作成したいPrefabを指定します。この場合は車を作成したのでバスのPrefabを指定しています。

Instantiateしたあとは、車を進行方向へ向かせます。
ここでつかうのはTransform Set Rotationで回転させるブロックです。
回転対象物のTransformを繋げる必要があるのですが、 Instantiate Game ObjectブロックでOutputされるのは GameObject型です。
そのため、Transform.Get ブロックを通してTransformを得て、つなげています。

そのあとにつけているのは Go To Transitionというブロックで、Next Stateにつなげた状態に状態遷移させます。
ここではずっと繰り返し処理させたいのでInitへ戻しています。

一定速度で移動させる

さて、これだけだと車は移動してくれません。
次は車を勝手に動かすようなArborプログラミングをつけてみます。
f:id:pouhiroshi:20190802194535p:plain
さきほどInstantiateする対象にした車のPrefabにArbor FSMをつけます。

f:id:pouhiroshi:20190802194318p:plain
たったこれだけ

はい、たったこれだけです。
Transform Translateは、Velocityに指定した移動量で移動しつづけてくれます。
動かす対象はTransformで指定します。

UnityEditorで動作しながら状態遷移が確認できる

f:id:pouhiroshi:20190802195525g:plain

UnityEditorで動作しながらArborの状態遷移が確認できます。
黄色くなっているところがいまの状態です。Instantiateは一瞬で終わるので、パッと見黄色く見えませんね^^;
その代わり、ブロックの右上にその状態になった回数が出ていますので、その数字が増えているので
ちゃんと状態遷移しているのがわかると思います。
ブロックにブレイクポイントをいれて処理を止めることもできますし、とてもデバッグがしやすいです。

まとめ

ランダム時間間隔で何か処理をさせる、みたいな処理をプログラムで書く場合、
タイマー変数を用意して、Time.deltaTimeで増やして〜、みたいな意外な面倒な手順を踏むことになりますが、
Arborをつかえば簡単に作ることができます。
それに加えて、状態遷移になっていて後から見返したときに何をしているのか、わかりやすいです。
自分でつくったロジックをいつもすっかり忘れてしまうというアナタにとてもおすすめなアセットです!w
作者さんが頻繁にアップデートしているようなので、今後もとても安心です。
ぜひ、使ってみてください!

UnityStandardAssetを使って5秒でTPSを導入する

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

f:id:pouhiroshi:20190225154755p:plain

先日の記事 3秒でFPSを導入する
sleepnel.hatenablog.com
の記事がそこそこ好評でしたので。。。。

今度はTPSをサクッと導入する方法を紹介したいと思います!

1手順挟むので5秒にしてますが、それでも簡単です。ぜひやってみてくださいね!

TPSはThird Person Shootingの略ですね。
3人称視点ということで、カメラがキャラクターの背後などにあり追随していく形式が多いです。

無料で手軽なアセットを探したのですが、結構ガチ有料のものが多かったので、
今回はUnityStandardAssetにあるTPSを使ってみたいと思います。

UnityStandardAssetは以前はUnityのメニューからインポートできたと思うのですが、
最近ではAssetStoreからダウンロードする形になっているようです。

無料なので気軽にDLしましょう^^
assetstore.unity.com

インポートすると、色々なAssetが入っていますが、TPSに関係するのはその中のCamerasとCharactersにあります。

まずはTPS操作できるキャラクターを配置します。
Standard Assets/Characters/ThirdPersonCharacter/Prefabs/ThirdPersonController のprefabをステージ上にドラッグ&ドロップしましょう。
f:id:pouhiroshi:20190225155655p:plain

つぎにカメラです。
Standard Assets/Cameras/Prefabs/FreeLookCameraRig のprefabをステージ上にドラッグ&ドロップしましょう。
f:id:pouhiroshi:20190225182329p:plain

はい、これでOK!と言えれば3秒だったのですが、もう1つ残っています。
配置したFreeLookCameraRigのFree Look CamコンポーネントのTargetに、ステージ上においたThirdPersonControllerを指定します。
f:id:pouhiroshi:20190225182922p:plain

はい、これで準備完了!
動かしてみましょう!!

あっという間にTPSコントローラの完成です!!

例によってコントローラやカメラには、パラメータがあり数値をいじればカメラ追随の速度やターンスピードなど変えることができます。

f:id:pouhiroshi:20190225183130p:plain
コントローラの設定

f:id:pouhiroshi:20190225183214p:plain
カメラの設定

あ、歩かせる範囲で地面のコロイダ(PlaneなどでOK)をつけるのを忘れないでくださいね!キャラクターが落ちてしまいますのでw

お手軽なので、ぜひチャレンジしてみてください!!

それではよいゲーム開発ライフを!! :)

3秒でFPSを導入できる無料アセットFirst Person All-in-Oneの紹介

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

久しぶりのUnity記事です。
f:id:pouhiroshi:20190217114452p:plain

最近忙しかったのですが、少しゲーム開発を考える余裕ができてきました。

今日はステージを検討していて、ステージになるアセットを吟味していました。

f:id:pouhiroshi:20190217111036p:plain
素晴らしい街並み

とても素敵なアセットです。

こちらをゲーム内に入って細部を確認してみたくなりました。
普通にやると、キャラクターオブジェクト作って、CharacterControllerつくって、カメラ用意して、地面のコロイダーつけて、、、
とやることが結構多くて面倒です。
一応、StandardAssetにもFPSコントローラはありますので、まぁこちらでも3秒でできちゃいますが。。。w
Unity5でStandardAssetを使ってFPS視点で動かそう。 – はじめてプログラム

今回ご紹介するアセットは、

  • レティクル自動生成
  • 足音システム
  • 歩くときの頭の上下運動システム
  • スタミナシステム

などがはいったFPSコントローラーアセットです。(無料!)
assetstore.unity.com

使い方は簡単、ImportしたアセットからFirstPerson-AIO PrefabをSceneに配置するだけです。
f:id:pouhiroshi:20190217112237p:plain
はい、3秒!!

それでは動かしてみましょう!!

十分探索できますね!!
階段の上などもコロイダーをつけてあげればたぶん上がれるようになるんじゃないかな。

f:id:pouhiroshi:20190217113925p:plain
設定項目1

f:id:pouhiroshi:20190217113947p:plain
設定項目2

設定項目を上に貼りましたが、いろいろあります。

歩くスピードやHead bobbingの揺れかたなどはfeature通りにありますし、
足音も地面によって別の音に変えたりするような設定もあります。
無料でなんとも素敵な機能です。。。。

さっとゲーム内環境を確認したいとき、導入されてはいかがでしょうか!

それではよいゲーム開発ライフを!!(*´∀`)

2018年のぽうひろを雑に振り返る

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

すっかりご無沙汰になりましたが(書くたびに言ってる気がする)
2018年のぽうひろを振り返って来年の糧にしたいと思います。

まずはゲーム開発のほうなんですが、今年はこれといって成果はありませんでした。
いないとおもうけど楽しみにされていた方、申し訳ありませんでした。
あ、Unity1Weekにはいくつか出しましたね。
ぎりぎりゲーム開発者と名乗ってもいいかなぁ。いいですかね?(´・ω・`)
ロシナンテさん、ネコブレさんと一緒につくった「ギリギリ☆アイランド」
ギリギリ☆アイランド | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

f:id:pouhiroshi:20181231131146p:plain
タイトル画面可愛いよまじで

リスペクツ・ハイパーオリンピッククレー射撃
リスペクツ・ハイパーオリンピック・クレー射撃 | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

f:id:pouhiroshi:20181231131305p:plain
最初スパイクがあって止まっちゃうのでなんとかしたい


けどあまりゲーム開発できなかったのには理由があって、今年は「ゲーム作りを続けるための(生活)基盤を作る」というテーマがあったからです。
その点ではものすごく成果があった一年となりました。

成果その1 リモートワークを獲得できました!

長年の夢が叶いました。現在常駐しているクライアントさんには1年以上お世話になっていたのですが、契約更新のタイミングで、「リモートワークできるところを探しています。できないのであれば他のクライアントさんを探します」とお伝えして他の案件を探しました。(結果的に見つからなかった)
けど何かの齟齬があったらしく、リモートワークは許可してもらえず、次の更新時に現場のリーダーの方と直接話したら「え?全然できますよ。」と言われ、あれえええええ??!!
たぶんエージェントさんもまずい伝え方をしたんじゃないかなーとか思いつつも、はれて来年からリモートワークできるようになりました!!\(^o^)/ やったぜ!

成果その2 ロボット教室を始めて副収入が入るようになりました!

5月からフランチャイズとしてロボット教室をはじめました!
1年で生徒20人くらいになればいいなぁと思ってたんですが、今の時点で15人!
まずまずのスタートになったと思います。
こどもが小学生ということもあり、地域の教育活動に貢献できたらいいなとはぼんやり考えていたのですが、生徒さんたちも楽しそうに参加してくれて、始めてよかったなぁと思っています^^
それなりに収益もあがっており、来年からはプログラミング教室もスタートさせます。
あわよくば隣の駅に第2教室も検討したりするかもしれません!
kids.athuman.com

成果その3 家の近くに事務所兼コワーキングスペース「カモラボ」を設立しました!

こちらも長年の夢だったコワーキングスペースを事務所兼としてスタートさせました!
kamolab.strikingly.com

家の近所(歩いて5分)のマンションの一室を借りていまして、ゆくゆくはプログラミング教室の場としても使えるようにしたいと思っています。
今月からロボット教室の収益で家賃もカバーできるようになりましたので、ここからさらに収益化を目指していきたいところです。
そうそう、カモラボのロゴはミライノ制作所の未来さんに作っていただきました(*´∀`)

f:id:pouhiroshi:20181231132328p:plain:w400
この素敵なロゴを見よ!
さすがプロの技・・・・とても華やかな印象になりました。ありがとうございました!
ミライノ制作所HP www.mirai-no.com

また、個人開発仲間の森のクマさんことふりふらさんには、カモラボの紹介記事を書いていただきました!
blog.item-store.net

記事どころか、看板にも寄稿していただいたよ!!

f:id:pouhiroshi:20181231132553p:plain:w350
ちゃんとカモ入りいぃぃ!!

ふりふらさんの2019年活動にも注目ですぞ!!
森クマblog

教室スペースはインスタベース、スペースマーケットなどに掲載をはじめているのですが、何回か貸し出し実績も出てきました!こちらも今後が楽しみです!
www.instabase.jp

成果その4 メインクライアント以外からのお仕事をいただけることが多くなりました!

個人開発者の知り合いや、昔のクライアントさんが独立されてお仕事をくれたり、知り合いの紹介からのさらに紹介、など、人脈なのかよくわかりませんが、いろいろお声がけいただくことが増えてきました。
技術力はさほどないのですが、こうやって声をかけていただけるのはフリーランス冥利につきるなぁと思っています。
フリーランスは、大手の目の届かない個人や中小企業などの隙間ニーズを、動き軽快さを武器にくみとっていけるのが生き残る秘訣かなぁと思っているのですが、だんだんそういう基盤ができてきた気がします。
ぜひ来年もそういう小さなお悩みを解決できる、アジリティあるフリーエンジニアでありたいと思います。

来年に向けて・・・

以上、テキストばかりの今年の振り返りでしたが、たくさんの成果が出て充実した一年になりました。

来年はこれをベースにして、ゲームを作ったり、遊んだり、収益基盤をさらに安定したものにしていきたいと思っています。

それではみなさん、来年もぽうひろをよろしくお願いいたします!!!
よいお年を!!

Puppet3Dを試してみる

この記事は
Unity アセット真夏のアドベントカレンダー 2018 Summer!
http://assetstore.info/eventandcontest/adventcalendar/asset-adventcalendar2018summer/
に参加しております。

私はPuppet3Dを試してみるということでエントリを書いてみたいと思います。
アセットはこちらです。

公式サイトはこちら
https://www.puppet3d.co.uk/

Puppet3Dは、2018/6月の~ドル以上買ったらアセット無料でもらえるよ!キャンペーンでいただいたアセットです。
たまに3Dモデラーさんからボクセルのキャラクターを提供していただいたりすることがあるのですが、Blenderとかでリギング?やボーン?やアニメーション?を入れたりするのが大変そうなイメージがあります(自分はあまりやったことがない)
それをPuppet3Dの素敵な機能で楽に作業できちゃうんじゃないかな!
という淡い期待を込めて、実際にやってみていきたいとおもいます。

Puppet3Dの特徴をアセットページのまま転載します。
Features

  • AUTORIG - Rig it in a minute! Makes rigging a biped really fast.
  • Create bones and skin them to any character or asset.
  • IK & FK - Make IK controls for the limbs, which can blend between IK and FK.

Create a "Mod-Rig" on a humanoid in 1 click, to modify or make new animations.

  • Advanced Rigging - Spline Controls for tails and bendy things, Parent, Orient, IK and Global controls.
  • Paint the Skin Weights.
  • Voxel based default skin weights. Spreads the weights through the characters volume.
  • Pose Saving & Loading
  • Bake Control Animations Onto Bones

なんとなく、

  • AUTORIG - Rig it in a minute! Makes rigging a biped really fast.
  • Create bones and skin them to any character or asset.
  • Voxel based default skin weights. Spreads the weights through the characters volume.

この辺の機能が使えたら(私は)とても幸せになれそうですね(n*´ω`*n)
このあたりを重点的に使ってみたいと思います。

# AUTORIG
まずはMagicaVoxelに最初からついているキャラクターをエクスポートしてみます。
MagicaVoxel
は1dotの箱をどんどんくっつけてボクセルモデルを作るイメージのお手軽3Dモデラーソフト(無料)です。
こちら利用します。
f:id:pouhiroshi:20180813101116p:plain

モデルはTポーズにしておくと、リギングしやすいそうなので、ちょっと改造してTポーズにしておきます。
f:id:pouhiroshi:20180813101125p:plain

エクスポート形式、いっぱいあってよくわからないですが、よくみかけるobj形式で出してみます
f:id:pouhiroshi:20180813101136p:plain

3つのファイルができました。
f:id:pouhiroshi:20180813101145p:plain

これをUnityのプロジェクトにドラッグドロップでいれてみます。
f:id:pouhiroshi:20180813101210p:plain

objファイルをInspectorで見ると、取り込めているようですね。
これをAUTORIGしてみましょう!

objをScene上に配置して、MeshRendererがついているGameObjectを選択します。
f:id:pouhiroshi:20180813101257p:plain

選択状態で Window > Puppet3D を選びます。
f:id:pouhiroshi:20180813101338p:plain

すると、Puppet3Dのメニューが出てきます。なんかこれでできそうですね!
ボクセルなのでKeep Voxelsのチェックをつけて、まずはMake Guidesボタンを押してみましょう。
f:id:pouhiroshi:20180813101406p:plain

すると、人型に点がうたれましたね。
先ほどはなかったMesh Colliderもつけられているようです。

またHierarchy上にはchr_sword_GUIDES なるオブジェクトが作られています。
中をみてみましょう。
f:id:pouhiroshi:20180813101503p:plain

ちょっとわかりにくいかもしれませんが、各体の部位ごとのGuideスクリプトがついたGameObjectが作られていました。これをいい感じの位置に調整してリグをつけるのかもしれません。

f:id:pouhiroshi:20180813101533p:plain
結構ずれてる(頭が大きいせいかな・・・・)Guideの位置を移動して調整します。
これを自動でやってほしかったんだけど。。。w


これでAuto Rigボタンを押してみます!
f:id:pouhiroshi:20180813101550p:plain
ぎゃあああああ! なんかレインボーカラーになってしまいましたよ!
Keep Voxelsというチェックを外して再度AutoRigボタンを押してみると・・!!

f:id:pouhiroshi:20180813101608p:plain
なんか素敵な感じになりました!
骨も見えています。

これでいちおうリギングとボーンが入ったのかな?
Global_CTRLというGameObjectができているので、中をのぞいてみると
IKの部位に応じたコントローラ(IK Control)が入っています。
f:id:pouhiroshi:20180813102145p:plain

このIKFKというスライダをいじってみると。。。
f:id:pouhiroshi:20180813102210p:plain
手が腕と連動して動きましたよ!!

IK Controlのスライダだけではなく、〜CTRLとなっているオブジェクトのPositionやRotationをかえるとこれでも部位が連動して動作します。
(これは胸のポジションを前にだして、胸を突き出している様子)
f:id:pouhiroshi:20180813102225p:plain

このGlobal_CTRLを操作すれば、スクリプトから面白い動きをさせることができそうですね!

なお、ちょっとモデルを見るとわかるのですが、頭と体がちゃんと分離できておらず、
同じスキンのような感じで頭がひっぱられて動いてしまっています。
おそらく、Puppet3Dの以下の機能
# Create bones
# Voxel based default skin weights
をちゃんとつかえば分離できるのかもしれませんが、今回は時間の関係でここまでにしたいと思います。

ここまで、Puppet3Dで3Dキャラクターのobjモデルを読み込ませてリギングや骨入れする機能を使ってみました。

他にも機能がいっぱいあって可能性を感じます。

ぜひ、ピンときた方は使ってみてくださいね!

明日は
うら干物さんの 「稲妻のアセットを使って、フォースの暗黒面に触れる」
です。エフェクト系の記事でしょうか、楽しみですね!

それではまた!

ぽうチャンネル配信:2064: Read Only Memories初見プレイ

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

先日、事務所に光回線が開通しましたので、ゲームプレイ実況と開発実況を本日開始しました!

ゲームプレイ実況の方は、Steamでリリースされた「2064: Read Only Memories」です。

[ネタバレあり]2064: Read Only Memories初見プレイ

開発実況の方は、Blenderをいじいじしております(全然できてない

SleepNel開発室実況

今後、頻繁に生配信していきますので、チャンネル登録と高評価よろしくお願いします!!

咳が止まらないので、早く直したい!!

それではまた〜

SleepNel事務所開設しました!

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

すっかりご無沙汰になってしまいましたが、、、、

なんと!わたくし!

事務所はじめました!

f:id:pouhiroshi:20171120114104j:plain:w300 f:id:pouhiroshi:20171120114148j:plain:w300

本当はコワーキングスペースの運営をやりたいなと思っていたのですが、まずは個人事務所を開設することになりました。
(※個人事務所レベルでもパソコンや机など、いろいろ備品でお金が超かかりました。。。まずは個人事務所でよかったと今では思います・・・・(;´Д`))

いまのクライアント(常駐案件)との契約を80%にカットし、午前は事務所で個人開発、午後から常駐先という働き方に11月からチェンジしました。

場所は横浜 関内でございます。
事務所と常駐先は一駅しか離れていないため、移動はラクです。

これによって私の生活リズムはこうなりました。(以下参照)

Before

f:id:pouhiroshi:20171120112842p:plain
↓↓↓↓↓↓
After
f:id:pouhiroshi:20171120112852p:plain

細切れだった個人開発時間が、午前のまとまった時間になりました。それでいて通勤と帰宅の時間は変わっていません。
これにより全てが万々歳かというとそうでもなく、切り替えもそれなりにMPを使いますし、単純に作業時間が増えるので疲れます。

無理せずに休憩を織り交ぜつつやっていきたいですね。

よさそうだな〜という物件をみつけてから手続きなんやらで2ヶ月はかかってしまいましたね。

住居用賃貸と事業用賃貸はぜんぜんノリが違くて、いい経験になりました。

はやく印鑑文化滅びてほしいけどね!!

引っ越しの様子はこちらのご覧ください!










今のところ、足りない設備は
電子レンジ
冷蔵庫(小さいやつ)
光インターネット回線(工事待ち中・・・はやくして!)

午前時間もゲームやってたら気づいたらあっという間にすぎてしまうので、
今後どのようにインディーゲームに関わっていこうか、慣れていきながら考えていきたいと思います。

めざせ!横浜のRoom6!!?

それでは、今後ともSleepNelをよろしくお願いいたします!!