ゲームエフェクトデザイナーのブログ | A Real-Time VFX Artist's Blog

About Making Materials on UE, Making Tools with C#, etc

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 を導入して、.NET向けAPI(?)の「Windowsフォームアプリケーション」というWindowsでお馴染なGUIのツールをC#で作っていく内容になっています。

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

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

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

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

ただこちらの書籍、最初は簡単なツールから始まって色んなツールを順番に作っていくのですが、最後の家計簿ツールで難易度が急に上がって感じました。。

家計簿ツールの途中でどこを間違ったのか動かなくなってしまい、手順を追っていっても何をしているのか理解できなくなってきていたため、いったん書籍は中断して、好きなものを作っていくステップに移りました(家計簿ツールは一年後に再挑戦してみたらちゃんと完成しました!)。

結果的にもそれで良かったです。

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

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


という訳で、まずは基礎文法を勉強して上記書籍を一通り試してみるという感じでツール作りに入っていきました。ここまでで、休日などがっつりと費やして一気に進めたら 3週間ほどという感じでした。

その後さらに2週間ほどでほんのちょっとした小さなツール(テキストボックスに入力したファイルパスからファイル名の部分を削るだけのツールとか)を6つ7つ作ってみたらツール作りにも徐々に慣れてきて、今後も徐々にステップアップしながら色々と作っていける手応えを感じました。

楽しくてお仕事にも役に立つので、CGアーティストな皆さまもぜひぜひC#でツールを作ってみてみてください!