よねちゃんねる

@Ynmr_2 のゲーム制作、就活、エトセトラ

UNDERTALE、Gルートをクリアした話

 

2017年3月3日、全てはここから始まった

 

この日からSANSに苦しめられ、時々チャレンジしては挫折を繰り返していた。

 

Switch版出たしいい加減やるか

NルートもPルートも、1年半前の記憶なので殆どない。

かといってGルートSANSまで来てリセットは辛い。

やる気を出せ。

 

9/18 20回

9/19 33回

9/21 20回

9/26 13回

 

86回やられてようやくSANSを乗り越えることが出来た。

 

Gルートをクリアして

 

こんなにクリアして嬉しくなかったゲームは無いです。

SANSを超えた瞬間は、「よっしゃあ!!」と声は出ました。

ただ、その後は「うわぁ……」としか言えず、終始無言でした。

凄いですUNDERTALE、心にキます……

次はもちろんPルートに戻って、全員救って見せる……

見せる…

 

このゲーム最強の敵、難関であったSANSを乗り越えて、えっ…そんな…マジ??

って感じさせるUNDERTALE。

虐殺者に救いも友達もいないんです。その通り…

 

自分用攻略メモ

Undertale Sans 攻略 | ゲームブログ(仮)

Undertale Sans 攻略(後半) | ゲームブログ(仮)

基本は上サイトを参考にしました。

 

僕の苦手ポイント

f:id:ynmr2:20180918042018j:plain

骨リフトがめっちゃ苦手。

大体の攻略サイトには、「タイミングよく避けよう」ってありますが、まずジャンプするリスク、落ちるリスクが怖いので、

僕はリフトに乗ったまま避ける方法を探しました。

 

骨リフト1回目

行き:1本目は真ん中左寄り、2本目以降素早く右端

f:id:ynmr2:20180926035321j:plain

帰り:右端、最後の1本は真上にジャンプ

f:id:ynmr2:20180926035323j:plain

 

 

骨リフト2回目

行き:1本目は落ちるギリギリの右端(落ちるリスクの方が大きいのでダメ食らってもいい)、2本目以降は左端

f:id:ynmr2:20180926035325j:plain

帰り:行きのまま左端、最後は真上にジャンプ

f:id:ynmr2:20180926035328j:plain

 

 

 

unity1week「あつい」に参加して、撃沈した話

ペンギンショー

こんばんは、お久しぶりです。よねむらです。

3度目のunity1week参戦です!

↓前々回
yonemura.hatenablog.com


さて、今回のテーマは「あつい」。色々考えた結果、あついの逆にさむいで行こうということになり、
水族館でペンギンがショーをする音ゲーを作りました!

以下リンクで遊べます!
ペンギンショー | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう


まあ、僕が可愛いペンギンのドット絵が描きたかったっていうのが理由の7割だったりします。

タイムスケジュール

曜日 内容
企画書作り、ペンギンのドット絵描き・アニメーション作り、空ビルド、空アップロードチェック
音ゲー判定の実装作業
音ゲー判定の実装作業
音ゲー判定実装作業完了、リザルトシーン作成、UI実装
ツイート実装、タイトルシーン作成、シーン遷移、フォント選び、アップロード
インターン
インターン


今回は土日にインターンがあったため、平日のみの開発となりました。
金曜を〆切に想定して動いていたので、前回のように土日に焦ることは無く開発を進められました。

音ゲー部分の実装

今回は初めての音ゲー制作だったので、ここを参考に作りました。
qiita.com

f:id:ynmr2:20180917214522j:plain
こんな感じで、背景画像の裏で判定取ってました。

ただ、譜面に対する成功失敗判定などがスマートに組めず、「ピッタリの時間 ± 15msなら可」みたいな判定をノーツごとに書く力技で解決しました。
なので、「またペンギンの音ゲーを別の曲で作って!!」と言われるとまた判定ピッタリの時間を見つけて…みたいなところから始まります。大変そう。

感想

今回まずは、可愛いドット絵ペンギンでゲームが作れたことには満足しています。
前回、白刃取りのゲームを作って母親に遊んでもらったら
母「こんな切られたら血が出るみたいなのじゃなくてさ~~、風船が割れちゃうとかもっと可愛いのにしなよ~~」
と言われたので、ペンギンなら文句無いやろってことで。

また、ビジュアルのお陰かTwitterでの反応も良かったです。
いつもは大体知り合いからの反応で留まるのですが、割と広がってくれて嬉しかったです。
あと、進捗を毎日作業終わりにツイートすると反応貰えるのでモチベに繋がりました。進捗ツイートはしたい。

以下、反省点(撃沈要素)

リズムゲームを作ろうっていうことで、リズム天国のような「前に鳴った音の真似をするゲーム」を作りました。
しかし、これが非常に分かり辛かった。
笛に被せるように押すのか、いつから押し始めるのか、そもそも4拍なのか8拍なのか、その辺が全然分かり辛く遊びづらいゲームになってしまいました。

UIデザインができていないとどうなるでしょうか。
遊ぶひとは、どうやったらできるのかと悩むことになります。
場合によっては、何をしたらいいかさえ分からない場合もあります。
そんなゲームは決して楽しいものにはなりません。
楽しませることが目的のゲームにとって、これは致命的です。
だから、遊ぶひとがやりたいことを、悩まないように案内し、困らないように助けてあげ、
意識させず自然と導いてあげることが、UIデザインということになります。

https://www.hallab.co.jp/create/process/06/

www.hallab.co.jp

そう、僕は今回、楽しませる段階に立つことが出来なかったのです。
言われてみれば、その通りっていうことだらけでした。いつボタン押したらいいのか分からない、それはそうです。
制作していくうちに「これくらいならまあ、分かるでしょ」という気持ちが出てきて、
説明を疎かにしたり、特に分かりやすくする工夫などは考えませんでした。
ゲームは遊んで楽しいものなのに、操作が分からず辛いのはもうゲームとは言えないですよね。
これが今回の最大の反省です。

次にゲームを作る時の自分へ

  • unity1weekだとしたらUIに丸一日以上使え
  • 「これくらいは分かるでしょ」は甘え、誰が触っても出来るように意識しろ
  • 余裕あったらランキング付けろ、ってかランキング化出来るような要素を足そう(再プレイ誘導)
  • テンポ大事、今回のゲームは「いつまで続くんだコレ」って空気あるぞ
  • 音ゲーは大変だぞ(学んだ)
  • 金曜〆切の気持ちで動くと後々楽

ゲームの中身云々ではなく上手くプレイヤーに伝えることが出来なかったのは本当に悔しいです。
その辺意識して頑張ろうと思います。よい勉強になりました!!




 

A-Frameで日本語フォントする方法

暑いですね、よねむらです。

最近、WebVRを始めました。 中でもA-Frameで色々やろうと思っているのですが、A-Frameは日本語対応してないらしくかなり悩みました。

やり方

ここNon-ASCII Charactersが参考になります。

使いたいフォントを用意する

フリーフォントとか何とか探して、用意します。.ttfとか。

MSDFを生成する

MSDF font generatorにフォントを突っ込みます。

重要f:id:ynmr2:20180814162033j:plain

2.Select character setに、使いたい文字を全て入力する。 (入力した文字しか使えません)

そして、MSDFを生成します。

pngの名前変更

.png-msdf.pngに名前を変えます。

最後に

生成された.jsonと.pngを配置して使います。

(例)

<html>
  <head>
    <meta charset="UTF-8">
    <script src="https://aframe.io/releases/0.8.2/aframe.min.js"></script>
  </head>
  <body>
    <a-scene>
      <a-sky color="lightblue"></a-sky>
      <a-text value="ABCあいうえお日本語" font="custom-msdf.json" negate="false" scale="2 2 1" position="-2 2 -4"></a-text>
    </a-scene>
  </body>
</html>

UTF-8を設定するのも忘れずに。

これが誰かの役に立てば。

参考

備忘録 OculusGoにapkをインストールする方法

Unityで毎回Build & Runしないとデバッグも何も出来ないの面倒くさい…

adbをインストールするのは必須、ggればやり方出てきます。

1. Oculus Go の接続確認

>adb devices
List of devices attached
****** device

みたいになってれば接続できてるらしい。

2. インストールする()

>adb install [****.apk]

すると、

adb: failed to install ****: Failure [INSTALL_FAILED_ALREADY_EXISTS: Attempt to re-install **** without first uninstalling.]

など出てきて、インストール出来ない。

3. 今度こそインストールする

>adb install -r [****.apk]
  • r オプション : 既存のアプリを再インストールして、そのデータを保持

を付けることで解決した。

(3.5. 実はやっていたこと) # やる必要なし

実はアンインストールも試みた。
後で確認したけど、最初っから-rオプションで行けました。

> adb shell pm list packages -f

でパッケージ取得をして、それっぽいやつを見つける。

見つけたら、

package:/system/priv-app/Shell/Shell.apk=com.android.shell

の、=の後の "com.android.shell"を覚えておく。

>adb uninstall com.xxxx.appname

でアンインストールできる。

4. OculusGoで実行する

ライブラリ > マイアプリ > 提供元不明 > Project名(com.xxxx.xxxx)

表示はapkの名前じゃなくてProject名っぽい。
なので、別名apkでBuildしても、同名アプリだと判断されちゃうのかね。
それで2のエラーなのか…?

Oculus Go とUnityで、世界を歩いてみる

OculusGoを手に入れました。

 

「OculusGoとUnityで、FPS視点で歩き回りたい!!!」と思い立ち1日半くらい奮闘したので、忘れないようにここに残しておきます。

基本はこのページの、③GearVRコントローラーを使ってみるに基づいてます。

qiita.com

 

ビルド周りについては割愛します。

「Unity OculusGo ビルド」とかでggって下さい。

Oculus GoでUnity VRサンプルを動かしてみた - 趣味TECHオンライン | 趣味のモノづくりを応援するオンラインメディア

 

1.まず、アセットストアからVR Sampleをインポートします。

VR Samples - Asset Store

結構大きいファイルですが全部インポートします。

(将来的には、必要なものだけをピックアップしたい)

 

2018/7/17追記

Editor
Plugins
Readme.asset
Prefabs > Utils
Scripts > Common , Utils
VRStandard
ProjectSettings
Textures > GUI
Materials > GUI

のみのimportで行けるっぽい、余計なもの入れるとSwitch PlatformとかBuild重いものね

 

 

2.OculusUtilities.unitypackageをダウンロード、インポート

Oculus公式からSDKをダウンロード、解凍してインポートします。

Oculus Utilities for Unity | Developer Center | Oculus

 

3.OVRCameraRigを配置

MainCameraを削除します

(超重要、僕は削除を忘れていたコイツのせいで後々苦しめられました。さっさと削除しましょう。)

Assets>Oculus>VR>Prefabs>OVRCameraRig

を配置します。

 

4.VRCameraUIを配置

Assets>VRSampleScenes>Prefabs>Utils>MainCameraを一旦ヒエラルキーに配置。

MainCameraの下にあるVRCameraUIを、OVRCameraRigの下に配置します。

(親子関係が崩れちゃうけど大丈夫?的なのが出ます)

配置出来たらMainCameraは用済みなので削除。

 

5.OVRCameraRigに、スクリプトをアタッチする

 

 - VREyeRaycaster.cs (Assets>VRStandardAssets>Scripts)

 - VRInput.cs (Assets>VRStandardAssets>Scripts)

 - Raticle.cs (Assets>VRSampleScenes>Scripts>Utils)

 - GoControll2.cs

gist06dc2804e903cb98a4d97bf06b17c35a

Cameraが向いている方向に移動するためのスクリプトです。

OculusGoのコントローラータッチパッドのy入力に対応しています。

スクリプトの名前がダサくてすみません…)

 

インスペクタの値はこんな感じ

アクティブなカメラがCenterEyeAnchorのものだったのでそれにしました。

f:id:ynmr2:20180705013658j:plain

 

6.Cubeやら好きなものを配置

ここまで来たら歩く世界を作るだけです。

Cubeを置くだけでも、アセットから引っ張ってきた場所を歩くもよし。

 

7.ビルド!

ビルドしてOculusGoで試してみて下さい。

多分酔うと思うので気を付けて下さい…

お疲れ様でした。

 

感想

酔う、とにかく酔う。

Unity公式のVRチュートリアルにもFPSは酔いやすいので避けるべきって書いてあるしこれは要勉強。

VR における動き - Unity

しかし、VR空間で歩き回ることが出来たのであとはOculusGoのコントローラー入力周りを理解出来ればVRゲーが作れそうだけど、今日はもう被れません(体力的に)

VR開発楽しい、さようなら単位。

 

 

参考記事

GearVR x Unity - 視線や専用コントローラーで操作するサンプル

Oculus Go開発【コントローラー表示、クリック反応、移動、ポインタ、uGUI】 - トマシープが学ぶ

【連載】VRコンテンツの作り方 [15] Gear VR Controllerへの対応|開発ソフトウェア|IT製品の事例・解説記事

GearVRコントローラーをUnityで使う - のしメモ アプリ開発ブログ

 

Unityでマルチプレイゲーム作る知識

自分の為のまとめ。

Unityチュートリアルを基にしています。

unity3d.com

 

ネットワークマネージャー

マルチネットワークを管理するオブジェクト、管理人。

追加するコンポーネント2つ

... Network > NetworkManager

 ネットワークの状態管理

... Network > NetworkManagerHUD 

 NetworkManagerと連帯した、マルチネットワーク用のUI。左上のやつ。

 

NetworkIdentity

・ネットワーク上でオブジェクトを識別可能にする

・ネットワーキングシステムにそれを認識させるために使用されます

 

マルチプレイ世界で認識させたいものには全部付ける…(?)

 

スクリプト

using UnityEngine.Networking

public class PlayerController : NetworkBehaviour

↑ネットワーク系でなんやかんやしたい時は、これを欠かせない

 

NetworkTransform

... Network > NetworkTransform

「このプレイヤーゲームオブジェクトの NetworkTransform は、そのゲームオブジェクトの Transform の位置(Position)・角度(Rotation)・縮尺(Scale)を、サーバーおよび全てのクライアント上で同期します。

 

こいつのお陰で別クライアントでも他プレイヤーの位置が反映されるぽい。

 

NetworkBehaviour

NetworkBehaviour - Unity スクリプトリファレンス

ここにスクリプトリファレンスがあって関数とか載ってる。

UnityでAndroid出力に苦戦したメモ【Unity 2018.1.6f】

Vuforiaを使ってARアプリをAndroid出力しようとしたけどエラー祭りで苦しんだのでメモ。

 

Android Studioを再インストールしてSDKのパスをチェックしたりいろいろしたがダメ。

qiita.com

「Unity Android unable」と検索して出て来た記事によれば、toolsを古いものに変えるといいとのこと。

…変えたけど上手く行かない

 

もしやと思って、toolsを一度削除してから、25.2.5のtoolsをSDKに置くとエラーは出なくなりました。

置換とかスキップとかいろいろやるより、ファイルの完全とっかえがベター。

 

その後はVuforiaのエラーCS0246。

nn-hokuson.hatenablog.com

SettingのXRでVuforiaを使うよ~ってやれば済む話でした。無事解決。

 

全然Unityが端末を認識してくれない問題。

www.raccooncatcher.com

デバッグ権限をPCに与えれば行けた、これ1時間くらい詰まったので覚えておきたい。

 

オートフォーカス無いとAR辛い問題

hikopatchi.hatenablog.com

ここから飛べるスレの、CameraFocusController.zipをDLしてARCameraにアタッチ。

AndroidManifestはいじらなくても行けた。(そもそもAsset>Pluginsが存在しない)

 

深夜に頭痛と戦いながら数時間やり合ったのでもう同じ轍は踏みたくない。

あと、AndroidStudio入れたのでCドライブがあと3GBしかなくて詰んでる。