ゲームエフェクトデザイナーのブログ (新)

レポート記事とかUE4のマテリアルとか。C#とかも触ったり。

C#のはじめ方

CGアーティストもWindows用ツールを作りたい!

ということで C# をいくらか触って簡単なツールをいくつか作ってみました。
思っていたよりもずっと敷居は低かったので、備忘録がてら軽くまとめておこうと思います。

※プログラム自体の初心者が書くアーティスト向け記事ということにご留意ください

基本的な文法の習得


とは言え最低限の文法をまずは覚える必要があります。
「何か作りたい!」のに作れない、この第一歩が最初のもどかしい時間とは思いますが、どうしてもここは頑張るしかないところだと思います。

さて、どんなプログラミング言語でも大体同じなのかなと思いますが、最初に覚える必要がある要素は以下のあたりと思います。

 変数の宣言・代入・型
 メソッド・引数・戻り値
 if文・for文・配列
 クラス・オブジェクトの生成
 using(pythonで言うところのimport)
 アクセス修飾子(publicとか)

とりあえずここまで覚えれば、クラスの継承とかコンストラクタとかオーバーロードといったクラス周りのややこしいルールの学習は後回しで良いと思います。
ほんのちょっとしたツールだとクラスを自作しなくても大丈夫な感じですし、実際にツールで実装したいことは工程ごとにGoogleで調べてコピペで大体いけます。

ではどうやって覚えるかというと、自分の場合はこちらのシリーズにお世話になりました。
(正確に言えば同じ投稿者の方のJava超入門シリーズでまずはJavaから覚えました。JavaC#と文法がかなり近いです)

メモ帳でC#超入門 #1 環境構築 by T.Umezawa - ニコニコ動画

この方の動画はとても丁寧で分かりやすく解説されていて、以下のあたりが特徴です。

・声が聞きとりやすい
・メモ帳でコーディングしてコマンドプロンプトコンパイルするスタイル
RPGゲームを作っていきながらの解説
・エラーが出て修正する手順を丁寧に繰り返して解説
・煩雑になったコードを修正対応しやすい&読みやすいコードにどう整形していくかを丁寧に解説
・ドキュメントの調べ方を解説


‥という感じで、単に文法の説明で終わらずとてもポイント高いと感じます。

また、いきなり本を買って手元でページをめくりながら試すよりも、動画を流しながら試す方が初心者にも入りやすくてとても良いですね!

いやいや、メモ帳とかコマンドプロンプトじゃなくて最初からIDE(開発環境)でやりたい!
手っ取り早く文法だけ知りたい!

‥という方にはこちらのシリーズがおすすめです。

【プログラミング講座】第1回 プログラム言語の種類【独り言】

こちらの動画の良いところは以下のあたり。

Visual Studioを使ったスタイル
・WindowsFormでのツールを制作していきながらの解説
・若干ゲームを作るパートもある
・WindowsFormの各コントロール(ウインドウを構成するパーツ)の解説が充実している


どうすればウインドウサイズを変えても崩れないレイアウトを作成できるのかというあたりの解説も含まれていて、これが案外ググっても出てこないため個人的にとてもポイント高いと思いました。

そうして基本的なところが一通り馴染んだら、次のステップに移って良いと思います。

逆に、上に挙げたあたりは最初に覚えておかないと、入門書を買って読んでもついていけない可能性がありますし、やりたいことをネットで検索してサンプルコードを見つけてもそのままでは動かない時に直すことができないですね。。

実際に何かツールを作ってみる


早速色々作りたいところですが、自分の場合はこちらの書籍を購入して進めました。

作って覚えるVisual C# 2017 デスクトップアプリ入門

作って覚えるVisual C# 2017 デスクトップアプリ入門

 

色んなツールを作りながらステップアップしていける、とても良い本だと思います。

C#で具体的なツールを実際に作ってみよう的な本って思いのほか少ないんですね。
多くの書籍が文法の解説や逆引きだったりします。

こちらの書籍は Visual Studio Community 2017 を導入して、WindowsフォームアプリケーションというWindowsでお馴染なGUIのツールを作っていきます。

Visual Studioというと、本格的なプログラミング環境でとても大層でハードル高いイメージがありましたが、むしろ初心者に優しい機能がてんこ盛りなんですね。

何といってもWindows向けのツールのGUIを、ボタンやテキストボックスなどペタペタ貼り付けるだけでほとんどコーディングせず作れてしまいます。

また、変数や関数などに色が付いたり(シンタックスハイライト)、コンパイル時にエラーが出る部分がリアルタイムで表示されたり、定義済みの変数や関数が予測変換でリストアップされたりと便利すぎます。

1命令ずつ順に実行(ステップ実行)してその時々の変数の値を確認しながらデバッグできたりといったあたりも大変便利。。

ただこちらの書籍、最後の家計簿ツールで難易度が急に上がって感じました。。

家計簿ツールの1要素であるDataGridViewの扱いだけでも入口から順に覚えていかないと‥と思っていったん書籍は中断し、好きなものを作っていくステップに移りました。

最後までやらずともツールを作る手順は大体学べます。
あとはネットで調べつつ色々作ってみるべし!という感じでしょうかっ。

ツールを作っていく過程で、クラスをnewしなくても直接使えるものがあったり、見つけたサンプルコードで使われている型が int や string ではなく「var」であったり、触っている上で色々と「?」に遭遇しますが、そういうのは気になったタイミングで調べれば良いと思います。


ここまでで、休日などがっつりと費やして一気に進めたら 3週間という感じでしょうか。
その後、2週間ほどでちょっとした小さなツールを6~7つ作ってみたらツール作りにも徐々に慣れてきて、今後も徐々にステップアップしながら色々と作っていける手応えを感じました。

楽しくて勉強になるので、CGアーティストの方もぜひぜひ作ってみてみてください。