以前の記事では、個人的な興味や能力から
3Dモデリング技術を3Dプリンターで活用模索
↓
無料3D-CAD「FUSION 360」の発見
↓
「FUSION 360」と「Blender」の連携模索
までを書いていますので、こちらの記事から見始めた人は(1)を先に見る事をおススメします。
【関連記事】
⇒ 2020年、創作活動を開始する(2) (この記事)
⇒ 2020年、創作活動を開始する(3)
unityに辿り着く
「FUSION 360」や「Blender」で3Dモデルの作成を模索したり、スライムを作って動かしてみたりしていく中でまた、ゲーム開発に挑戦してみようかな?という気持ちになってきた。
マグカップ。
これも、回転と 取っ手をパイプで作ってくっつけるだけだからら簡単だね。#Fusion360 pic.twitter.com/5eZRgok0Rs— シルビア (@Silvia4633) January 15, 2020
実は一度、androidアプリ作成に挑戦していた
時は2011年。スマートフォンが注目され始めた頃。
今と同じく、仕事がなくなり困窮していた時。
基金訓練(現在は、求職者支援訓練)という制度を利用して、「スマートフォンアプリ開発者育成」コースを受講。6ヶ月、みっちり JAVAの基礎~応用。androidアプリ制作 までを学んでいました。
受講料は無料。条件さえあえば、給付金も貰えるので学びながら、凌げて、技術も身に付くありがたい制度。(条件が合わず、給付金はもらえませんでしたが・・・)
プログラミング経験ゼロの人も対象としていたため、 プログラミングの基礎を知っている私にとっては進行が遅すぎ、全期間 完全自習で先行学習してました。
が、言語をこれほどみっちり基礎から応用まで本気で学んだのは初の機会。おかげで、JAVAはしっかり身に付いたと思います。
そのまま、どこかソフトウェア開発会社にでも就職できてれば良かったのですが、そんな会社なんて皆無なんですよね。地方都市って不便。時代的にもandroidプログラマーってのは早すぎたのもあるのかも?
なので、androidアプリの制作技術向上を目的に
ブログ記事を書きつつゲーム制作に挑戦
していた時期があるのです。
【過去のブログはこちら】
この時の体験からいうと、ゲームをゼロからプログラミングするには 物凄く時間が掛かるということ。
例でいうと、画像を表示するだけでも どういう仕組みで表示させるか?の基礎部分から組み立てる必要があるのです。
さらに、ゲームに使う画像素材も 自作出来ないので探す必要がありますが サイズや雰囲気が違ったり 必要なものがないなど 1つの作品としてチグハグなものになってしまうのです。
ブログの最後の方でまとめていますが、最もな失敗の原因は、
「プログラミングスキルの向上が目標になり、思いついたアイデアをJAVAで表現出来た時点で 満足してしまって アプリ完成まで意欲が続かなかった」
こと。
androidアプリは、記憶を辿りつつ頑張れば作れるだろう。
だがしかし、また1からアプリ開発をするとなると 同じ状況になりかねない。
そこで登場するのが、ゲーム開発に特化した開発ツール
『Unity』
androidアプリの開発にチャレンジしていた2011年当時も、『Unity』の存在は知っていました。しかし、当時は『Unity』が今ほど充実した開発環境ではなかったのと、個人用で簡単&自由に使える存在でもなかったので、選択肢としては選びようがなかったのです。
これまでの経緯で、3Dモデリングの調査から 再度、ゲーム開発に意欲が出てきたなかで「Unity」を調べてみると・・・
驚くべき進化と、利便性の高い開発ツールになっている事が判明。
【ここがスゴイUnity】
ちょっとだけ、Unityの利便性を書き出してみると・・・
- iOS(iPhone)用ゲームが作れる
- android用ゲームが作れる
- PC用ゲームが作れる
- 3DS用ゲームが作れる
- WiiU用ゲームが作れる
- PS4用ゲームが作れる
- Nintendo Switch用ゲームが作れる
そう、どのプラットフォーム向けのゲームでもUnityで開発できちゃうんです。
【参考リンク】
⇒ 任天堂の開発者サイト(https://developer.nintendo.com/)
例えばこのように、任天堂向けゲームは 個人でもデベロッパー登録することでゲームを作り販売可能なのです。
Nintendo Switchの個人開発登録は 現在は準備段階らしいです。
Nintendo Switchの個人向け開発登録が解放されていました。
【2020/5/4確認情報】
⇒ Nintendo Switch用ゲーム開発が、個人向けにも開放!
【関連記事】(外部サイト)
⇒ 一個人としてswitch開発機材を購入しようとしたお話
(http://www.unitygamebox.com/entry/2018/06/05/232727)
そして、スマホ用ゲームのアレやコレも 実は『Unity』で開発されていたのです。
【Unityで開発されたスマホゲームの一部例】
- ポケモンGO:任天堂
- スーパーマリオラン:任天堂
- どうぶつの森ポケットキャンプ:任天堂
- ドラゴンクエストⅧ:スクウェアエニックス
- アイドルマスター シンデレラガールズ スターライトステージ:バンナム
- サモンズボード:ガンホー
- 逆転オセロニア:DeNA
- 白猫プロジェクト:コロプラ
【Nintendo Switch】
- いけにえと雪のセツナ:スクウェアエニックス
【PS4】
- バイオハザードアンブレラコア:カプコン
こうなってくると、無理に プログラミングだけに頼るゲーム開発に拘る必要もない。
むしろ、「Unity」での開発を学び、慣れていった方が 便利で楽に「ゲーム開発」に集中できる環境になってきているということなのです。
Unityでの開発言語はC#
調べていく中で、「Unity」で使用するプログラム言語は C# のようです。
上記に書いたように、「JAVA」は勉強しましたが、私は 「C#」 というプログラム言語は一度も触ったことがないです。
が、まったく危惧はしてません。
プログラム言語は何であれ 基本の制御文はちょっとした記述の違いがあるくらいですべきことはほとんど同じ。一通り、なにかで記述の流れを学習すれば簡単に応用が利くものなのです。
もし、プログラミングに興味のある人がいれば
プログラム言語はなにがいい?
と拘らず、
何かプログラム言語を1つ
をきっちり使いこなすまで勉強しておくことをおススメします。
その際、には オブジェクト指向 言語であることには最低限拘っておけば大丈夫でしょう。
おススメとしては
- C++
- C#
- JAVA
- Python
最近の流行はPython?
Python を触ったことはありませんが、世間の評判やコードを見た感じでは AI学習などで今後、主流になっていく気配は感じます。
ただし、Python は記述方法が洗練されている分
Python ⇒ C++ C# JAVA
へは、記述が煩わしすぎて対応しずらくなるかもしれません。
逆に
C++ C# JAVA ⇒ Python
は、記述が容易になることで 対応がしやすいという利点があるような気がします。
個人的には、「JAVA」を一度、きちんと勉強して理解しておくことをおススメします。
【JAVAを勉強するのにおススメの教材】
ポイント: 86pt (3%) /価格は2020/2/27調べ
ポイント: 98pt (3%) /価格は2020/2/27調べ
よくできた書籍
上記の書籍は、すごくよくできていますので、個人的に最高におススメできます。
冒頭に書いた「基金訓練」での、指定教材となっていた書籍なんですが
解説・実例・例題・まとめテスト
と構成されていおり、独習でも きっちり漏れなく読み、確かめ、問題を解くをまもって進めるだけで 確実に「JAVAプログラミング」が身に付きます。
基金訓練で、プログラミングが初めてという人たちも 講師の説明を交えながら この本の通りに学習するだけで 全員が 一応の理解とJAVAプログラミングの使い方を習得できていましたからね。
※初プログラミングという人たちを見ていると、文法の理解と、ゼロからプログラミングでアプリを作る能力は別問題という事実もうかがい知れました。
プログラムが判っても、アプリを作るために、どう使い、どう組み合わせるか?は、慣れや熟練、実務経験などが重要で、初体験の人たちはかなり苦労されてました。
同じような理由から、私自身も学んだだけのプログラミング知識では アプリを作るのには経験不足を実感。
基金訓練後に アプリを作るための実践研究的な試みも兼ねてブログに記録しながら色々挑戦してみましたが、 「アプリ」として完成させるまでの企画力や構成力、素材作成の困難さなどの壁にぶち当たり、挫折したというのが現実。
ですが、色々な検証をしてみて思ったのは やりたいことをイメージできたら、プログラムの効率を度外視すれば 「案外実現できるものだな」という感覚も得られたと思います。
仕組みを具現化することの面白さ
ここまで、読んだ人は この人よほどゲーム好きなんだな。ゲームで遊びまくってるのかな。と思う人も多いでしょう。
実際の所、ここ十数年。もしかしたら20年以上。終わりのあるゲームをまともにプレイしきった記憶はないです。
じゃあなぜゲームを作りたいのか?というと、
『仕組みを具現化』
することに、魅力を感じるからなのです。
ゲームなら、事象のルールや物の価値、目的 などを すべて自分で構築してゲームという世界の中に作り出せるからです。
別に、普通の便利アプリなどでもいいのですが そうなると、
- 現実の金銭価値
世の中にはすでに、物の価格や価値が出来上がっています。その価値を超えたルールは通用しません。
たとえばRPG風に考えると「銅の剣」をアプリ内で購入できます!価格は10,000円。
さて、アプリ内で所持できるだけの「銅の剣」を現実のお金10,000円で買いますか?
買いませんよね。
それが、ゲーム内の世界なら ゲーム内の通貨価値を構築でき、ゲーム内での物価を構築できるということです。
- 現実のルール
なんらかの対決するアプリを作ったとしましょう。
負けたら、問答無用で この世から 抹殺させてもらいます。
対象者の体のパーツに応じて、賞金も出ますので 暗殺希望者は頑張って 抹殺しましょう。
なんてアプリを作って、現実に通用しませんよね。犯罪行為だらけです。
それが、ゲーム内の世界なら通用するんです。ルールをすべて自由に構築できるんです。
ゲーム自体は断続的にプレイしていますが、上手くなろうとやり込むわけではないのです。
仕組みの面白さの確認やどういう所に魅力があり、プレイヤーが継続プレイする魅力はなんなのか?という解析が目的だといっていいでしょう。
面白い仕組みやプレイ感覚 を見つけると、それを別の形で表現してみたら面白いんじゃないか?という発想に繋がるんですよね。
アレとコレを混ぜてみたら、面白そう・・・とかね。
それを具現化するには、自分でゲーム作りをするしか方法はない。
また、長くなってしまったので次に続きます。
⇒ 2020年、創作活動を開始する(3)