
私はゲームにおけるプログラミングを理解したく、C・C++を勉強したいと思っています。
しかしC言語についてはまったく知識がありません。過去にBASICで音楽をつくったりEXCELでVBAをいじった程度のド素人です。
いちおうゲームに関する技術は一通り理解しています。CGソフトでのモデリング、マッピング、アニメーションもできます。
専門用語になりますが、いちばんできるようになりたいのは「シェーダの作成」です。レンダリング部分を自在にいじれるようになりたいのです。
このような状況で、C・C++を学習するにはどうしたらよいでしょうか?私は普段は会社勤めですのでできれば都内で学習できる学校に通いたいと思っています。
ゲーム全般の学習ができなくても、C・C++がある程度理解できるようになれば、あとはDirectXやOpenGL、Cgfxなどの専門書で理解できるのでしょうか?
Cの基礎からの学習方法だけのアドバイスでもかまいません。よろしくお願いします。
No.4ベストアンサー
- 回答日時:
・シェーダプログラミングと「C/C++によるプログラミング」は全くの別系統
は
・シェーダプログラミングと「C/C++によるアプリケーションプログラミング」は全くの別系統
と書くべきところでした。
CgやGLSLの言語としての構造はC言語をベースにしているので、C言語の基礎の学習は(CgやGLSLを使用するのであれば)シェーダプログラミングの学習の基本にも通じるものがあります。(もっと大まかに言えば、BASICやVBAによるプログラムにも通じるものがあります。)
しかし、C言語を使用して「アプリケーション」プログラムを作成するための知識はシェーダプログラミングには一切不要ですので、学ぶとすればC言語の「基礎だけ」「スタイルだけ」を学習しましょう。それ以上はシェーダプログラミングの学習には無駄です。
この用途には、一般のC言語の入門書のうちごく基礎で、なおかつ「実際的でないもの」(通常は「実用的でない」と判断される部類のもの)が、この用途には適しています。また、C++言語の入門書は不適です。
どれが「実際的でない」「実用的でない」かを判断するのはちょっと難しいですが、ざっと目次に目をとおして、特に目次の最後のほうで何かまとまったプログラム(たとえばゲーム、住所録、ワープロ等)を作成する章や例題が出ているようなら、その本は比較的「実際的」「実用的」と考えてよいでしょう。そういう本は避けたほうが無難です。
それから、CgやCLSLの専門書がもしあるのであれば、そちらは必携です。
DirectXの本は、内容に十分注意してください。「DirectXを使ったアプリケーションプログラム(たいていはゲーム)を作成する」というテーマの本の場合、おそらくほとんどは不適です。まだほとんどないかと思いますが、もし「DirectXを使ったアプリケーションプログラムで、シェーダプログラムを使用する」というテーマを持った本であれば、それは適しています。
具体的なご説明に感謝します。
たしかにアプリケーションプログラミングはしないので、VC++のようなソフトは不要なのかもしれませんね。
GLSLやHLSL、Cg言語を記述するとキューブやスフィアなどの単純なジオメトリにシェーディングが確認できればよいのでは・・・と思っております。
NvidiaのfxComposerなどがそういう目的のソフトかと思っていますが、そうなのでしょうか?
つまり、VC++はC言語でアプリケーションを作成するソフトという構図に対して、fxComposerはCg言語でシェーダを作成するソフトという認識であっているでしょうか?
シェーダに関して海外のWebサイトなどが実際にソースを公開しているところも多いので参考にしてみたいと思います。
VC++の学習は不要ということでちょっと意外でしたが納得しました。
No.5
- 回答日時:
その認識で合っています。
「グラフィックソフトウェアで使用する、(例えば)Cgで作成したシェーダプログラム」は、例えていえば「Excelで使用する、VBAで作成したマクロ」のようなものです。シェーダプログラムもVBAマクロも、それ単独で動作させることはできず、ホストとなるアプリケーションが別に必要になります。
そしてそのホストアプリケーションが、シェーダプログラム(やVBAマクロ)に必要な情報を与え、処理結果を表示する仲立ちをするわけです。(この辺が、「アプリケーションプログラムの作成」と考え方の異なる部分です。)
C言語でもそういったマクロ的なアプリケーションを書く場合がありますが、「マクロとしてC言語を使ってみましょう」という入門書はちょっと見たことがないですね。
再びありがとうございます。
これで学習の方向性がわかったので明日書店にいって該当する書籍を探してみたいと思います。
#1、#2の方もあわせて詳しいご説明に感謝します。
No.3
- 回答日時:
シェーダプログラミングと「C/C++によるプログラミング」は全くの別系統に属するものなので、どちらかを先に行わないと困るようなことはありません。
もしシェーダプログラミングの習得が優先目標であれば、C/C++を学習してもあまり役に立ちませんので、シェーダプログラミングだけに着手されることをお勧めします。
お返事ありがとうございます。
>シェーダプログラミングと「C/C++によるプログラミング」は全くの別系統に属するものなので、どちらかを先に行わないと困るようなことはありません。
そうなのですか・・・!C言語と似ている別の言語という認識だったのですがまったく違うのでしょうか?
しかし一からシェーダ言語を解説している書籍とかは見当たらなかったので学習方法が難しいですね・・・。
何かよい方法があれば詳しくお伺いしたいです。
あと、VisualStudio2003 Professionalを購入しようと思っておりますが、もしかして必要ないのでしょうか?
No.2
- 回答日時:
>ゲームに関する技術は一通り理解しています。
CGソフトでのモデリング、マッピング、アニメーションもできます。これは3Dモデリングソフトを使用した、リソース製作の扱いは出来ると言う事でしょうか?
これだけ見ると、扱える分野がグラフィッカの担当部分に見えるのですが。
もちろん、グラフィックの分野も知っていた方が、プログラマとしては得なのですが。
DirectXAPIとC・C++でゲームの製作を行いたいのであれば、CとC++で、初級者用の参考書に載っている様なレベルの機能群は、頭に入れておく。
または、すぐに調べて理解出来る状態にしておく事が重要です。
目安として、林晴比古氏の新C言語・C++入門のビギナー編(著書の好き嫌いは別として)にて扱っている程度の内容が把握出来ていれば、特別問題は無いと思います。
BasicやVBAを触った事があるのでしたら、基本の理解は著書やネットだけでもスムーズにいくのでは無いでしょうか?
少なくとも、言語の機能や構文の扱い程度、学校に行ってまで学ぶような物では無いと思います。
DirectXの著書等は、C/C++の基本が理解出来ている事を前提に書かれている物が多いので、これらを理解していないと、読んでも理解には繋がり難いです。
アーキテクチャを理解するだけなら、文章だけでも何とかなりますが・・・後は、数学の知識があると便利です。(高校レベル必須・大学レベル推奨と言った所でしょうか?)
DirectXまでの大きな流れは、sha-girl様の言うとおりですね。
・C/C++
・WindowsCプログラミング(WinMainやメッセージループ等)
・DirectX
となります。
Windowsプログラムの過程で、MFCを理解する必要はありません。私は経験上、ゲーム製作でMFCを使用した事はありません。
パッドの設定ツールなど、イベントドリブン方式のGUIを作るなら、MFCが使えると多少便利ですが。
また、DirectXも、学校で学んでもあまり意味を成さないと思います。
私は某専門学校のゲーム製作系学科の出身で、DirectXも科目にありましたが、とても学んだと言えるレベルではありませんでした。
扱えるようになったのは卒業後に独学で習得したためです。
もちろん、シェーダについて授業で扱う事はありませんでした。
シェーダや3Dの勉強は、sha-girl様同様、http://www.t-pot.com/
で行っています。
シェーダを扱うなら、HLSL も、1つ勉強する上でのキーワードになると思います。
詳しいご説明ありがとうございます。
おっしゃるとおり私はグラフィック担当です。CGソフトのGUIでシェーダを作るのは簡単ですが、HLSLやCg言語でシェーダを作る、というのはまったく理解できていない状態です。
学校をいろいろ探しましたが、おそらくゲーム分野やCG分野で勤め人に教えているスクールのようなところはないだろうと思い、C/C++の基礎的な部分をスクールで学び、DirectXやOpenGLなどのグラフィック部分は独学で勉強しようと思っておりました。
学習の仕方の指針をいただいて感謝しております。お二方のアドバイスを元に学習計画を立ててすぐに実行したいと思います。
No.1
- 回答日時:
シェーダープログラミングはゲーム業界の中でも本当に扱える人は少ないですね。
学校でシェーダープログラミングまで教えてくれるところはほとんど無いのでは。
基本的に独学でしょう。
シェーダーで有名なのはこのページです。
http://www.t-pot.com/
本もだしています。
ただ今の段階でこのページをみても難しいでしょう。
まず基本はCから初めて
C→C++→WindowsSDK→MFC(これは無くても良い)→DirectX
といった流れで学習していきます。
>C・C++がある程度理解できるようになれば、あとはDirectXやOpenGL、Cgfxなどの専門書で理解できるのでしょうか?
DirectXSDKにはサンプルがついています。C/C++が読めれば、その中で何をやっているのかが
わかるようになりますが、
そこまでになるには、それなりに大変です。
とりあえず最初のステップとして、C言語の入門書を買ってください。
あと下記サイトも参考になります。
http://www.kumei.ne.jp/c_lang/
お返事ありがとうございます。
そうなのです・・・来年以降業界に必要なシェーダープログラマがまったくいなくて困った状況です。
やはり地道にCを勉強していってその流れでDirectXなどにいけばよいのですね。
URLのほうも参考にさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 大学受験 国立受験 11月からの大逆転劇を起こすには 7 2022/11/14 19:24
- 大学受験 お急ぎの質問です。 現在高3受験生です。次の金曜日に明治大学総合数理学部(現象数理科)の学部別試験が 3 2023/02/13 23:38
- 大学受験 3浪しようと思うので、アドバイスお願いします。 自分としては結構メンタルきつくて後期でいいから、東京 3 2023/02/13 21:47
- 大学受験 ごめんなさい前垢入れ無くなっちゃいました、 宜しければまたアドバイスください、私は今高二になり進路に 1 2023/04/04 01:22
- その他(社会・学校・職場) 平均的日本人の頭は悪くはないはずですし、学校で習う内容が幼稚というわけでもないのに、世間には幼稚な大 7 2023/04/05 20:51
- 書類選考・エントリーシート 僕はコンピューターの専門に行こうと思ってます。志望理由こんな感じでいいですかね? ①進学先に選んだ理 2 2022/09/11 17:41
- 宇宙科学・天文学・天気 AIが答えた方程式 1 2023/02/20 00:12
- 専門学校 3つの映像系専門学校の教育レベルについて 1 2023/01/24 10:14
- 大学受験 高校二年生になって数ⅠAの復習をしたいと思っています。 いつも偏差値が50以下なので基礎ができていな 1 2022/07/03 12:08
- 大学受験 通信制高校高3です。英語と国語について。 今から11月の終わり又は1月、2月の終わりまでに進研模試偏 5 2022/07/27 11:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語について
-
プログラミングに必要な数学や...
-
新入社員に最低限知っておいて...
-
C++とJava、両方学ぶとしたらど...
-
就活に備えてゲームを作りたい!
-
ゲームプログラミング おすすめ...
-
エクセルに限界を感じる
-
PGに慣れず適応障害と診断され...
-
VisualC++ 6.0 と2005の違い
-
プログラマーになったきっかけ...
-
組み込み系+制御系プログラム...
-
シーケンサープログラマを効率...
-
工業高校生ですが、将来ゲーム...
-
スプレッドシートの作成
-
数学、プログラミング、物理、...
-
プログラムからアイコンファイ...
-
HTMLとC++で、どんなホームペー...
-
VxWorksは何系osになるのでしょ...
-
gtkでビープ音
-
vbaとc言語の関連性について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PixivとかDMM(FANZA)みたいなサ...
-
工業高校生ですが、将来ゲーム...
-
27歳からプログラミングを始め...
-
自作でプレステ対応ゲームは作...
-
勉強に集中できません。どうし...
-
初歩からプログラミングを学ぶ...
-
プログラミング、独習に関する...
-
プログラミング
-
就活に備えてゲームを作りたい!
-
VBAの勉強の仕方
-
オリジナルの占いサイトを作る...
-
Visual C++ .NET Standard Ver...
-
小学生が本当にプログラミング...
-
プログラミングをマスターする...
-
中学生 プログラマーになりた...
-
プログラマーになったきっかけ...
-
PERLを全て使いこなしたいと思...
-
プロゲートを終えて絶望してい...
-
エクセルに限界を感じる
-
プログラミングをやる上で必要...
おすすめ情報