のにっき

【C#】色々な型の複数要素を1つの文字列に「1行で」変換する方法まとめ

色々な場面で必要になる文字列変換ですが、
まとめたい型ごとにやり方は異なってきます。
今回は、色々な型のやり方をこのページにまとめたいと思います。
※なるべく1行で完結できる方法をまとめてます

様々な型の文字列化

配列、リスト

string setValue = "";
//配列を文字列に結合
string[] a_Get = new string[10];
setValue = String.Join("\r\n", a_Get);
//リストを文字列に結合
List<string> l_Get = new List<string>();
setValue = String.Join("\r\n", l_Get);

配列やリストは、「 String.Join( "区切り文字", "まとめるリストや配列" )
の関数を使えば1行で完結できます。

Dictionary

//Dictionaryを文字列に結合
Dictionary<string, string> dic_Get = new Dictionary<string, string>();
setValue = String.Join("\r\n", dic_Get.Keys);   //全てのKeyを文字列に
setValue = String.Join("\r\n", dic_Get.Values); //全てのValueを文字列に

Dictionaryは、キーと値は「 Dic変数名.Keys 」「 Dic変数名.Values
で配列としてまとめて取得することが出来ます。あとは、配列と同じく
Join関数を使えば1行で完結できます。

自作クラス等のクラス内変数

/*******************************************
   コピー対象の自作クラス
********************************************/
public class TestClass
{
    public int _Id;
    public string _Name;
    public string[] _Array01;
}

/*******************************************
   文字列化方法
********************************************/
List<TestClass> lcls_Get;
string setValue = "";
//string型メンバ変数を取得
setValue = String.Join("\r\n", lcls_Get.Select(x => x._Name));
//int型メンバ変数を取得
setValue = String.Join("\r\n", lcls_Get.Select(x => x._Id.ToString()));
//配列メンバ変数を取得
setValue = String.Join("\r\n", lcls_Get.Select(x => String.Join("\r\n", x._Array01)));

自作クラスのリストから変数を抜き取る場合は、
結構For文を使いがちですが、LINQを使えば1行で完結できます。
細かな条件分岐もWhereでできますので、LINQをお勧めします。

記入欄とかに次々追加する時

List<string> l_Get = new List<string>();
for (int iRow = 0; iRow < l_Get.Count; iRow++)
{
    TextBox.text += l_Get[iRow] + "\r\n";
}

上記の感じで、for文で1つの文字列化する時にありがちな書き方です。
この書き方だと大きな問題が!?
末尾に要らない改行文字が残っちゃいます。。。

これを取り除くために判定を書くのもいいですが、1行でスマートに行きましょう!

List<string> l_Get = new List<string>();
for (int iRow = 0; iRow < l_Get.Count; iRow++)
{
    TextBox.text = (TextBox.text + l_Get[iRow] + "\r\n").Trim();
}

これで解決!手順は簡単。
毎回 Trim() したら先頭・末尾に余計な文字は無くなるで!
の法則です。長年のモヤモヤだったのですが、最近発見して驚愕しました。。。

以上です。
文字列化は常に付きまとう事なので、
なるべく少ないコードで見やすく組み込みたいですね。

アプリ開発向け素材サイト紹介 ※個人でアプリ開発するプログラマー必見

個人開発の罠を紹介

今回はプログラミングとは全く関係ない話です。
ですが、個人でアプリ開発をやってみよう!と思う方は必ず通る挫折ポイントです
私の実体験ですので、これから始めようと思っている方は見て損はないと思います。

プログラミングができても絵は描けない

タイトルの通りです。私たちはプログラミングができる、または学びたい。
その成果としてアプリを作りたい!と思っている人が多いと思います。
※なので、プログラマーの挫折点です。
組み込み後術やプラットフォーム操作等は、
勉強して成長する事が出来るので挫折にはならないです。
しかし、問題なのはデザインサウンドです。
どんなにソースが綺麗で多機能なアプリを作っても、
見た目がきちんとしてないものはアプリになりません。
しかし絵なんて上手に書けないし、勉強する気にもなりません。
わしゃわしゃソース書いて色んなライブラリ使いこなしてぇんです!
だったらどうするか。。。フリー素材様のお力を借りましょう!
以下で、私が挫折した時に大変助かった
アプリ制作者向け!商用利用可能な素材サイトをご紹介します。もちろん無料です

※. 紹介するサイトによってはクレジット等の細かな規約がたまにあります。
 サイトごとの利用規約をよく読んで注意してください。
※. 2020/06現在の利用規約では商用利用可能なサイトのまとめになります。
 今後、規約が変わるかもしれませんのでご注意を!

【音系】素材サイト紹介

まずは音系の素材サイトから。
BGM,SE,ボイスとアプリには欠かせない音素材を使用させていただけるサイトをご紹介

◆ 魔王魂...BGM、SE

言わずと知れたBGM素材を大量に置いてくださっているサイトです。

◆ 効果音ラボ...SE、ボイス

こちらも言わずと知れたSE素材を大量に置いてくださっているサイトです。
汎用性のあるボイスも使用できるので、ゲームで使用できるボイスもたくさんあります。

◆ DOVA-SYNDROME...BGM、SE

こちらのサイトは、楽曲を公開しているだけではなく、
楽曲の作成依頼やボイス収録依頼を出すこともできます。
もちろん素材も大量にあるので音ゲーを作るときにとても助けていただきました。

【画像系】素材サイト紹介

次に、画像系のサイトです。
基本的にGoogleで「○○○ イラスト フリー 商用利用可」で検索します。
いいのが無かったら下記のサイトを参考にしてみてください。
※アプリに関連する画像を扱うサイトのみに厳選しました。

◆ ICOOON MONO...アイコン、UI用

このサイトは、豊富な種類のピクトグラムのような画像を扱っているサイトです。
UI用の素材としてはピッタリの画像が見つかると思います
▼【使用例】ボタン画像は全て、ICOOON MONO様の画像を組み合わせて作ったものです
メニュー下部_パネル.png

◆ イラストAC...何でもそろう

人の画像から物の画像から背景から何でもそろうのがこのサイトです。
欲しい画像を検索すればピッタリな画像が見つかると思います。
▼【使用例】イラストAC様の画像を組み合わせて作ったものです
背景_Clear.png

◆ ぴぽやブログ...エフェクト、RPG用

エフェクトというのは、複数の画像を連続で表示することで、
1つのアニメーションのように見せる素材のことです。
その中でも、なんかぶわっとしたものがエフェクトです。
▼【使用例】閃光が飛び出すエフェクト
エフェクト例.gif
例えば、上記のエフェクトをキャラの右手から出して「ロッ●バスター!」とか言うと、
ゲームにものすごくカッコよさが付加されます。
エフェクトを使うようになると、一気にゲームっぽくなるのでぜひご活用ください。

【3D系】素材サイト紹介

3Dモデルは素材だけでは使えない要素があるのですが、
絶対に知っていて損はないサイトをご紹介。(多分みんな知ってる)

◆ ユニティちゃん...キャラモデル、2Dキャラ画像、ドット絵

このサイトには本当にいつもお世話になっております。
ユニティちゃんというキャラクターに始まり、様々な3Dモデルや立ち絵、ドット絵等
どのジャンルのゲーム製作にも対応できる豊富な素材があります。
リズムゲーからスロットシュミレータからシューティングまで、
私が作成したアプリには大体出演頂いてます。

【ツール系】見た目改善サポートアプリ紹介

Illustratorなんていらんのですよ!高いのですよ!!!
という方にお勧めする、画像編集や3Dオブジェクト作成ツールをご紹介。
もちろん無料です

◆ パワーポイント(Office)

はい。パワポです!私はアプリ用の画像はほとんどパワポで編集しています。
画像を細かく編集するのではなく、素材を合体させたりするだけなら
パワポはとても使い勝手がいいです。
もう一つの利点は、
自然とパワポの扱いに慣れるので会社のプレゼン資料作成の効率も上がっちゃいます。

◆ GIMP(ギンプ)...画像編集

こちらは、細かい画像編集を行う際に非常に使いやすいツールです。
よく使う機能は、取ってきた素材の背景を切り抜くことが出来ます。
しかも、クリック一発で切り抜いちゃうので簡単で便利!
GIMPで素材を編集してパワポで組み合わせる。というやり方で画像編集することで、
難しいことを覚えなくてもそこそこのクオリティの画像が出来上がります。

◆ blender...3Dオブジェクト編集

何で無料なのか分からないほど多機能らしい3Dオブジェクト作成(編集)ツールです。
正直扱いはとても難しいです。
そもそもオブジェクトを作るというのは難しいことだから仕方ないのですが。。。
私はこのツールで行っていることは、
キャラ用ステージや背景など、簡単なオブジェクトを作成するほか、
キャラ用にアニメーションを作ることも行っています。
オブジェクトに関する操作は大体何でもできる奥深なツールですが、
やりたい事だけやり方を調べればそこまで難しくは無かったのでお勧めします。
※0知識の自分でもがんばればSDキャラを作れるぐらいにはなれましたのでご安心を!

【作成例】無料神サイトにおんぶにだっこでここまでできた

こちらは、
全て上記サイトの画像・音・3Dオブジェクトを使って作成したアプリの広告用動画です。
特化プレーヤー
→ 特化PLAYER...よかったらプレイしてみてね

全部無料でデザイン技術が無くても、頑張ればゲームっぽく見せることはできます。
アプリ開発する上で、デザイン面の負担は大きいものがありますが、
素材サイト様のご加護を受けて楽しく開発していきましょう。
皆様の知る穴場オススメ素材サイトとかあったら
コメント等で教えていただけると泣いて喜びます!

最後にCM

◆ ライムまにあ

リズムゲーとクイズを融合させた新感覚リズムゲームです。
こないだ公開して誰もプレイしてくれないので寂しいです。
良かったら見てみてください。
広告1.png

Windowsの右クリックとタスクバーを侮るな

 最近、社内で流行ってきている問題があります。

デスクトップ汚い問題です。

この問題はPCが生まれた時からの永遠の問題だと思います。

皆さんはどのように対応しているでしょうか?

やれランチャーアプリだ、やれフォルダに押し込めだなんだと騒いでいませんか?

違うんです!そもそも

開きたい物へアクセスする手段の知識が少ない

これが大きな問題でもあるんです。

Windowsはまだまだ皆さんの知らない便利機能があるんです。

今回は、簡単に開きたいものを開くための小技をご紹介します。

Windowsのお話ですのでMaccerの方はお帰りください

※誰でも知っている系のお話ですので、過度な期待はしないでください 

タスクバーはただのショートカット機能じゃないぞ

 画面下に黒いバーがあると思います。名を「タスクバー」といいます。

こいつにフォルダやアプリをドラッグ&ドロップすると

アイコンが保存され、クリックすると開ける。という

ショートカット機能があるのは皆さんご存知のはず。

しかし、このタスクバーのアイコンに他の機能があるのをご存知でしょうか?

まずはアイコンを右クリック!

f:id:apuridasuo:20200613202052p:plain

図:アイコン右クリック時の挙動

上図のようにアイコンから表示が出ると思います。

表示をよく見ると「ピン留め・最近」の2つの項目があります。

・ピン留め・・・自分で設定できる。右クリックで必ず表示される項目

・最近・・・直近でアクセスした項目が表示される

この右クリック機能があれば、

常によく使うフォルダをピン留めする。

一時的によく使う項目はピン留めしなくても「最近」でまかなえます。

しかもこの機能、

フォルダだけじゃなく大体のアプリに使えます。

VisualStudioはもちろん。Windowsアプリは必ず利用可能ですし、

他社アプリも有名なものは基本的に対応しています。

ですので、

エクセルでアクセスしたいものはエクセルのアイコンで右クリック。

メモ帳でアクセスしたいものはメモ帳のアイコンで右クリック。

この運用方法で大体のファイルに一発でアクセスできます。

 

どうでしょうか?

この右クリックの機能は使用アプリごとに簡単に管理できる。

というものが大きな利点です。

そこらのランチャー機能と違って、アクセスしたいファイルのリンクが

登録等の手順が必要なく、かつ一発で実行できるので超便利な機能だと思います。

 

自分の仕事のやり方と他人のやり方を見ていると、

業務改善だなんだと言う前に、意外と知らない便利な機能を教えあったほうが

絶対業務が早くなるだろ!と心の底から思うのですが、

「じゃあまとめてなー ※まとめても見ないけど」

の一言で終了するのが目に見えているのでブログにかいちゃいました。

 

アクセス方法の知識を深めて、無駄なリンクをデスクトップに置かない

スッキリPCを目指してみてください!

 

 

会社へのヘイトを糧に独学で学び始めて約1年たった奴の成果

あらすじ ※長いので飛ばし推奨

私の会社はアミューズメント機器(仮)の開発会社だった。

入社する前は、いや、入社して仕事に慣れるまでは

会社で働く人たちが雲の上の存在に感じた。

そんな期待と憧れいっぱいで働いている私はとても幸せ者だった。

そんな会社で働きだして早3年。

それなりに任される立場になった私には1つの想いが強く宿るようになった

こいつら全く開発してねぇや

私の会社は全く結果を出せていなかった。

当たり前だろう。そもそも私の関わる業界は、業界全体が斜陽産業と呼ばれる

超絶落ち目の業界の中、他メーカーは最新の技術を取り入れて

失敗と成功を繰り返している。新しいことに挑戦しているのだ。

なのに我が社ときたら、、、

開発会議をしても他人の意見を一切受け入れないくせに何も案を出さない奴と、

周りから批判されるのが嫌だから他人の意見を適当に採用して責任を持たない奴。

こんな奴らが集まって他メーカーみたいな商品を目指して(真似して)物を作る。。。

誰もが身近な周りの評価ばかり気にしてユーザーの評価を気にしていない開発。

こんなものは開発じゃねぇ、ただの作業だよ。

こんな奴らと一緒の考え方になったら私の好きだった、憧れた開発なんか出来ない。

それどころか郷に入らば郷に従え理論で、自分も脳死して開発(笑)を

肯定的する人間になってしまう。そんなのはやだった。

だから私は会社で開発することをあきらめて、自分で開発しようと思った。

幸い、脳死開発なだけあって、会社の仕事は

アプリで自動化すれば圧倒的に時間短縮ができる作業が多く、

会社の仕事は周り以上に行うことで実績を残しながら、

空いた時間に独学で新しいことを勉強することができた。

そんな、自分勝手に挫折して自分勝手に勉強した奴の約1年間の成果を紹介します。

 

 

【成果①】Androidアプリ作ってみた

勉強した成果の大きなものは、Androidアプリでしょう。

私の開発欲求をぶつけれるのは無限の可能性を秘めたゲーム作りしかない!

そう思って、参考書を買いあさって死ぬほどネットサーフィンして

C#、Unityを勉強しました。その成果をアプリと広告費でご紹介!

脳トレ! マッチde計算

play.google.com

ダウンロード数:50~100

記念すべき1作目のアプリ。

Unityの使い方を学びながら、デザインってムズ! 

とゲーム作りの難しさをこれでもかと思い知らされた作品でした。

すいません降ります 

ダウンロード数:50~100

電車を出るために人混みを避けるスクロール避けゲー

このゲームでUI管理、Animation管理が板についてきた気がします。

原因不明のポリシー違反で削除中。。。(´;ω;`)

ジョギング用音楽プレーヤー RUNテンポプレーヤー

play.google.com

ダウンロード数:50~100

再生する音楽を、自分の走るテンポに合わせたリズムに変化させる音楽プレーヤー

ジョギングした時に、走るテンポと曲のサビが一致した時の

グルーブ感(適当)が最高だったので作ってみました。

機能は新しいと思ったので受けるかなと思ったのですが、

やっぱり音楽プレーヤーは凄いいいものばっかりあるので伸びなかったです。

お手軽!対戦ミニゲーム

play.google.com

ダウンロード数:500~1000

みんなで遊べるパーティーゲームを詰め合わせたものです。

正直、作ったとにしょうもな。。。と思ってお蔵にしようと思ったのですが、

出すだけ出してみたらそれなりにダウンロードされて嬉しかったのを覚えています。

沖ドキ モード予測

play.google.com

ダウンロード数:500~1000

一番開発に時間がかかっていないのに、

一番評価が高かった(収益が高かった)アプリです。

やっぱり自分が欲しいものは一定数の需要があるんだな。と思いました。

スロット 特化ゾーン プレーヤー ONLINE

play.google.com

 ダウンロード数:500~1000

このアプリは、私の勉強したものの集大成でした。

オンラインスコア、3Dオブジェクト作成、キャラアニメーション作成、

エフェクト、オブジェクトデザイン作成、動画広告などなど、

プログラミング以外のアプリ制作に必要な要素を頑張りまくった一品でした。

出来た時は自分の成長を感じてすごく嬉しかったし、

レビューで高評価をもらった時はもっと嬉しかったです。

ライムまにあ リズムゲーとクイズの融合

play.google.com

ダウンロード数:0! 笑

つい最近公開したアプリです。

リズムゲーにクイズの要素を追加したらリズムゲー下手な私でも楽しめるかな?

と思って作ったアプリです。よかったらぜひプレイしてみてください

その他載せる価値のないアプリ2品

その他2品のアプリを含む、計9個 が公開できるまで作成できたアプリ達です。

こいつらの陰にはたくさんの未完成アプリの屍があるのですが、

頑張った証が残っているのはそれだけでやる気が出ます。

一年間の広告収益

直近一年間で作成したアプリの広告収益ですが、

ちゃんと調べてみたら、5万円でした。

※3か月ぐらい謎のポリシー違反でアカウント凍結くらって広告収益0円だったので、

実際は「 2019 / 8月 ~ 2020 / 5月 」までの収益になります。

全然ダウンロード数は無かったのですが、意外と貰えたほうだなぁと思いました。

(時給に換算するとえげつない低収入ですが・・・笑)

副業といえるにはおこがましい収入ですが、

会社では実感できないユーザーに向けた開発を目指して成長できる。

という事が私には得難いことなので個人的には満足な結果です。

 【成果②】テックブログやってみた

こっちは収入とかじゃないんですが、完全に暇つぶしです。

きっかけは、Androidアプリに広告を付けるには

プライバシーポリシーのリンクが必要でした。

そのためにブログを開設してサイトを作ったのですが、

ついでに自分の備忘録として使ってみるかーという事で始めたブログです。

アクセス解析

f:id:apuridasuo:20200529141528p:plain

図:ブログアクセス解析

 総記事37、総アクセス数2186

多いのか少ないのかは分かりませんが、

記事数は改めてみると少ないなー!という感想でした。。。

なぜなら、こんなクソブログでも記事1つまともに書くのにすっごい大変です。

ソース、画像、構成etc素人なりに色々考えて記事にしてるので、

この1年で、結構ブログ書いたよなー。って思っていたのですが

まさかこんなに少なかったとは。。。

まぁブログにするほどのことがあまりない日常が悪いですね!

【感想】独学の限界を感じ始めてる今日この頃

この1年、がむしゃらに勉強して色々な知識を浅く広く学んでいったのですが、

独学で学ぶという事の難しさ、というか幼稚さを思い知りました。

自分で考えて開発する。という事はとても自由度のあることだと思います。

しかし、私一人の発想力の殻をいつまでも破れない、狭い自由でした。

どれだけゲーム作りで成長しても、

この成長はちゃんとアプリの会社で働いてる人達の

成長に比べたらゴミなんだろうなぁ・・・という事実。

「こんなアプリが作りたい!」という発想はあっても

一人でデザインから音から何から何まで作成しなければならないため、

どうしても規模が小さくなってしまう歯がゆさ。

会社というしがらみから抜け出した開発は、色々な壁が見えてきた開発でした。

しかし、それこそが開発の奥深さであり楽しさだと思ってます。

現状は一人では打破できない課題ばっかりでてんやわんやですが、

その壁を越えられないと私の開発欲求を満たせる私の作りたいゲームが作れないので

色々な方向から勉強させていただき、ゆっくり進んでいこうと思います。

新たな一歩・・・SNSやってみよう

とりあえず新たな一歩として、

自分の発想の外側の人たちの感性がすごい知りたくなりました。

そこで、アカウントだけ作って放置してたSNSを始めようかなーと思ってます。

正直、ネットで人とつながるとかよく分からないし好きじゃないのですが、

食わず嫌いではよくないと思ったので、

積極的に似たような立場の方々とかかわってみようと思います。

右上のプロフィール欄にTwitterアカウント乗ってるので、

良かったらフォロー?リツイート?してやってください!!

 

本来はこういった自分語りをネットに書くのは好きじゃないんですが、

その辺のネクラ気質も直していきたいので、1年後くらいにまた成果報告という名の

自分語りやっていきたいなーと思ってます。

【C#】ネットワーク共有フォルダへの接続待ち対策

会社でツールを作っていると結構起こる問題だと思ったのですが、
意外とネットに乗ってなかったので自己解決した内容をまとめます。

ネットワークフォルダにアクセスできなかったらどうなる?

C#で指定のフォルダにアクセスする際に、必ずフォルダ存在判定を行うと思います。 System.IO.Directory.Exists()
この関数を使うのが一般的だと思いますが、Exists関数に限らず(System.IO)クラスの
メソッドでフォルダにアクセスすると、厄介な挙動をします。

Exists関数で様々な条件のフォルダを判定した時の挙動

A)ローカルフォルダ
→ 存在する=true、存在しない=false を返す
B)ネットワークフォルダ ※アクセス可の状況
→ 存在する=true、存在しない=false を返す
C)ネットワークフォルダ ※アクセス不可の状況
20秒以上接続待機(停止)し、エラーを返す
厄介な挙動はもちろんC)の状況ですね。
これではアクセス待機のせいで処理が以上に遅くなってしまいます。
今回は、この接続待ちの時間を短縮させて
ネットワークフォルダのアクセス可否判定を行う方法をご紹介します。

並列処理で時間を計って勝手にタイムアウト判定を行う

接続待ちの時間を短縮させる方法は調べても見つかりませんでした!
ですので、並列処理を使って
自分で指定の時間が過ぎたら処理を中止させる関数を作りました。

/// <summary>
/// フォルダ存在判定【タイムアウト付き】
/// </summary>
/// <param name="path">検索されるフォルダパス</param>
/// <returns>検索結果( True = 存在する )</returns>
public static bool IsFolderSonzai_Out(string path)
{
    int i_Wait = 150;   // この値【ms】だけ処理待ち
    bool exists = true;
    Thread t = new Thread
    (
        new ThreadStart(delegate ()
        {
            exists = Directory.Exists(path);
        })
    );
    t.Start();
    bool completed = t.Join(i_Wait);
    if (!completed)
    {
        exists = false;
        t.Abort();
    }
    return exists;
}

上記関数がタイムアウト付きのフォルダ存在判定処理です。
1.別スレッド(t)でフォルダ存在判定を行う
2.指定時間(i_Wait )の時間だけスレッドの完了待ちを行う
3.指定時間経過後(もしくは処理終了後)、スレッド(t)が終了していなかったら
  スレッドを強制終了。アクセス不可と判定して「false」を返す

こんな感じの処理を行う関数になってます。

以上です。 並列処理は高速化でよく使われますが、今回のように
処理待ちのタイムアウト判定で使う事もできるので、より深く理解すると
組み込みの幅が広がる感覚があって楽しくなります。

【Unity】Androidアプリの起動が遅い時の対処

ちびちび作ってたアプリがようやく完成間近の段階になってブラッシュアップ中の事。
改善必須の厄介な現象につかまりました。
検索しても出てこなかったので色々試行錯誤して、やっと解決したのでまとめます

環境と現象

Androidアプリでの現象
実機デバッグを行った際に、起動後に「Unityロゴ」が出てから
タイトル画面の表示が描画されるまでに「15秒」もかかった

f:id:apuridasuo:20200512150908p:plain
図:表示するタイトル画面の構成
今回は、上記の遅すぎる起動をどのように解決したかまとめていきます
※今回は、対応としては設定1つの変更で解決したのですが、
解決までの過程で色々対応してどんな効果があったのか、ためになったので紹介します。
※解決法だけ知りたい方は以下の「解決法(結論)」の項目だけお読みください

解決法(結論)サウンドの読み込みによる遅延

遅延の原因は、オブジェクトの描画でも、Startイベントで行っている
オブジェクトキャッシュ処理でもありませんでした。
アプリ起動時にサウンドデータを読み込む処理が遅かっただけでした。
サウンドデータをバックグラウンドで読み込むことで解決します

f:id:apuridasuo:20200512152019p:plain
図:サウンドデータの設定方法
上図のように、サウンドデータを選択して、
「Load In Background」にチェックするだけ!
これで起動が「 15秒 → 1秒未満 」に改善されました
音ゲー作ってたので大量の音データの読み込みに時間がかかってたみたいです。。。

※タイトル画面で使用する音(すぐに出力するBGM等)は、
チェックを入れると音の出力が遅れてしまうのでチェックを入れないように!!

(過程)以外と起動の遅延には関係なかった者たち

遅延と聞いて原因を予想する時、何を考えるでしょうか?
今回の様に、サウンドデータのことを思いつく人なんて天才かよ!?って感じです。
私はまず「Startイベントのキャッシュ処理」「3Dオブジェクトの描画」
この2点が原因で起こった遅延だと思っていました。
(そのせいで、解決するまでクソほど遠回りしちゃいました泣)
そこで行った対応が以下になります
・3dオブジェクトを非表示にしてビルド
・3dオブジェクトを削除してビルド
・Startイベントを全てコメントアウトしてビルド

この3つの対応をすれば、とりあえず起動は早くなるだろうから
そこから原因を深堀していけばいいや・・・と思っていました。
結果は、起動時間は全く変わりませんでした
以外だったのは、少しも速くならなかったことです。

◆Startイベントって起動の遅延に影響ないの?

改めて、Startイベントのタイミングを調べてみたのですが、
Unity - マニュアル: イベント関数の実行順
上記サイトの記入では
▼ Startイベントのタイミング
スクリプトインスタンスが有効になると、最初のフレームのアップデート前に呼ぶ
との事でした。
最初のフレームのアップデート前という事は、
やはりStartイベントの内容は描画前に呼ばれているイベントだと思います。
実際はキャッシュ処理で起動が遅くなっているのでしょうが、
まったく気にしなくていいぐらいの遅延だったのでしょう。
以外とキャッシュ処理って起動に影響しないんだ。。。とビックリしました

◆3Dオブジェクト大量においても遅延ないの?

3Dオブジェクトの描画で起動時間が遅れることはないのか!?
気になったので、今のタイトル画面にUnityちゃんを102体設定してビルドしてみました

f:id:apuridasuo:20200512155954j:plain
図:51vs51のラップバトル
実際のタイトル画面です。ラップバトルをイメージしたタイトル画面なのに
ちょっとした戦争ものみたいになっちゃいましたw
実際に起動したときの挙動は、
・起動時間は0.5秒→3秒ぐらいに長くなった(遅延した)
・起動の遅延よりも起動後の操作遅延がえぐかった
・0.5秒でBGMはなったので、Startイベントの処理は描画の遅延に関わらず終わった
こんな感じでした。
やはり、3Dオブジェクトの描画は起動の遅延にも影響があるみたいですね
ただ、オブジェクトの描画による遅延は今回のデータ読み込み遅延と違って
Startのイベントはすぐに完了する
という部分が大事だと思いました。
処理的には終わってるけど描画が追い付いていないって感じなんでしょうね
A. Startイベントはすぐ終わる起動遅延=オブジェクト描画が原因
B. Startイベント終わってない起動遅延=データ読み込み等の他の原因

こんな感じで、起動遅延の原因追及がなんとなく調べやすくなりました!!

以上です、アプリが出来たら下にリンク張るので是非遊んでね!

この問題を経て作ったアプリ

やっとやっとできたので紹介します!
リズムゲームの要素で、押すボタンがクイズになってる感じです。
操作自体は簡単なので、ぜひプレイしてみてください。
play.google.com

今後、実写映像化して欲しいコミック紹介

最近仕事が忙しくて全然アプリ作れてない

 →アプリ作れてないから新しい発見が無い

  →発見無いから記事書くことない

   →じゃあマンガ紹介するか!

という事で今回は、実写で映像化して欲しいコミックの紹介です。

最近多くなってきたコミック、ラノベの実写化ですが、

全体的にあまりいい評判を聞かないですね・・・

今回は、実写化について思うところがあるので

酔っぱらいジジイがごとく物申しながらコミック紹介したいと思います。

 

実写が批判されるのは二番煎じだからだろ!

これは常々思ってました!

コミックが映像化されるのはアニメ、実写それぞれに良さがあるはずです。

しかし最近の実写系はアニメで受けが良かった作品の実写化が多い!

アニメで受けがいい=アニメで良さが出る版権という事なので

実写で良さが出る作品とは限らないのです!

しかも、後追いするせいで二番煎じ感が出るし

ブームも終息し始めた頃の発表になってしまうので

見る前からコレジャナイ感がもの凄い印象になってしまいます!

そんなもんどれだけ版権が良くて面白くても初動が伸びるわけない!

どうせ実写化するなら、新鮮な版権を自分たちで見つけ出して

ブームを作る側になって欲しい!実写だって面白いんだから。。。

と、いうわけで以下から

アニメ化よりも実写化してほしい作品紹介していきます

 

しおりエクスペリエンス【 続14巻 】

 ・ジャンル 

バンドもの、登場人物みんな好きになる、アツコメ(熱い話だけどコメディもあるよ)

 ・あらすじ

地味な高校教師のシオリ(27)に、ある日幽霊がとりついた!

その幽霊はなんとジミーヘンドリクス!!!

ジミーに憑りつかれたシオリ(27)はある呪いにかかっていた。。。

「27歳が終わるまでに音楽で伝説を残さなければ死ぬ」

この物語は、地味な先生がジミーの呪いを糧に、

様々な思いを抱える生徒たちと伝説のバンドを目指す物語。

 ・感想 

この漫画はそもそもの設定がギャグなのでギャグマンガだと思ってしまいがちです。

(実際、1巻だけ見たらギャグ系かなー?って思っちゃいます)

しかしながら実際は登場人物全員に厚い人間ドラマがあり、

熱い成長ドラマがしっかり描写されたアツコメ成長物語でした。

音楽系のマンガで大事になるのは演奏描写です。

この漫画はシオリたちが成長していく話に合わせた描写を行っているので

ストーリーに感動した心をぐっと引き込む演奏描写になっています。

また、この漫画の大きな特徴だと思うのが

登場人物全員に分厚いストーリーがあり、それをきちんと描写している。

さらに、そのストーリーをシオリたちの成長に絡ませるすごい構成力です。

伏線単体で感動できるのに、それを回収しちゃうの!?と思って

出てくる人みんなに感情移入してみんなに感動しちゃいます。

実写に似合うなと思ったところは、

人間ドラマと演奏描写はアニメよりも実写で見たいから!

  

シネマこんぷれっくす【 続5巻 】 

 ・ジャンル 

高校日常もの、映画ウンチクつめこみました

 ・あらすじ 

映画が好きで、映画みたいに熱い青春を送りたがっている高校入学したてのガクト。

そこに現れたのは映画オタクたちが集う映画研究会の面々。

ガクトは映画を語りたいんじゃなくて映画みたいな青春を送りたい!

この物語は、映研に無理やり入部させられたガクトが

映画馬鹿たちに翻弄されながらも面白おかしな非日常な青春をお送りする物語

 ・感想 

この作品は、作者の趣味を漫画にした作品なのですが新しいです!

普通は、キャンプ趣味を漫画にしたらキャンプ漫画。

釣りの趣味を マンガにしたら釣り漫画になるでしょう。。。

では、映画趣味を漫画にしたこの作品はどうなるのか?

この作品は、キャラたちが色々な映画のテーマに沿った行動を起こすのです!

ホラー作品を語るときはゴーストバスターやったり!

ジャッキー語りたかったらカンフーやったり!!

任侠語りたかったら極道生徒会長でてきたり!!

映画という一つの趣味から色々なジャンルに派生するので

見ていて飽きない。常に新しくて面白いことをやってるのに、

映画ウンチクは欠かさず入っているから芯がぶれてないオリジナリティーです。

実写に似合うなと思ったところは、

・他作品の紹介が必須なので、実写なら何とかなる

・この作品を見ると、色々な映画が見たくなる紹介物として人気が出そう

 

特攻の拓【 終27巻 】

特攻の拓 新装版 コミック 1-27巻セット (ヤングマガジンKC)
 

 ・ジャンル 

ヤンキーもの、友情・努力・勝利?の究極完全体

 ・あらすじ 

いじめられっ子の拓は転校してきた最強ヤンキーの秀人に出会う。

いじめっ子とは違った男気のある秀人に憧れた拓。

秀人に関わったせいでボコボコにされたのに、

それでも秀人を裏切らなかった拓を見て秀人も拓に惹かれたのだった。

拓と秀人は転校して離れ離れになったが、秀人に教わったヤンキー魂を胸に、

新たな場所で様々な仲間と出会い、真の漢を目指す物語

 ・感想 

知名度はそれなりに高いけどネタ漫画扱いされがちなこの作品です。

この漫画の大事なところは、狂気じみた性格と強さのヤンキーたちが

バチバチにぶつかり合うのですが、話がめちゃくちゃになってないんです。

ちゃんとそれぞれに背負うものがあり、

それを拓のお人よしが何とかしようともがいてスッキリ話がまとまってくれるので

読んでいて気持ちがいいです。

昔のマンガらしく、ご都合主義がつまっていますが

ギャグとシリアスの混ぜ具合が絶妙なので読んでると全然ご都合感は感じません。

(だからこそ、一部だけ切り取るとネタ感満載の作品なんです・・・)

ヤンキー漫画ってファンタジーよりよっぽどベタベタな「友情・努力・勝利」

やってると思うので子供にも受けがいいと思うんですよね

実写に似合うなと思ったところは、

・それなりに知名度が高いから見たくなる人は多そう

・ヤンキーのカッコよさは実写でこそ光る!

・ベタベタ友情物語ってドラマ見る層に受けがよさそう

 

以上です。

私は普段、ドラマもアニメもあまり見ない、映画ばっかり見ているのですが

この作品が実写化したらみたいなと思うものを挙げました。

(本当は、シオリエクスペリエンスみて感動しすぎて、

映像化して欲しいと思った衝動をぶつけただけです。。。)

萌え脳死日常ものは一番相性悪いと思うんです。

熱くて非ファンタジーな物こそ実写化して欲しいです!