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

レポート記事とか色々。C#とかも触ったり。

C#のはじめ方

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

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

※あくまで C# 初心者が書くアーティスト向けの記事ということにご留意ください

基本的な文法の習得


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

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

 変数の宣言・代入・型
 メソッド・引数・戻り値
 if文・for文・配列
 クラス・オブジェクトの生成
 using
 アクセス修飾子

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

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

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

この方の動画はとても丁寧で分かりやすく解説されていて、声も聞きとりやすいです。
文法ミスでエラーが出て、エラーのある箇所を直す‥という手順を丁寧に繰り返して解説されていたり、煩雑になったコードを修正対応しやすい&読みやすいコードにどう整形していくか‥というところまで解説されていて、とてもポイント高いと思います。

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

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

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

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


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

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

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

 

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

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

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

Visual Studioというと、本格的なプログラミング環境でとても大層でハードル高いイメージがありましたが、むしろ初心者に優しい機能がてんこ盛りなんですね。
特にGUIはボタンやテキストボックスなどペタペタ貼り付けるだけでほとんどコーディングせず作れてしまいます。
あとコンパイル時にエラーが出る部分がリアルタイムで表示されたり、定義済みの変数なんかが予測変換にリストアップされたりしてありがたいです。

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

ツールを作る手順は大体学べるので、書籍の内容をそのまま真似るだけでも十分学習になりました。
あとはネットで調べつつ色々作るべし!という感じでしょうかっ。

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

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

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