困った時の自分用メモ

読んだ本を考察してメモったり、自分でいじった物の感想をメモったりする場。週1更新を目指します。

仕事の話~「何でもいいです」の無責任~

これは筆者の個人的考えであり、考え方は人それぞれ持っているというのは理解している前提を記載しておく。

 

表題だが、何の事を言っているかというと、そのまんまの意味だ。
ぶっちゃけ、ただの気遣いレベルの話でしかないが、こういう細かい所で効率が上がったりミスが減ったりするから、覚えておいて損はないと思う。

ちなみに、ここでする話は、仕事で発生する「何でもいい」に対しての話であり、プライベートではないのであしからず。

 

仕事に限らず、こういう経験はないだろうか。
こちらが何かを相談を持ちかけたことに対して

 

「何でもいいよ」

 

という回答に困ったことだ。

筆者も全く使っていないわけではないが、この「何でもいい」という回答は安易にすべきではないと思っている。

「何でもいい」とは、質問した側の人間を思って、良かれと思って言っている人が多いと思うが、それは間違いである。

理由としては、やり取りの中で「結論の確定」がなされないからだ。

 

そもそもとして、質問者側の視点に立つと、相談する内容を予め揉んだ上で、その内容を踏まえて「相談」を持ちかけている。それに対しての「何でもいい」という回答は、その相談を拒否・放棄していることと同じである。

 

例1)

A:ここの実装、1と2の設計考えたんだけど、どっちがいいと思う?

B:何でもいいんじゃない?

 

例2)

A:仮データのモデル、何がいいですか?

B:何でもいいです

 

1に関しては、文面だけでコミュニケーションが破綻しているのがわかるし、何も確定しない
2に関しては、質問者の質問もよくないが、やはり何も確定しない

 

確定しない事の何が問題かというと、その後に「で、結局どうするの?」というのが間違いなく発生する。つまり、確定をあと延ばしにして忘れ去られる可能性を増やしているだけなのである。

 

これの解決策は簡単だ。「何でもいい」のであれば、その「何でもいい」中から一つ指定をすることだ。

 

上記の例2に関しては、問いかける側の問いの問題もあるとは思う。「何がいい?」ではなく「どれがいい?」と選択肢を予め絞るべきだ。それに対しても「何でもいい」と答える輩は、もはや論外だ。

 

この手の「何がいい」「何でもいい」は、仲が良かったりお互いの事を良く知っている間柄であれば通用するかもしれないが、仕事をする上でそれを前提で頼るのはよろしくない。
何でもいいと言った物は、何でもよくない事の方が多いので、後々トラブルの原因になる。故に、潰せるのであれば潰すべき。

ゼネラリストになるだとか、チームの潤滑油になるだとか言う人は、この「何でもいい」という回答に関して、上記のような事を感じられるといいのではなかろうか。

Luaの話~LuaStateを作ると、どの程度メモリを消費するのか1~

▼検証コードメモ
    void Start () {
        Application.targetFrameRate = 60;

        StartDebugLog += "↓↓↓↓↓start↓↓↓↓↓\n\n";

        uint monoSize = Profiler.GetMonoHeapSize();
        uint monoUsed = Profiler.GetMonoUsedSize();
        uint tempSize = Profiler.GetTempAllocatorSize();
        uint totalUsed = Profiler.GetTotalAllocatedMemory();
        uint totalSize = Profiler.GetTotalReservedMemory();

        StartDebugLog += string.Format("mono:{0}/{1}kb\ntotal:{2}/{3}kb\ntemp:{4}kb\n\n", monoUsed/1024, monoSize/1024, totalUsed/1024, totalSize/1024, tempSize/1024);
        StartDebugLog += "↑↑↑↑↑start↑↑↑↑↑\n\n";

        StartCoroutine(CoroutineStart());
    }

    private IEnumerator CoroutineStart() {
        GameSceneManager.Instance.Initialize();
        GameObjectCacheManager.Instance.Initialize();
        AssetBundleManager.Instance.Initialize();
        ResourceManager.Instance.Init();
        RijindaelManager.Instance.Init();
        VersionFileManager.Instance.Initialize();

        yield return null;
        yield return StartCoroutine(LuaInit());
        yield return null;

        ClickDebugLog = "↓↓↓↓↓click↓↓↓↓↓\n\n";

        uint monoSize = Profiler.GetMonoHeapSize();
        uint monoUsed = Profiler.GetMonoUsedSize();
        uint tempSize = Profiler.GetTempAllocatorSize();
        uint totalUsed = Profiler.GetTotalAllocatedMemory();
        uint totalSize = Profiler.GetTotalReservedMemory();

        ClickDebugLog += string.Format("mono:{0}/{1}kb\ntotal:{2}/{3}kb\ntemp:{4}kb\n\n", monoUsed/1024, monoSize/1024, totalUsed/1024, totalSize/1024, tempSize/1024);
        ClickDebugLog += "↑↑↑↑↑click↑↑↑↑↑\n\n";
        OutputText.text = StartDebugLog + ClickDebugLog;
//        yield return null;
    }

▼UnityEditor上(ターゲットはAndroid
〇LuaState作成をする
mono:4940/20852kb
total:48811/205184kb
temp:16384kb



mono:5312/20852kb
total:49065/205184kb
temp:16384kb

〇LuaState作成をしない
mono:4944/20852kb
total:49083/205184kb
temp:16384kb



mono:5028/20852kb
total:49323/205184kb
temp:16384kb

約300kbくらい?

Android実機
〇LuaState作成をする
mono:0/0kb
total:5748/8823kb
temp:1024kb



mono:0/0kb
total:5844/9249kb
temp:1024kb

〇LuaState作成をしない
mono:0/0kb
total:5751/8828kb
temp:1024kb



mono:0/0kb
total:5843/8991kb
temp:1024kb

ほぼ変わり無し…?

 

▼タスクマネージャのリソースモニターで調べてみた

仕方ないので、EXE版をビルドし、PC上からリソースモニタでメモリの遷移を確認。

結論からかくと、ワーキングとプライベートがおよそ400kb増えていた。

10000個作ると、300mb程増えていた。

何にせよ、一個LuaVM立ち上げる程度だったら、そこまで神経質になるほどではなさそうだ。

▼ここまでの結論
参照の仕方が悪いのか、とりあえずメモリ使用量プロパティ上には明確に変化が現れる数値は確認できなかったが、リソースモニターで見た所、大幅にメモリ使用量が増えるような挙動は見せなかった。


アプリリリースの話~Androidアプリのストア登録2~

つづき。

その前に、リリース用APKを作成して、アルファ版の方でいいのでアップロードしておく事。そうしないと、この先の話の内容が設定できません。

リリース用アプリの作り方がわからない人は、keystoreとかでGoogle先生に聞いてみましょう。

ーーーーー

まずは、「コンテンツのレーティング」の設定。

これは、画像で説明する事が無いので、画面の指示にしたがって入力を進めていってください。

 

次に、「価格と販売/配布地域」

1. 無料か有料かの設定と、公開する国の設定。

f:id:mochimoffu:20170505163403p:plain

 

2.その他、各種ガイドラインや規約チェック関係のチェック

f:id:mochimoffu:20170505163408p:plain

f:id:mochimoffu:20170505163413p:plain

 

詳細が分からないところは、会社の法務の人と相談してみてください。俺にはよくわかりません(おい

大人のVRの話~自分なりに色々試して、いったん結論を出した~

大人のVRを体験して一週間。
この間に、色々思考を巡らせたり試行錯誤を繰り返して、いかにクオリティの高いVRコンテンツを得る事が出来るか、という部分を調査してみた。

結論からいうと、「VR対応動画を出している場所から、お金を出して買え」という、至極当たり前な結論に至った。
以下に、その結論に至った経緯を記載していく。


○試したこと
まず、VRコンテンツを得るには、以下の方法が考えられた

1. VR対応動画のサンプルで満足する
2. VR対応動画を公式で買う
3. 既存の2D動画を、3DVR化する
4. アップロードされているVR対応動画をキャプチャーに該当する何かをして、VRデバイスで再生できる状態にする

1に関してだが、これで満足できるならそれでいいのだが、
そもそも、PC向けには前回記事にアップした「Adult Festa」さんか「AVVR」さんくらいしか、まともなサンプルが見れるところが無い。
つまり、サンプルを探すにも一苦労というわけだ。
スマフォ向けには、他に数社あるみたいだが、個人的にはPCでないと臨場感が無いと勝手に思い込んでいるので、ここではスマフォ向けは割愛する。

2に関しては、もうそれ言ったら全部そうじゃん!って感じなので、本題の3,4の説明に入る。

3に関して、
まず、そもそもVR対応動画を取り扱っている会社も少なく、作品自体も多くない。
であれば、通常のAVをどうにか変換をかけて3D化してしまえれば、VR動画の本数が増えるまでの繋ぎになるのではないか?
という発想に至った。

早速、動画を左右に分割してくれるソフトをインストールし、編集し、VRで再生してみることに。



・・・・・


色々とおかしい
具体的には、画面の上下がVRデバイスで見ると引き延ばされたりしている。

VR対応動画と比べて気づいたのだが、VR対応動画の方には、3D化する為の左右に微妙に違う描画をするのと同時に、その動画自体に「パノラマ加工」が施されているように思えた。
つまり、ただ動画を左右に並べれば3D立体視はできるかもしれないが、VRデバイスで見た時は変な引き伸ばしのされかたをする。
動画自体がパノラマで撮影されていないのであれば、その動画をパノラマ加工をしなければ、VR上での臨場感は得られないという結論に至った。

そして、パノラマ化してくれるソフトは全く見当たらなかったので、通常動画のパノラマ加工というのは、一般的ではないのかもしれない。

結論を述べると、通常の動画を3DVRとして見れるようにするのは、今の段階では不可能に思える。



4に関して、
そもそも、やっていることがブラックに近いグレーというかブラックな気がするが、一旦それは置いておく。誰もダウンロードをしてるともしろとも言ってないからね!
そもそも、違法合法含めアップロードされているコンテンツは、解像度が低いし画質が荒過ぎる。
中には、きちんとVRデバイスで見れる物もあったが、荒すぎて画面全体にモザイクがかかっていると言っても過言ではなかった。

じゃぁどうするか。

画質を上げればいいじゃない!

という事で、解像度を上げるソフトと画質補正をするソフトをインストールして色々試した。



・・・・・



結論から述べると、あまり効果的な結果は得られなかった。
まず、「解像度を上げる≠画質が綺麗になる」と気が付いた。
元が汚い画像の解像度を上げるというのは、その汚い画像を引き延ばしても、綺麗に汚い画像を引き伸ばせる、という事だ。
何を言っているかわからないかもしれないが、そういう事なのだ。

なので、次は「画質を上げる」という発想に至り、これも色々試してみた。

こっちは、一定の効果があったのだが、やはり元の画質が汚すぎるとあまり意味をなさないのと、
公式が出しているVRサンプルに比べると、ツキとスッポンというレベルで綺麗になったとは言い難く、あくまでやらないよりマシな程度という結果に収まった。


以上の結論から、3DVRコンテンツとしてちゃんとした物を楽しみたい場合は、公式からお金を出して買う事をおすすめする。
(筆者はお金を出して購入した)



ここからは、個人の趣向が入るが、人によっては有益な情報に成り得るので戯言を書いていく。

まず、通常の2D動画だが、VRコンテンツには「シアター」と呼ばれる、映画館のような大画面で見ているかのような体験をさせてくれるソフトが多数存在し、
そこにAVを流して見ると、これはこれでなかなか有りな感じだったので、興味があれば調べてみるといい。

次に、3DVRコンテンツを買う時のコツというか、これは完全に個人の趣味の話になると思うのだが、
主観なだけだと、ただのAV見ているのとあまり変わりがないので、
よりシチュエーションが求められる物を選んで見てみるといい。

痴○物や強○物は、その気が強く表れると思われる。

今はまだコンテンツが少なく、作品を作っている会社が、撮影方法、動画編集、女優さんの演技や良く映る見せ方に四苦八苦し試行錯誤を繰り返している印象を受けるが
このシチュエーション物にはかなり期待をしているので、是非ノウハウを積んでいい作品を出して行って欲しいと思う。

大人のVRの話~自分なりに色々試して、いったん結論を出した~

大人のVRを体験して一週間。
この間に、色々思考を巡らせたり試行錯誤を繰り返して、いかにクオリティの高いVRコンテンツを得る事が出来るか、という部分を調査してみた。

結論からいうと、「VR対応動画を出している場所から、お金を出して買え」という、至極当たり前な結論に至った。
以下に、その結論に至った経緯を記載していく。


○試したこと
まず、VRコンテンツを得るには、以下の方法が考えられた

1. VR対応動画のサンプルで満足する
2. VR対応動画を公式で買う
3. 既存の2D動画を、3DVR化する
4. アップロードされているVR対応動画をキャプチャーに該当する何かをして、VRバイスで再生できる状態にする

1に関してだが、これで満足できるならそれでいいのだが、
そもそも、PC向けには前回記事にアップした「Adult Festa」さんか「AVVR」さんくらいしか、まともなサンプルが見れるところが無い。
つまり、サンプルを探すにも一苦労というわけだ。
スマフォ向けには、他に数社あるみたいだが、個人的にはPCでないと臨場感が無いと勝手に思い込んでいるので、ここではスマフォ向けは割愛する。

2に関しては、もうそれ言ったら全部そうじゃん!って感じなので、本題の3,4の説明に入る。

3に関して、
まず、そもそもVR対応動画を取り扱っている会社も少なく、作品自体も多くない。
であれば、通常のAVをどうにか変換をかけて3D化してしまえれば、VR動画の本数が増えるまでの繋ぎになるのではないか?
という発想に至った。

早速、動画を左右に分割してくれるソフトをインストールし、編集し、VRで再生してみることに。



・・・・・


色々とおかしい
具体的には、画面の上下がVRバイスで見ると引き延ばされたりしている。

VR対応動画と比べて気づいたのだが、VR対応動画の方には、3D化する為の左右に微妙に違う描画をするのと同時に、その動画自体に「パノラマ加工」が施されているように思えた。
つまり、ただ動画を左右に並べれば3D立体視はできるかもしれないが、VRバイスで見た時は変な引き伸ばしのされかたをする。
動画自体がパノラマで撮影されていないのであれば、その動画をパノラマ加工をしなければ、VR上での臨場感は得られないという結論に至った。

そして、パノラマ化してくれるソフトは全く見当たらなかったので、通常動画のパノラマ加工というのは、一般的ではないのかもしれない。

結論を述べると、通常の動画を3DVRとして見れるようにするのは、今の段階では不可能に思える。



4に関して、
そもそも、やっていることがブラックに近いグレーというかブラックな気がするが、一旦それは置いておく。誰もダウンロードをしてるともしろとも言ってないからね!
そもそも、違法合法含めアップロードされているコンテンツは、解像度が低いし画質が荒過ぎる。
中には、きちんとVRバイスで見れる物もあったが、荒すぎて画面全体にモザイクがかかっていると言っても過言ではなかった。

じゃぁどうするか。

画質を上げればいいじゃない!

という事で、解像度を上げるソフトと画質補正をするソフトをインストールして色々試した。



・・・・・



結論から述べると、あまり効果的な結果は得られなかった。
まず、「解像度を上げる≠画質が綺麗になる」と気が付いた。
元が汚い画像の解像度を上げるというのは、その汚い画像を引き延ばしても、綺麗に汚い画像を引き伸ばせる、という事だ。
何を言っているかわからないかもしれないが、そういう事なのだ。

なので、次は「画質を上げる」という発想に至り、これも色々試してみた。

こっちは、一定の効果があったのだが、やはり元の画質が汚すぎるとあまり意味をなさないのと、
公式が出しているVRサンプルに比べると、ツキとスッポンというレベルで綺麗になったとは言い難く、あくまでやらないよりマシな程度という結果に収まった。


以上の結論から、3DVRコンテンツとしてちゃんとした物を楽しみたい場合は、公式からお金を出して買う事をおすすめする。
(筆者はお金を出して購入した)



ここからは、個人の趣向が入るが、人によっては有益な情報に成り得るので戯言を書いていく。

まず、通常の2D動画だが、VRコンテンツには「シアター」と呼ばれる、映画館のような大画面で見ているかのような体験をさせてくれるソフトが多数存在し、
そこにAVを流して見ると、これはこれでなかなか有りな感じだったので、興味があれば調べてみるといい。

次に、3DVRコンテンツを買う時のコツというか、これは完全に個人の趣味の話になると思うのだが、
主観なだけだと、ただのAV見ているのとあまり変わりがないので、
よりシチュエーションが求められる物を選んで見てみるといい。

痴○物や強○物は、その気が強く表れると思われる。

今はまだコンテンツが少なく、作品を作っている会社が、撮影方法、動画編集、女優さんの演技や良く映る見せ方に四苦八苦し試行錯誤を繰り返している印象を受けるが
このシチュエーション物にはかなり期待をしているので、是非ノウハウを積んでいい作品を出して行って欲しいと思う。

アプリリリースの話~Androidリリース用アプリの為の作業1~

APKをリリース用にビルドするのに、KeyStoreの設定をする必要があるのを忘れていたので、それの話。

Unityを起動し、File⇒Build Settings⇒Player Settings
インスペクター上の、Publishing Settingsタブを選択。

まず、Create New KeyStoreをチェック。
KeyStorePassWordと、ConfirmPassWordに同じ物を入力。
BrowseKeystoreで、いったん保存。
Aliasで、Create a newkeyを選択。

画像を参考に設定。

f:id:mochimoffu:20170505153313p:plain

あとは、Aliasから、今作ったKeyStoreを選択すればおk。

 

user.keystoreとだけ表示されていれば、おk。ここにパスが入っていると、その場ではいいかもしれないが、Jenkinsからリリース用アプリをビルドする時に失敗するので注意。

 

ここまでやったら、ビルドスクリプト側も修正。

以下を追加

PlayerSettings.Android.keystorePass = "password";
PlayerSettings.Android.keyaliasName = "aliasname";
PlayerSettings.Android.keyaliasPass = "aliaspassword";

これで、Jenkinsからもリリース用アプリケーションをビルドできるようになるはず。