読者です 読者をやめる 読者になる 読者になる

hisaitamiのブログ

とあるプログラマーの日常

HoloLensアプリ開発(12日目)『Unity5 3Dゲーム開発講座』を読む

ずいぶん前に買ったのですが…

先週、シェーダーの勉強をしようと思って「The Book of Shaders」でGLSLを触ってみたのだけど、UnityでのGLSLサポートはテスト目的のみが推奨で、通常のケースではCg/HSLで記述することが後で分かってショックだった。

いろんな技術情報blogを参考に真似しようとすると、

知らないことが多くて頓挫することが多い。

ふと棚をみるとこの本があったわけです。

とても分かりやすい

CHAPTER 01が読み終わった。

  • 知識ゼロから始められる
  • 手順が細かく書いてあるので再現できる
  • 用語の説明が完結で分かりやすい

先に読んでおけば

最初に読めばよかったなと思ったけど、やりたいことが先にあってとにかくやってみた、というのもアリだと思う。

ただ技術書には「賞味期限」がある。

内容が古くなるまえに読まないと役に立たなくなってしまう。

この本は2015年1月のUnity5 β19を前提に書かれているのだけど、

2017年の今でも基本的なところが変わってないUnityは一貫性があって助かると思った。

HoloLensアプリ開発(11日目)HoloLensを外で使う

HoloLensアプリの開発で作ってみた「旗」と「桜」の2つを、部屋の外で表示するとどうなるか実験してきました。

実際の景色にホログラフィックを重ねるのは思ってたより楽しかったです。

www.youtube.com

www.youtube.com

録画するのに「Hey Cortana, start recording」と音声コマンドでやってたのですが、

発音が下手なためコルタナさんに聞き返されたり、声が小さくて無視されたりして苦労しました。

スムーズに命令できるように発音を練習したいと思います。

音声コマンド以外(例えばスマホなど)から録画を開始する方法がありそう。

HoloLensアプリ開発(10日目)旗を掲げる

今日はAFC第一節

今日は等々力でフロンターレの試合があるってことで、熱心なファンの家には旗が飾られていた。

HoloLensとUnityを使えば自分でも旗を出して応援できると思ったのでやってみましたー。

Unityで旗を表現するには

まず最初に、こちらの記事を参考にさせていただきました。

ndabecha.blogspot.jp

ClothコンポーネントやSkinned Mesh Rendererなど、便利なものが最初からあることを知った。

しかし、自分の知識ではまだ使うのが無理だったのでアセットストアを探してみることに。

困ったときのアセットストア

Cloth animation based Flagというアセットがありました。

https://www.assetstore.unity3d.com/en/#!/content/65842

アセットを使うことで旗を表示するところはクリア。

等々力までの道のりを旗で埋め尽くしてみたいです。

HoloLensアプリ開発(9日目)The Book of Shaders

HoloLensの桜吹雪アプリを会社の人に見てもらったら、「へー」とか「これで枯れ木に花を咲かせたりできますか」とか分かってもらえたので嬉しかった。

本当は外で試そうと思ったら、昨日は午後から雨が降ってきたので中止。

『The Book of Shaders』

第二章「アルゴリズムで絵を描く」の"シェイピング関数"をやってみた。

thebookofshaders.com

基本的な関数

Processingとかでカジったことあるけど、初めて腑に落ちた。

  • 一次関数→直線
  • 二次関数→曲線
  • 三角関数→周期

Kyndaが作った数式の表

macOSにはGrapherという数式をグラフ化してくれるツールが標準で入っている。

初めてつかってみたけどとっても便利だった。

f:id:hisaitami:20170221083609p:plain

Kyndaの数式をひとつずつ打ち込んで理解に務める。

  • x0.5は凹む
  • x1はそのまま
  • x1.5は膨らむ
  • absは跳ね返る
  • sin(x)とsin(πx/2.0)の違い
  • 1.0からマイナスすると反転

HoloLensアプリ開発(8日目)桜吹雪その2

今日はソードアート・オンラインを見に行く前に、別の方法を参考にして桜吹雪のやつを…。

パーティクルを使ったエフェクトの作成方法は人それぞれやり方が違って勉強になりました。

明日公園でどう見えるか試験してみたいと思います。

HoloLensは音量UPボタンとDOWNボタンの同時押しで静止画を撮影できるんだけど、動画は「Hey Cortana, Start recording」って音声で命令する必要があるのが最大のネックだ。

HoloLensアプリ開発(7日目)桜の花びらが舞う感じのやつ

ポケGOクローンの改良をしようと思ってたけど

起きたら気が変わって、

まだ早いけど桜の花びらが舞うイメージのHoloLensアプリを作ってみることにした。

やりかたを調べていたら、とても参考になるというかそのままの記事がありました。インターネットバンザイです。

tsubakit1.hateblo.jp

予備知識が必要だったので、Unityのパーティクルシステムについて調べてみた。

docs.unity3d.com

メッシュとスプライト

メッシュとスプライトは明確に定義された固定形状のオブジェクトを描画する方法である。

  • 3Dではほとんどの要素はメッシュが使われる。
  • 2Dではスプライトが使われる。

移動する液体、煙、雲、炎などを表現するためには、パーティクルシステムという方式を使用する。

パーティクルシステム

パーティクルシステムは、パーティクルの集まり。 各パーティクルは小さな部分を表し、すべてのパーティクルを一緒にして全体の実体が作成される。

  • それぞれのパーティクルにはlifetime(寿命)が設定されている。
  • パーティクルはパーティクルシステムによってemitted(放出)されたときにlifetimeのカウントを開始する。
  • システムは、球、半球、コーン、ボックスやその他のメッシュの領域内にあるランダムな位置にパーティクルを放出する。

紙ふぶきのやり方が分かったので

パーティクルの形状を桜の花びらにする方法を調べてみたら、とても参考になるというかそのままの記事がありました。インターネットバンザイ!

qiita.com

パラメータをちょこっと変えて、こんな感じにしました。

明日、外で試してみたいと思います。

HoloLensアプリ開発(6日目)ポケGOクローンのチュートリアルをやってみた

HoloLensの公式チュートリアルが終わったので、次にやってみたのはLightBuzzのチュートリアル

lightbuzz.com

GitHubからソースコードをダウンロードして真似すれば簡単にできるかと思ったらハマってしまいました。

オリジナルのプロジェクトの「Hierarchy」や「Inspector」を自分のプロジェクトとひとつずつ見比べながら作業することで、ようやく同じような動作をするようになった。簡単にdiffを確認する方法を知りたい。

以下は作業ログ。

プロジェクトの作成

  1. Unityを起動する
  2. 「Project name」を適当につける
  3. 「3D/2D」は3Dを選択する
  4. 「Enable Unity Analytics」はOFFにする

Unity AnalyticsをONにすると、https://analytics.cloud.unity3d.com/ に作成したプロジェクトが管理され、DAU、MAU、ユーザ数、収益などを見ることができる。

しかし、このWebコンソール、「Create New Project」というボタンは分かりやすいところにあるんだけど、登録されているプロジェクトを削除する方法が分からない。

気がついたらゴミで溢れてしまうので、「Enable Unity Analytics」はOFFにしておく。

シーンの作成

  1. Assetsの下にScenesというフォルダを作成する
  2. Mainという名前でシーンを保存する
  3. 「Main Camera」を選択してInspectorで値を編集する
  4. Transform>Positionを[0,0,0]にする
  5. Camera>Clear FlagsをSolid Colorにする
  6. Camera>Backgroundを[0,0,0,0]にする
  7. Camera>Clipping Planes>Nearを0.85にする

猫モデルを配置する方法は記載されてないのでオリジナルのプロジェクトをUnityで開いて確認する。

ジェスチャーでボールを投げる

最初は勉強のためにスクリプトを書き写して動かそうと思ったけど、全く反応も無いしエラーメッセージなど手がかりも無かったのでコピペした。

「Hierarchy」や「Inspector」を調整して動くようになった。

モデルを変えたり、スコアとか情報を表示するよう改造してみようと思います。