Unityでインディゲーム道!

プログラム、Unity初心者がインディゲーム制作を目指して日々思うことなどを書き綴ります。

初心者が考える"hello world!"の偉大さ

全てのプログラマが、1番最初に書くコードとされる、"Hello World!"
シンプルであると同時に、これからプログラミングを始めようとする人間にとっては退屈極まりない、つまらないプログラムです。しかし、その偉大さと、意義というものが初心者なりにわかってきたので、まとめてみます。

/*新天地にて限定的にネット環境が構築できたので、心機一転という想いも込めて、"Hello world!"について取り上げてみました。*/

正直、つまらない(と思うのが普通)

プログラミング入門者、つまり一切プログラミングを勉強したことがないという人にとっては、"Hello World!"というプログラムはつまらないし、何のためか?ということさえ分かりません。例えば、ゲームを作りたい!と思って勉強始めたのに、こんなゲームに役立ちそうもないプログラムなんて!!と思ってしまうのが普通です。ただでさえ、まだコードを読むことさえ叶わず、理解不能な文法を覚えなきゃいけない、という状況ですからね。自分も最初は怒りすら覚えた記憶があります。そもそも環境構築に手間取ってましたからね。

Hello World!の歴史

C言語創始者の1人であるデニス・リッチーが、その自著の中で最初のサンプルコードとして取り上げたのが"Hello World!"と画面に映し出すコードであり、そこから広まったとされます。あらゆる書籍、web上のあらゆるプログラミング講座においても、基本的に最初のコードはこれであるはずです。つまり、全てのプログラマが最初に打つコードはこれになる、ということです。

一体どこがすごいのか?

さて本題です。なぜHello world!プログラムは偉大なのか?
・簡単なプログラムである。
C#の場合、次の様になります。
Console.WriteLine("Hello world!");
実際はコンソール画面が消えてしまわない様に、ReadKey()なりReadLine()を付け足さなきゃですが、しかしたった一行によるコードです。簡単といっても最初は、このコードですらままならないんですけどね。でも、まずはここから。

・関数、メソッドを使用している。
C#の場合はWriteLineですが、各言語ごとの『文字列を画面に表示する機能を持つメソッド』を使用するのは共通です。そもそも初心者は関数、メソッドという概念自体をまだ理解できてないんですけどもね。数学の関数?みたいに困惑します。
とにかくライブラリ(この言葉も最初はよく分かりません。ライブラリについても記事書く予定)にあるメソッドを利用する、というタスクを達成した!ということになります。

そして、もっとも大事なのは、
・コンピュータとコミュニケーションを成立させる
ということです。何もプログラミングされていないコンピュータは自分で何かを発する事はありませんが、自分が入力したHello world!という言葉を、コンピュータが受け止めて、画面に映した事で双方向のコミュニケーションが取れた、とする事ができます。我々人間とコンピュータは体の構造だけでなく、使っている言葉も違うわけです。そのギャップを埋めるということがプログラマに課せられる大きな仕事だと思うのですが、正にHello world!の言葉をのとおり、ここからプログラミングの世界が始まってくのだな、と今になって思うのです。

最後に

というわけで、プログラミングを始めて一年経とうとする初心者が
Hello world!の持つ偉大さ、というものはまとめてみました。上に書いた様に最初は、つまらない、しょうもない、プログラムだと思っていました。これがゲームを作るのに何の役に立つのか?と。しかし、それは浅はかな考えであり、今となっては、なんて素晴らしいプログラムなんだろう、と思います。

Hello world!の素晴らしさが理解出来たら、一年生を修了する、ということでいいですかね?二年生をこれから頑張りたいと思います。

『プログラミングを独習するのには10年かかる』を読んで。

発端はコチラの記事です。

残酷な真実から目を背けてはいけない・・・('o';)。

この記事と元記事(プログラミングを独習するのには10年かかる)を読んでみて、考えたことをプログラミング初心者としての立場から書いてみたいと思います。 何を学ぶべきか?とか正しい学び方とは?みたいな深い問題が横たわってはいると思いますが、とりあえずサッとまとめてみました。

 

一年生として想うこと

初心者とはいえ、本格的にプログラミングをやり始めて一年が経とうとしていて、月日の流れる速さを感じます。一年という月日は、長いようで短い。それなりにプログラミングを出来るようになったとはいえ、学ぶことはまだまだ途方もなくある、ということを実感しています。

だからこそ、そしてプログラマ一年生とはいえ、いい大人ではあるので、ここに書かれていることは正しいのだろう、と受け止める余裕はかろうじてあります。

どんなにも近道はないのだ、ということです、残念ながら。

 

"一万時間"説

何かの専門技術を習得するためには、どんな人であっても一万時間かかり、最初は才能による差こそあれど、どれほど努力したかが大切である、という説です。元記事でも大きく取り上げている理論です。

逆に一万時間努力すれば、誰でも一人前になることができる、と言いなおすことができるのかもしれません。

個人的には正しい努力の仕方、身体的な素質、など懸念事項がいくつか思い浮かぶにせよ、この説は専門家の間で、高いコンセンサスを得ているようです。

 

もし一日三時間練習するとして、それを毎日十年間続けるとすると・・・

3 * 365 * 10 = 10950なので、雑すぎる概算ですが、独習するのなら十年というのは確かに納得のいく年月なのかなぁと思います。

 

お寿司屋さんの件

少しだけ話が逸れますが、以前に堀江貴文氏が『寿司で十年も修行するなんてバカらしい!俺の行ってるところは十年も修行してないけど旨いし』みたいな発言をして、炎上していましたね。

この件については、やや構造が複雑になるので、語る上でプログラミングよろしく問題をいくつか分割する必要がありますね。

 

炎上マーケティング的発言

最近の堀江氏は炎上芸人と化している部分があるので、この発言は炎上目的なのかもしれない。よって本心ではないのかもしれない。ということを頭に入れておくべきだろう、ということです。

例のお寿司屋さんは被害者

こういう取り上げ方をされた、件のお寿司さんは被害者と言うほかなく、実際美味しいに違いないのだろうけど、この件のせいで色眼鏡で見られてそうですよね、可哀想。

本項での堀江氏の発言への自分の考えは、このお寿司屋さんとは何も関係ないということだけ、ご理解ください。

まぁそもそも寿司屋を始めたのが最近であって、それまでの積み重ねがあったから、短い時間で寿司屋を成功できたのだと思うんですけども。

修行すれば旨い、とは限らない。

これはその通りでしょう。だから厳しい修行に耐えて店を構えてます!というのは一種のブランディングとも解釈でき、まぁそれも商売の仕方のひとつじゃん、とも言えるし、同時に現代のビジネスと何が違うの?ってことにもなるわけです。

現代的なやり方で、時間を圧縮できる

堀江氏の言いたいことは、おそらくこういうことだったのかなーと好意的に解釈すると、こんな風に言えると思います。

より現代的で科学的な技術、あるいは効率的な学習法、技術訓練法を使えば、所要時間を圧縮できるのだから、そういう新しいやり方を取り入れなきゃダメだ!という考え方です。これも、その通りではあると思います。

 


というわけで堀江氏の発言は、理の通った理屈ではありますし、江戸時代以来、素人目にはほとんど変わっていないように見える、寿司職人という技術は現代的なやり方で、効率性を改善出来る部分はあるのかもしれません。

 

しかし、それでも一人前の職人になるには十年に近い時間は、かかると自分は思います。単純な技術的な部分であるなら、才能あるものなら三年以内にマスターしてしまうのは、どんな分野でもあることだと思います。そして、従来の水準をひっくり返してしまうような天才が現れることもあるでしょう。しかし、それらは例外であって、やはり多くの人にとっては、そのくらいの時間がかかって当然だと思います。

プログラミングだって同じはずです。

 

何を持って"一人前"か?

日進月歩どころか、秒単位で進化を続けるコンピュータ分野においては、技術についていくことが大変であり、プロですら時間を見つけて勉強し続けなければ、生きていけない厳しい世界のようです。

そして現代において、一人がプログラミングをして何かを創り出す、ということは現実的ではなく、分業が前提です。だから、プログラミングにおいて、どこまでできれば"一人前"なのか?という定義が、自分は今だよくわかりません。

 

本ブログは、当面は趣味の範囲であるとはいえ、立派なインディゲームを作りたい!という欲望に基づき運営していますので、やはり世の中の流れに乗っていかないといけないわけです。そしてゲームは様々な技術の集合体であり、プログラムだけについても多くの技術が要請されます。もしまともなオンラインゲームを作るなら、課金システムなどリアルタイム通信も含め、データ・ベースに関する技術も必要になるだろうし、そこらへんは自分は手付かずです。

初心者には成れたな、とは思うのですが。果たして・・・!

 

残酷で、当たり前な真実

というわけで少しずつ簡単なこと、自分ができそうなことからやっていくしかない、と再確認することができました。元記事でもあるように、本屋に行けば、一日でわかる~とか一週間でマスターする!~という安易なタイトルの本が世には溢れています。楽器の教則本とかでも多いですね。

しかし、そんなに甘いワケないだろー!

ということなんですが、十年でマスターするC#とか売れるわけないですもんね。ライト層に向けて、売るには嘘をつかざるを得ない、という部分も理解できます。

自分の場合は『苦しんで覚えるC言語という本を選びました。これは大正解だった、という報告はしておきたいと思います。

天才プログラマになることは出来なくても、一万時間説が正しいなら、一人前のプログラマにはなれる筈で、あきらめずに少しずつやっていきたいですね。

 

※6月7日追記

本記事を読み返していたら、初心者から4週間でプログラミングマスター!という広告が表示されていて、笑ってしまいました(^_^;)


 

動く足場とプレイヤーが一緒に動くためには!"Rigidbody"による対処法検証!その1

"Rigidbody"を使った動く足場の作り方、それに乗ったプレイヤーと足場を同期させる方法について。現時点での解決法のまとめ!

 

この行ったり来たりする、宙に浮く足場というものは、マリオをはじめたとしたアクションゲーム(海外で言うところの"Platformer")において、なくてはならないものです。早い段階から作りたかったのですが、まともな形で実現できたのは最近になります。改善の余地はあるかと思いますが、とりあえず、経緯含め書き出してみました。

※近いうちに図、コードなどを挿入する予定です。

 

 動く足場の課題

アクションゲームにおいて、動く足場というのは、なくてはならない仕掛けだと思います。上下、左右に往復する足場、これを踏み外せばゲームオーバー!!

よりダイナミックで、スリリングなレベルデザインが可能になるわけですが、その実現には、解決しなければいけない、ふたつの課題があります。 

  • 決まった幅を決まった周期で往復する。

ただ動けばいいわけではありません。コントロールされた反復運動である必要があります。ゲームが詰んでしまいますからね。 

  • 乗ったプレイヤーが、足場と一緒に動く

慣性の法則により、そこに乗ったプレイヤーも、足場と同期して動く必要があります。 

いやそもそも宙に浮く足場って・・・、突っ込みはナシで。

 

 動く足場

まずUnityの場合、ゲームオブジェクトを動かすのに、二つの移動方法があります。

TransformによるものとRigidbodyによるものです。これらを使って、まず上下左右を行ったりきたりする足場を作るわけです。

 

最初に思いついたのは、Transform由来の方法です。例えばVector3.Lerpを使い、あらかじめ設定した2つの地点を行ったり来たりする方法があります。ただしこの方法は、いちいち左右の地点を指定したり、ワンループごとに進行方向をif文などで切り替えないといけないんですよね。(違う方法あったらすいません。)これだけだと少しスマートではないな、と。

 

で思いついたのがMathf.Sinを使う方法です。三角関数なんてすっかり忘れてますが、要はサイン波であり、反復運動なわけです。これを上手く使えれば、シンプルなコードに出来るんでは?と思いました。

  

 Mathf.Sinについて

引数はfloatによるラジアン(radian)になります。ラジアンとは、その半径と同じだけの円周を取ったときの角度です。1ラジアンはおよそ57.3度です。

当然円は360度で一周ですので、つまりおよそ6.283ラジアンをもって、サイン波でいうところの上がって下がって戻ってきたというワン・ループになります。

Mathf.Sin(0.0f) ~ Mathf.Sin(6.283f)までですね。

返り値としては、時間軸毎に0 -> 1 -> 0 -> -1 -> 0

という感じで、float値が帰ってきます。つまりゼロを中心とした反復運動になっているわけです。float "speed"を代入演算子でドンドン足していって、6.283以上になったら、0,0fにリセットして・・・という感じでループさせます。

 

初期位置Vector3 centerとして、そこを基点に、このMathf.Sinによる値を利用して、Transformを計算し、Update()を使い、transform.positionを随時指定していく、という方法になります。

これは見た動きの感じもスムーズですし、かなり満足行く結果になりました。しかし、実際にプレイヤーを操作して、そこに乗せてみると二番目の課題が!

  

 プレイヤーが一緒に動かない!

プレイヤーキャラは、Sphereつまりボールを使っているのですが、実際乗せてみると、足場と同期せずに、そのままだとドンドンずれていきます。

そういう足場である、と言い通せば(仕様です、という魔法の言葉)いいレベルではあるかもしれませんが、やはり不自然ではあります。

 

ググッタ結果、コリジョンにプレイヤーのparent(Transform.SetParentというメソッドもあります。)足場に設定する、という方法を見つけました。それを試しては見たんですけども、動きは鈍くなり、かなり不自然な動作になってしまいました。足場のScaleの影響で乗った瞬間、形がおかしくなったりします。より細かい設定が必要なのかもしれませんが、この方法はあきらめました。

 

ということで、とりあえずこの問題は保留に。

  

 Rigidbodyによる解決

この際、Rigidbodyを使って動かして、プレイヤーのRigidbodyと同期させたらどうなんだろう?と思ったんですが、まず足場が上手く動かせなかったんですよね。

で後日、Rigidbody.MovePositionを使えばいいことに気がつきました。先ほどのMathf.Sinと、このMovePositonを使って足場を動かします。この際、足場のRigidbodyの設定として、rotation.yはfreezeにしてクルクルしないように設定。

 

そして足場のOnCollisionStayに接触したプレイヤーから、Rigidbodyの参照を得るコードを書きます。でそのRigidbody、ここではplayerRbとしてます。

そのplayerRb.positionを足場の移動先のVector3である、movePositionを代入するとどうなるかというと、足場の中央に埋まったボールが、足場と一緒に動きます。これは使えるな、と思いました。それからいろいろ試したんですが、結果はシンプルなコードになりました。 

playerRb.position = movePos + playerRb.collider.transform + transform.position;

こんな感じになりました。どうなんですかね、よくわかんないっす。

movePosというのは足場の動く位置ですね、これはあくまで相対的な位置、足場内部での位置関係なので、プレイヤーと足場のワールド座標も足して、調整してるという感じになると思います。とりあえずこれでひとまずそれっぽくはなりました。

 

ただし、この方法には明らかな問題が見つかっています。Interpolationの設定です。通常、プレイヤーのInterplation設定は、Interpolationに設定し、それ以外のRigidbodyに関しては、オフにすべきだということが推奨されています。

しかし、この方法において、プレイヤのInterpolationがオンになっていると、乗った瞬間からガクガクになります。解決法としては、乗ってOnCollisionEnterが効いている間Interpolationnoneにするという手段をとっています。

  

 ひとまず、まとめ

というわけで結構なゴリ押しで、いろいろ試してみた結果、よくわからんけど上手くいった!という流れなので、これでいいのか?という気もします。

実際、何かしら問題もあるのかもしれませんが、表面的な動作はかなり自然です。まだまだ検証は必要かと思いますが、しかしまともなゲームを作るためのピースはそろってきたように思います!動く足場があれば、実際ゲームとしての幅は、かなり広がりますからね!Unityかなり面白くなってきました!!!

 

 

けものフレンズと動物化するポストモダン < 本章 > ~"かばんちゃん"のカバンの中身とは~

さて最終回から早くも一ヶ月以上経ちましたが、けものフレンズの熱は冷めることなく、ますます強くなっているようにも思います。いよいよ本章と題して、いかにけものフレンズは、動物化するポストモダンの文脈で語り難いか?ということに切り込みつつ、そしてけものフレンズとは何なのか?ということについて自分の考えをまとめたいと思います。(原稿用紙およそ15枚分!)

※かなりの文量ですが、要はすごーい!!ということです。 

f:id:miur-us:20170523095635p:plain

 序章を書いたのも、もう三ヶ月前・・・ 

 

 

なぜ一ヶ月以上もかかったか?

まずは個人的な忙しさもあります。しかし、それだけでなく『けものフレンズ』という存在が予想以上にデカイものになってしまい、かつ自分の頭の中を巡る、いろいろな考えを上手くまとめることが難しい状況になっていました。

こういう状況になると、良くも悪くもバイアスがかかって、冷静な判断や論評は難しくなりますよね。でも、やります!!

 

この一ヶ月であったことは、Mステ出演だったり、ダーウィン再放送、BDが近年稀に見るヒット、などなど。いろいろありましたねー。

放送期間中はともかく、放送終了後あっという間に忘れ去られるアニメも多い中、現状を省みるにやはり本物と言わざるを得ないでしょう。

 

こんな状況も含めて、何か書くとなるとかなりのテキストになるだろうし、なかなか書き出せない状況ではありました。あとそもそも『動物化するポストモダン』も読まないといけないですし。これがきつかったかもしれません。

 

というか、そもそも本ブログはアニメ評論ブログじゃないですけどね^^;

しかし、書きました。長いですが、お時間あれば暇つぶしにでも!

 

なお本記事は『動物化するポストモダン』読破し、その上で執筆に望んでいますが、曲がりなりにも現代思想の本ですんで、読解力が及ばず解釈が違っている場合もあるかと思います。その点、ご了承ください。

 

東浩紀は間違ってもないし、正しくもない。

まず動物化するポストモダンをもって、けものフレンズを語るということは、実際かなり無理があった。ということを白状しなければいけません。

ダレが悪いと言うわけではなく、時代が違いすぎており、当時と今のアニメを巡る状況もあまりにも違うということが大きいと思います。

 

この本は2000年代初頭のモノであり、よりオタクが日陰者扱いであり、この本で扱われるアニメ、ゲームなどもコアよりなものが多いです。自分も名前は聞いたことあるぐらいの作品が多くあります。(ノベルゲーとか全然やってこなかった人間なので・・・。)

そして、忌み嫌われるオタクたちのその生態は、実はポストモダンにおける人間そのものである!として、別にオタクを肯定するわけでもなく、現代思想とアニメ、ゲーム を絡めることで、ポストモダンを考察しよう!というのが本書の狙い。

 

しかし、アニメに限って言っても本書以降ハルヒけいおん、等のより大衆的なアニメ作品が多く作られ、そして君の名は。という大ヒット作品があり、偏見あろうともアニメはより大衆的な存在となり、サブカルたりえなくなっており、オタクというものもよりライトなものになった、という歴史的経緯は押さえなければなりません。

だから、この本に書かれていることは基本過去についてのことであり、この本から逸脱したことが起きても、それが正しいとか間違っているとかではないのです。

 

この本の及ばないことが起きている。

それはそうなんですよ。15年以上前の本ですし。

さて、この本において重要な言葉、概念は『シミュークル』です。要は全てはコピーであり、あらゆるものは記号化されると。世にあるものが複製品に過ぎず、ただ反復されている、というような趣旨です。そして集積された記号(データ)を使いまわし、ただひたすらに餌を与えられた動物のように消費していく・・・というのがポストモダンに生きる人々の行動規範であり、それはオタクそのものじゃないか!!ということです。

当時も今も、ネットは二次創作で溢れており、それらは記号の再利用に他なりません。

 

でもフレンズは記号じゃないんだよ!

正確に言うと、動物をモデルにデフォルメしながらも、動物らしさを出来る限り残しているフレンズたちは記号としては不完全であり、実は消費的行為に不向きである、ということです。これは、アニメキャラは記号の集合体、という文脈からは少しずれているのです。実際、記号化されていないと二次創作は困難になります。

同一視することが難しくなるからです。

要するにそのキャラを見ても『ダレ?』と思ってしまいます。

近年の萌えアニメの文脈からは、明らかに逸脱した異端児であると言えます。

というか萌えアニメじゃないんですけどね、そもそも。 

 


 また二次創作で言えば、この本の中ではゲームのデータを吸い出して、ビジュアル的にはオリジナルと同質な二次創作、MADについての言及があります。

パソコンゲームだと特別なツールを使うことで、ゲームのデータを吸い出すことが出来るようで、それら(画像や音楽)をつかって二次創作すれば、一見本物と見分けがつかないわけです。だって、オリジナルのデータですからね。

 

けものフレンズでいえば、アニメなので本データを利用することは出来ません。

しかし、ニコニコなどでの二次創作を見るにそれを超える状況になっているということに気づいている人も多いと思います。それはファンが自らの手で、オリジナルに迫るクオリティのものを自作し、特に3Dモデルに関しては、表面的な美麗さにおいてはオリジナルを超えるものが出てきています。

そうした高いクオリティの素材を利用して、二次創作が行われているのです。

コピーがオリジナルに勝てないとは限らない、とはよく言ったものですが、よくよく考えるとすごい状況になっています。

こうした傾向は、けものフレンズに限らないですが、そうした時代の流れが端的に出ているのだと思います。

 

オリジナルとファンアートがある意味対等というか、なんというか。

 

  

けものフレンズは、この本の"外"にある。

少し長くなりましたが、要はけものフレンズけものフレンズとして楽しめばいいわけで、難しい本読んでわかった気になる必要なんてないんです。 

 

この本とけものフレンズとの対峙から今の私達が得られるものは、

『書を捨て、旅に出よう!』ということなのかもしれません。

見も蓋もない結論になってしまいましたが、けものフレンズは間違いなく、時代の節目を象徴する作品だと思います。

だから過去の論評はあてにならず自分で判断するしかない、ということです。

 

何がよかったのか?についての個人的見解

本題に入る前に、なぜけものフレンズがヒットしたかについての自分なりの見解を少しまとめておきたいです。

いろいろな要素、社会状況が重なり合ってこのようなことになったのは間違いないわけで、できる限りひとつずつ区切って見ていきたいと思います。

 

・子供も安心して見れる。

おっさん達を中心に評価された、ということですが、子供達と一緒に見たというようなことが結構あるみたいで、ここら辺は大きいと思います。

というか歴史的にも幼児向けアニメに一緒に見ている大人へのメッセージが込められていることは多くありましたからね。その系譜をけものフレンズも引き継いでいると。

 

・安易なパロディがない

パロディという表現形式がダメなわけではありません。

しかしドラマにしろアニメにしろ、パロディが氾濫しています。

なぜなら面白いし、楽だからです。("楽"と言うのは語弊があって、もちろんセンスが問われるのですが。)

二次創作ならまだしも、一次創作ですらです。

実写ドラマにおいてはクドカンが多用しはじめた起源ともいえますが、クドカンはそもそもトリッキーな存在であり、それが今や本流になってますからね。

難しいところですが、純粋な創作物が見たい、と考えてる人は少なくなかったのでは?と思います。けものフレンズもオマージュは結構ありますけどもね。

 

・王道を往く展開

見た方々には説明不要だと思いますが、けものフレンズとは冒険物語であり、成長物語であり、王道なんですよね。王道はシンプルだけど難しい。

けものフレンズは王道をやりきりましたよね。

 

・受け止め方の自由度

と同時に、どう受け取ってもいいように作られているな、と思います。

クソアニメ、あるいは幼児向けアニメ、IQ低下アニメ、冒険アニメ、考察アニメ。

その感想は多種多様。

どう受け止めるかは個人の自由であり、その余地を残してある、良い意味で余白のあるアニメなんだと思います。

 

・シンプルで強いメッセージ

そんなけものフレンズが持つテーマ、あるいはメッセージも非常にシンプルで、自分の受け取ったものは、、、

生まれてきた意味がわからなくても前に進め!

というものです。人それぞれだと思いますが、自分はこう受け止めましたね。

カバンちゃんとサーバルちゃんの黄金コンビは、現代人の持っていない、そして必要なものを持っています。素直さ、純粋さであったり、好奇心、探究心であったり。

 

このアニメは出発で始まり、出発で終わりました。

人は冒険するべきなのである、ということなのかなと。

 

 

まだまだあるかと思いますが、こんな感じになりますね。 

 

"かばんちゃん"はなぜ"かばんちゃん"なのか?

さて、本質的な話をそろそろしていきましょうか。

サーバルがそう名付けたからだよ!

といってしまえばそれで終わりですが、この問いにこそがかばんちゃんというキャラクターの本質が隠されているのではないかと思います。

なぜなら"かばんちゃん"の外見でまず目立つのは、物語のキーともなる帽子なわけで、けれども"かばんちゃん""ボウシちゃん"ではなく"かばんちゃん"でなくてはならなかったからです。

サーバルは、後ろから追いかけてたからかばんが気になっていたから、ということもいうことも出来るかもしれないし、たぶん帽子はミライさんのもの、だからということもあるかもしれませんが。それは置いておいて。

 

なぜ"かばんちゃん"は"かばんちゃん"なのか。

それは、かばんちゃん『背負いし者』だからです。

  

かばんちゃんの"かばん" の中身

謎はなおも多く残されていますが、かばんちゃんはヒトのフレンズということでひとまずは帰着しました。(目撃者がアライさんなんで怪しくはありますが。)

記憶喪失ではなく、そもそも記憶がない、ということです。

漠然としたヒトとしての属性を持って生まれてきた空っぽな存在です。

碇シンジのようにウジウジすることはなかったですが、セルリアンにやられる前に『どうして生まれてきたかもわからない~』という言葉がありました。

ヒトとして、なにも持ってきていない状態で生まれてきたのが、かばんちゃんです。

ということは、おそらくかばんの中身は、何も入っていません。

劇中でかばんの中身について、触れられることはありませんでした。おそらく、そこにテーマがあるから触れなかった、と考えるのは深読みしすぎでしょうか?

何も入っていないとなると、かばんは無意味なものか?と言えば違います。

かばんの中身はなくとも、かばんちゃんは『背負って』います。

それは、人間の叡智と業だと考えられます。

 

二期があるとして、ここらへんは掘り下げられると思いますね。

人間の愚かさを知ったとき、かばんちゃんは・・・!!みたいな。

 

後、野生開放についての妄想として、

「僕の本当の能力は!『具現化』し、『取り出す』こと・・・ッ!!」 

ゴゴゴゴゴゴゴゴゴ!!

なんての考えてみたり。

 

アンパンマンけものフレンズ(閑談)

小休止に少し横道に逸れます。

萌えアニメ風に見せかけて、コアな裏のある幼児向けアニメ風であることは、速いうちから指摘されていました。国民的幼児アニメと言えば、アンパンマンとある事情で、著者はアンパンマンをちゃんと見る機会がたびたびあったのですが、けものフレンズ以降だと考えさせられることが多くあることに気づきました。

 

アンパンマンはおもしろい。

アラサー以下の人間は間違いなく、アンパンマンを見て育っています。自分も必死で見てましたね。しかし、自分がそうであったように多くの子供達はアンパンマンを見なくなります。そして、バカにするようになりさえします。

 

・なんで見なくなる?

自分の頃だとまぁドラゴンボールがありましたからね。やっぱ少年達はそっちに走りますよ。女の子はセーラームーンとか。小学校高学年にもなるとほぼ見ることはなくなっていたと思います。

 

けものフレンズを通して

けものフレンズはIQを下げるんじゃない、子供の頃に戻すんだ!というブログ記事がありました。自分はこう言い変えたいと思います。大人になって歪んだ認知バイアスを子供の頃に戻すアニメと。けものフレンズというバイアス正常化アニメを見た後、アンパンマンを見て、確かにそうだと確信し、そして、なんで子供の頃にあんなにアンパンマンに夢中だったのかを 思い出せた気がします。

 

アンパンマンの持つテーマ

バイキンマンって冷静に考えたら、かなりえげつない事やってますよね。アンパンマンもすぐ負けますよね。でも、悪(ばい菌や細菌)がなくなることはありえないし、むしろあることで、自然界はバランスを保っています。どちらかと言うと自然災害や悪いことを擬人化した存在なのかもしれません。正義も弱いし、時として負けるけどなくなることもありません。そういう善と悪がせめぎあうことで、この世界、社会は成立しているんだ、というのがアンパンマンのテーマです。

これは、やなせ先生自身の解説ですからね!!

子供達はこれを本能的に感じ取っている、とのこと。さすが!

 

"セカイ"から"世界"へ

自己完結型の"セカイ"は閉じた世界であり、主人公の精神世界の反映です。その反対に"世界"は"世界"であり、未知であり、外に広がるものです。けものフレンズが描いたものは、現時点では間違いなく後者であるし、テーマとしても"セカイ"を捨てて、"世界"に飛び出して行く、ということだと思います。

 

けものフレンズは、冒険の話でまだまだ広がる未知の世界に飛び出そうということであり、最初は庇護される存在であったカバンちゃんが、自立し、そしてサーバルちゃんと相棒という対等な立場となり、また改めて旅立つ、という終わり方はこの上なく、希望に満ち溢れるものであると同時に、現代人が今最も必要なものが示されているような気さえします。

 

セカイ系といえばエヴァですが、新劇場版の制作は事実上停止してしまっています。しかしエヴァにおいて出された"問い"についての答えは、全てけものフレンズで出されてしまったのでは?と思います。エヴァガンダムと比較されましたが、まさしくけものフレンズもそんな立ち位置になるような気がします。

 

マドマギも比較されましたが、セカイからの脱却は出来ずに、まどかとほむほむの閉じたセカイで終わってしまっていますからね。

 

思えば、碇シンジのような自己問答をかばんちゃんにさせることも出来たんですよね。

実際、描写されていないだけで、かばんちゃんはシンジ君並に悩んでいたのかもしれません。しかし、かばんちゃんにはサーバルちゃんがいて、かばんちゃん本人も、ウジウジ悩まずに、ただひたすらに前へと歩むことを止めなかったわけです。

 

答えは、こんなにもシンプルだったんだと感動しました。

世界にはまだまだ見たことない所がいっぱいだから、飛び出そう!と。

 

最後に

ここまで読みきった方は多くないでしょうが、長々とお付き合いいただきありがとうございました。

本ブログはUnityでインディゲームを作ろうという趣旨のもとで活動してますが、そんな中でけものフレンズと出会い、筆を取らせていただきました。

けものフレンズにちなんだゲーム作れたら面白いんですけど、既にアップされているモノを見ると、とても自分が入っていけないなと思い、とりあえずスキルを上げねば!という感じです。

けものフレンズは、まさに始まったコンテンツであり、これからどうなるのかが楽しみですね。

 

今、思うのは記憶を消してまた最初から見たいということですね。

それでは、ご清聴ありがとうございました!

 

 [ 感謝 ] 本ブログを開設して、半年が経ちました!! [ 御礼! ]

少し遅れましたが、はてなから通知が来ていたので。 

なんと!本ブログが始まって半年が経ちました!! 

ありがとうございます!

自身の飽きっぽさを考えると、これだけでも驚異的ですし、まだまだやる気も書きたいネタもあるので、継続していきたいと思います。

個人的メモというか、主に学びの記録として始めたわけですが、想像以上に多くの方に読んでいただいているようで、鑑賞に堪えうるブログとしての体裁を試行錯誤しながら、整えていくというのも、いろいろ勉強になりました。

ここらへんも随時改善していきたいですね。

 

今後の展開について

引き続きUnityに関すること等を書いていくつもりですが、そろそろ作品らしい作品も、ここで発表していけたらなと思います。

当然、簡単なミニゲームになると思いますがね。どんな形であっても、ドンドン出していけたらなーと。ブラウザ用にビルドできますしね。

あと本ブログ用にYoutubeのチャンネルを開設はしているんですよね。やっぱ文章だけでは限界があると思うし、Unityでやってる事、実験などを動画にして、必要あれば解説文をここで書いて・・・みたいなことを出来たら面白いのかなぁ、と考え中です。

なにわともあれ、思いついたことをドンドンやっていけたらなぁ、と思います。

 

ただ、しばらくの間、生活がバタバタするので、週一更新は難しくなるかもしれません。しかし直ぐに体制を整えて、Unityと本ブログどちらも楽しくやっていこうと思うので、今後もよろしくお願いします!!

 

"ゲームプログラマのためのコーディング技術"を読んで。やはりいい本はC++を採用してる問題も合わせて。

ひとまず通読したので、その感想を。自分のような一皮向けようとしている初心者にとっては非常にわかりやすく、レイアウトなども含め、いい本だと思いました。特に"クラス"については、いかにクラス設計すべきかの指針を具体的に書いており、そもそもクラスは何のために必要か?という部分も学ぶことが出来る本かと。オブジェクト指向の把握のしにくさは、このブログでも何度か書いてますが、そこらへんがキッチリ説明されている本です。 

f:id:miur-us:20170426052641p:plain

  

題名に反し、普遍的な内容

ゲームプログラマのための、と題されてますが、むしろ普遍的な、基本的な技術を中心とした内容になっており、実践的なプログラミング力(ちから)を付けるのには、最適な一冊だと思います。Amazonのレビューは割と厳しめですが。

この本で身につけられるものは、大きく分けて次の三つです。

 

 

具体的なゲームを動かすコードをどのように書くべきか、という内容ではなく、それらを上手く書くための基礎的な部分を説明しているのが本書の特徴だと思います。

コーディング技術ですからね、そこにだけ注意です。

サンプルコードはC++で書かれている点を許容できれば、Unityを使う上でも非常にためになる知識が多く載っていると思うのですが、どうでしょうか。

 


f:id:miur-us:20170426044940j:plain

Unityで覚える遊びのアルゴリズム

Unity関連の書籍としては、この本が有名ですが、これもプログラミングを主体にした本です。しかし、これはある程度プログラミングできる前提で、コードの書き方自体ではなく、あるルールのゲームを実現するには、どういうコードを組めばいいか?という内容になっています。つまりはゲームプログラマのための~』の対極にある本です。これについての書評もそのうち書きたいと思います。本記事の本と合わせて読むのがいいのかもしれませんね。


 

本、テキストとしてのクオリティ

個人的な意見としてプログラミングについての本、特に和書は抽象的な説明のみになってしまっており、つかみどころのない文章になってしまっている場合が多いと思います。その結果、頭ではわかっても体ではわからない、という状態になってしまいます。まぁプログラミングは自分で書いて覚えていくものでしょうが。

 

Amazonの批判的なレビューに「今更な内容。この時期にあえて出す意味わからん」というようなものがありますが、そうは思いませんね。基礎的な内容を求めているヒトは自分を含めてたくさんいますし、何より基礎的なことをあえて今書かない理由の方が見つからないと思います。そう反論したいくらいには買ってよかったなと思います。要は"書き方"の問題であり、どう書かれているか?ということです。

 

例えば、プログラミングに関する名著に『リーダブルコード』があります。この本も、どう書くべきかの指針となるような本で、確かに名著だと思いますし、C#でのコードは一切出てこないのですが、かなり勉強になります。

この本も、『別に新しくもなんともないじゃん。』というレビューがあったそうです。

でも、この本は別に内容だけで評価されているのではなくて、その書き方によるところも大きいと思うのです。とにかくすごい読みやすいですし、読み物としてのクオリティが高いんです。読み通すこと自体は直ぐできますが、書いてあることを実際に出来るようになるには時間がかかりますし、何度も読み返すことになります。

何度も読み返すのが楽しいこと、が大事なんだと思います。

少し話がズレましたが、要はこの本もそういうクオリティを持っている自分は考えています。テキストとしてのクオリティが高いです。

 

いい本に限ってC++

これはもうそういう定めなんでしょうね。

以前紹介した『プログラマーの考え方が身につく本』もC++で書かれていますが、これも非常にためになる本です。C++は何でもできるし、使えるプログラマは本物だから、ということで採用したとのことですが、本著でもそういうことなんでしょう。

UnrealはまさしくC++がメインなので、Unity使い達にとっては羨ましい限りです。というかC++勉強すれば良いじゃん!って言われそうですが。

しかし、読めるコードも多いので、Unity使いであって、なんとか読むべきかなと。

C#じゃないんだ・・・、じゃあいいかな。というのではもったいない!

C#で書かれたこのようなクオリティの本が欲しいところです。

 

まとめ

2015発ということで、新しい書籍に属すると思いますし、著者の方も実際にコンシューマ開発に携わっておられたようなので、昨今のコーディング技術を実践的に学ぶにはやはり良い一冊です。さらに精読をしていきたいと思います!!

 

ではまた!

 

"Yooka - Laylee" (ヨーカとライリー)の初見感想について!![ Made With Unity ]

いよいよ発売された"Yooka - Laylee"について!

6, 7時間ほどプレイした上での感想、レビューを書きます。ゲームデザインとしては、良くも悪くも昔ながらの3Dアクションゲーム。テンポに多少の問題ありかも?特に経験豊富なゲーマー(つまり子供の頃にバンカズやったような)にとっては、たぶん最初の三時間は少しかったるい。しかし、アクションの幅が広がってくると、俄然おもしろくなってくるぞ!というのが、筆者のファーストインプレッション。まだまだこれからという感じですが、楽しく遊んでます!

Unityエンジン製のアクションゲームとしては文句なし!! 

f:id:miur-us:20170418030319j:plain

プレイ中に撮ったスクショです!

注意!!

本ブログの性質上、純粋なゲーマーとしてのレビューとはなりませんし、一部評論家気取りな意見もあるかもですが、ご了承ください。

 

あとSTEAM版は日本語非対応です!!

 

オールドスクールな出来栄え

本作は、バンジョーとカズーイ精神的後継作として、キックスタートでの資金集めからスタートし、インディ制作によって生まれた作品です。

要は90年代のゲームのテイストを多く含みます。それが良くも悪くもはっきりと出ているような気がします。そういう意味で、オールド・スクールな作品かと。

懐古主義までには行ってないけど、かといって尖った新しさもない、みたいな。 

f:id:miur-us:20170418030408j:plain

木村カエラっぽい女科学者の変身銃でトランスフォーム!

メイン・エリアとなる敵の本拠地のタワーを探索しつつ、設置、あるいは隠されている魔法の本から各ワールド(オープンワールド仕様)に飛び、自由に探索して、散らばっている黄金の羽(アクションを買える)そして、目的物となるペイジーを集めていきます。ペイジーによって、入り口となる魔法の本(TOME デカイ本という意)はアンロックされ、さらにペイジーを消費することでエリア拡張されます。

なので、同じワールドでも、手に入れたアクションあるいは拡張によって、探検の範囲が広がる、というゲームデザインになっています。 一度クリアしたワールドでも、しばらくした後で来ると、意外な発見がある!というアレです。

 

・現代的なグラで、あの頃のゲームを。

グラフィックですが、いいですよ。かわいらしい、あるいはキモカワなキャラ達が、CGアニメなワールドに生き生きと動いています。やっぱグラ大事!

・自由に駆け巡れる。

ただし、最初は出来るアクションが少ないので、熟練のゲーマーは多少イライラするでしょう。しかしゲームが進めば、自由に駆け巡れます。

・ただし、"世界"に放り出される。

オープンワールドというものは、その性質上、何をすればいいのか、どこに行けばいいのか?ということがわからなくなりがちですが、昨今のゲームはプレイヤーをガイドするサポート機能が多くあります。

しかし、Yooka Layleeには基本的にそういうものはなく、キャラクターとの会話を元に、ワールド内を探索して、かなり自発的に考えて行動しないとダメです。そういう意味ではやりがいはあるゲームだと思いますし、少し不親切とも言う事ができるかもしれません。あるムーヴ(能力)が必要な場面で、「ここは後で来たほうがいいかも」みたいなものはないということです。

 

テンポの問題(ゲーム全体の)

アクションゲームとしてのテンポは一切の問題はないと思います。

しかし、キャラ同士のコミカルな会話(字幕)を主体に、寸劇が多く挟まれてくるので、とにかく飛び回りたい!という人にとって、それらは邪魔な要素かもしれません。でもそれはゲームデザイン上、コミカルなキャラがコミカルなやり取りをするっていうのは、不可避ですからね。それいっちゃお終いよ。という部分ではあります。ライリーの毒舌とか笑えるんですけどね。これもある意味、昔ながらのゲーム。 

f:id:miur-us:20170418030525j:plain

各地にいるキャラクターとの交流も冒険のひとつ。

イベント戦がクイズ問題

これは個人的な好みからくる不満ではあるかもしれません。

えー、とにかく自分はボス戦でのミニゲームが嫌いです。しりとりとか本当に苦手でしたし、旗揚げとかも嫌いです。神経衰弱も。殴らせろ、と。

 

ボス戦ではないですが、第2エリアに移るのに、ボスの右腕的存在である、アヒルの科学者によるクイズ実質8問解かなければいけません。つまり早々にあるわけです。

ここのデザインに関しては、明らかなミス、というか自分が嫌なだけなんですが、めんどくせー!という感じでした。まぁ2,3回挑戦してクリアして進みましたよ。これ以降は、できるアクションが増えてきますし、面白さが加速度的に上がっていきます。

 

尻上がりなおもしろさ?

このゲームは、そんな感じがします。上に書きましたが、最初の三時間はチュートリアル的な部分も含まれているわけですが、まぁわりとこんなもんかな、という感じではあります。説明らしい説明もそれほどないので、慣れも必要です。しかし、進むごとに、大ジャンプ、あるいは滑空飛行などをドンドン覚えていきますので、そこらへんから面白くなってきています。ドンキーなどではおなじみの氷のステージが2ステージ目ですからね。音楽、雰囲気を含めて、ここら辺でグッと来た感じです。 

f:id:miur-us:20170418030620j:plain

トロッコゲームは各ワールドにあるようです。

Made With Unityとして

繰り返しますが、文句のつけようがないです。Unityであるということも意識することはありませんね。基本的によっぽどの高性能で、画期的なエンジンでもなければ、普通のプレイヤーが遊んでいて、エンジンを意識するということはないでしょう。Unityは汎用エンジンなので、もし意識するとしたら、それはネガティヴなものなはずです。

そういうの一切ないですね、マジで。

やはり、Unityでアクションゲームを作る!という人たちにとっては今後の1つの指標になるのでは?という気がします。というか自分はします。

とにかく更にゲームを進めたいと思います。 

  

ひとまず初感としては、こんな感じで。