よねむらスキルアップ

ゲーム制作など

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しかなくて詰んでる。

unity1week(ぎりぎり)に参加した話

2度目の参戦となるunity1week。

今回のお題は「ぎりぎり」。ということで、真剣白刃取りをモチーフにしたゲームを作ってみました。

 

シラハ | 無料ゲーム投稿サイト unityroom - Unityのゲームをアップロードして公開しよう

 

 

今までは、いらすとやさんにお世話になっていたのですが、今回は画像のドット絵も自分で描いてみました。

 

今回の制作で感じたこと
  •  今までアニメーション勉強したこと無かったけど使ってみると見た目に面白い、勉強してみたい
  • カメラを動かすことによって重力感を出せる
  • ミニゲームはテンポが大事、今回の出来はテンポがちょっと悪い
  • 進捗を上げずに公開まで隠してたので、公開前に目立てなかった
  • ランキングめっちゃ重要、ユーザーがどのあたりまで出来てるのか分かるし、どのくらい遊んで貰えたかが数値で分かる。便利。

実質最終日間際にギリギリで開発したのでレベルデザイン周りが甘かったのが後悔です。

 

今回の制作にあたって、新しく勉強したことは無いので、今までの知識だけで作りました。

自分の現在のスキルだとこのくらいが限界なので、6月いっぱいは知識や技術のインポート期間に出来ればいいなと思っています。

 

unity1week参加者の皆さん、お疲れ様でした!皆さんのゲームもちまちま遊ばせて貰います!!

 

P.S.

今日、ゲーム会社のサマーインターンの面接に行ってきました。

結果はボロボロ。あまりに緊張してしまって小声でキョドってしまいました。

面接なんて2年前にバイトのを受けたぶり、しかも今回のは就活にも関わってくると思うとガチガチになってしまいました…

自分の創作物にもっと自信が持てるようになれば自然と胸を張って話せるようになる(と信じている)ので、精進を続けたいと思います。

 

やはりゲームを作りたい、俺はヤングマン

前回の記事、たくさんの方に読んで頂けたようです。皆さんありがとうございます。

yonemura.hatenablog.com

 

この記事から2日経ちました。相談に乗ってくれた友人や先輩もいました。

この2日で僕が考えたことを、今回は書こうと思います。

 

どんな仕事があるのかを調べた

接客か、ゲーム作りかくらいにしか頭が働いていなかった僕は、まずこの世の中にはどんな仕事があるんだろうと調べてみました。

マイナビ新卒紹介さんの記事を読んで、仕事を8つの業界に分けていると知りました。

知っておきたい、業界分類一覧と解説|マイナビ新卒紹介|新卒学生向け無料就職エージェントサービス

この8つの中だったら、やってみたいのは、「メーカー」「ソフトウェア・通信」の2つに絞られました。

 

まずは「メーカー」について調べてみました。

メーカーといってもB to BかB to Cか、素材を作るか組み立てるか等、種類があるようです。

メーカーの職種も見てみました。営業、生産管理、商品企画、研究開発、etc...

いろいろあります。しかし、どうもピンと来ません。

ハッキリとした理由はありませんが、ピンと来ないことには来ないのです。

 

次に、「ソフトウェア・通信」です。

これは、調べれば調べるほど「ああ働きたい」って思わされました。

まず一歩前進です。何がしたいのかわからないと言っていた僕が、「ソフトウェア・通信」業界で働きたい、までやってきたのです。

 

さて、ソフトウェア・通信業界にも色々あります。IoTとかなんとか色々言われていますし、通信に携わったり、まあなんか色々あるわけです(説明が面倒になった)。

ボーっと眺めていた結果、やっぱり僕はエンジニアになりたいみたいです。

何故エンジニアになりたいのか、プランナーとか企画では無いのか。

理由は次にあります。

 

Unityでゲームを発表した経験

2年後期、楽しく5~6本くらいのミニゲームを作りました。一人で作ったものが殆どです。アイデア出しか素材選び、プログラミング、デザインなど全部一人です。

行き詰まってしんどいこともありましたが、開発中は自分が考えれば考えるほどゲームの機能が増えて行ったり、面白くなったり(逆もある)、とっても楽しい時間でした。

さてゲームが完成した後はもっと楽しいです。誰かが僕のゲームを遊んでくれる、それだけでも凄いことなのに面白いと言ってくれる人もいる。

これが嬉しくないはずが無いんです。

元来目立ちたがりで褒められたがりの僕にとって、これは最高級に嬉しいことでした。

 

就活の為にゲームを作るのが嫌、と前回言いました。それはそうです。

僕が何の為にゲームを作るか、それは僕自身の為なんです。

「そこは皆を楽しませるためって言うところだろ!」という言葉も来そうです。

もちろん僕のゲームで誰かが楽しい気分になってくれたらそれはそれは嬉しいことです。しかし、人間は自分中心の生き物です。「就活の為」にゲームを作る事を嫌がっていた人間が、「誰かの為」にゲーム作りを再開しても、また躓きそうです。

なので今は「僕の為」に僕はゲームを作ります。その中で、だんだん皆に楽しんで貰えるゲーム作りが出来るようになればいいなと思っています。

(誰かを楽しませたいという気持ちがない訳ではないことだけは、理解して頂きたいです。)

 

この2日間で目標も絞れました。

・ゲームの開発しかしたことが無い為、視野を広げる為にゲーム以外の成果物を作る。

 →Javaの勉強をする

・ゲーム開発を再開してみる

 →明日にでもゲーム作り脳にシフト

・どんな結果になってもいいのでunityroomの1weekGameJamは絶対参加してやりきる

 

以上が僕がこの2日で考え付いた、5/17現在の僕の思いです。

最後まで読んでくださった方、ありがとうございます。

また、よねむらのことを応援して下さると嬉しいです。

 

タイトルについて

西城秀樹さんが63歳で亡くなったそうです。ご冥福をお祈りします。

歌手の西城秀樹さん死去 63歳、ヤングマンなどヒット:朝日新聞デジタル

僕は西城秀樹さんの曲はヤングマンしか知りません。なのでヤングマンをしっかりと聞いてみようと思いました。

YOUNG MAN (Y.M.C.A.)」はアメリカのヴィレッジ・ピープルというグループの楽曲のカバーです。1979年2月21日にリリースされたそうです。西城秀樹さんは1955年生まれなので、24歳の時の楽曲になります。僕は今20歳、西城さんがヤングマンを歌ったのと同年代になります。

 

ヤングマンを聞いたのですが、この曲は今の僕にドンピシャでした。

ちなみに歌詞の「Y.M.C.A.」は「Young Man Can do Anything」の略だそうです。

http://j-lyric.net/artist/a0004a3/l002f85.html

この時の西城さんはヤングマン、そして僕もヤングマンです。

夢があるならば戸惑うことは無い

憂鬱を吹き飛ばして元気を出せ

若いうちはやりたいこと何でも出来る

君の行く先に楽しめる事があるんだから

こんなことを言われて、僕は涙を流さずにはいられませんでした。

ボロボロ泣きました、そして「明日から頑張ろう」そう思いました。

西城秀樹さん、素晴らしい曲をありがとうございます。

僕、頑張ります。

f:id:ynmr2:20180518001320j:plain