約 1,920,707 件
https://w.atwiki.jp/dslua/pages/61.html
エスケープシークエンスの表示のサンプルです。 通常は、「このように使用します」と記述するのが普通ですが、ここでは「print文はエスケープシークエンスは表示するだけのようです」です。 -- エスケープシークエンスの表示のサンプル while not Keys.newPress.Start do Controls.read() startDrawing() screen.print(SCREEN_UP, 0, 0, "Press START to quit") screen.print(SCREEN_DOWN, 0, 0 * 8, "Hello __ Lua world!") screen.print(SCREEN_DOWN, 0, 2 * 8, [[Hello \n Lua world!]])-- \n screen.print(SCREEN_DOWN, 0, 3 * 8, "Hello \n Lua world!")-- \n screen.print(SCREEN_DOWN, 0, 5 * 8, [[Hello \t Lua world!]])-- \t screen.print(SCREEN_DOWN, 0, 6 * 8, "Hello \t Lua world!")-- \t screen.print(SCREEN_DOWN, 0, 8 * 8, [[Hello \b Lua world!]])-- \b screen.print(SCREEN_DOWN, 0, 9 * 8, "Hello \b Lua world!")-- \b screen.print(SCREEN_DOWN, 0, 11 * 8, [[Hello \ Lua world!]])-- \ screen.print(SCREEN_DOWN, 0, 12 * 8, "Hello \ Lua world!")-- \ screen.print(SCREEN_DOWN, 0, 14 * 8, [[Hello \" Lua world!]])-- \" screen.print(SCREEN_DOWN, 0, 15 * 8, "Hello \" Lua world!")-- \" screen.print(SCREEN_DOWN, 0, 17 * 8, [[Hello \a Lua world!]])-- \a screen.print(SCREEN_DOWN, 0, 18 * 8, "Hello \a Lua world!")-- \a stopDrawing() end (エスケープシークエンスのため途中から赤表示になっています) 実行した状態 表示を拡大した状態
https://w.atwiki.jp/ikisakisousaku/pages/3.html
更新履歴 取得中です。 ここを編集
https://w.atwiki.jp/element10plus/
■連絡■ 本wikiについて「外部サイト誘導等によるアフィリエイト広告を設置しているのではないか?」 等と疑問視する声が最近見られますが、本wikiの管轄する範囲に於いて管理権限者の意思による アフィリエイト広告の設置はありません。 (レンタルwikiのサーバー維持の為、必ず表示される広告と混同されませんようご注意下さい。) 本wikiは株式会社セガゲームスのオンラインゲーム ファンタシースターオンライン2にて提供されている ランダム型アイテム提供方式(所謂ガチャ)の確率表示問題についてまとめる非公式wikiです。 本wikiでは主に2015年07月29日~2015年08月05日までの期間限定で開催されたガチャ 『3周年記念!支援アイテムセレクト』で提供された景品『属性強化+10%』について PSO2運営が表示した景品の当選確率と実際に提供された結果の差異が許容範囲を遥かに超えた 違法なものではないのか?という疑問について取り扱います。 本件について疑惑対象の景品と入手難易度 (※入手難易度は低い程入手確率が高い) 入手難易度0.5『属性強化+10%』 入手難易度0.5『強化リスク軽減(完全)』 入手難易度0.5『マグ支援枠拡張デバイス』 その他入手難易度1.5~2 全26種類 PSO2のゲーム内アイテムの事情とか分からん!!!って人は 補足資料に軽く目を通してみてください。 概要:本wikiを立ち上げる原因となったガチャイベントとその問題点について。 集計/結果:有志によるガチャの結果報告まとめ。 運営対応:ユーザーの活動に対し何らかの反応があった場合のまとめ。 類似ケース:本件に類似した問題についてのまとめ。 関連動画:実際にガチャを引いてみた動画等まとめ。 リンク:参考HP,参考記事等まとめ。 2chテンプレ:2chスレ立て時の参考テンプレ。 補足資料:PSO2を知らない人向け資料及び関連資料まとめ。 以下のリンクは2chの該当スレ一覧(※スレには荒らしが常駐しているので注意) スクラッチ結果報告スレ:過去ログ化 part1 ogame3/1438150904/ 本wikiで保管してるログはここ→結果報告スレログ 発祥スレ:現行 part8 ogame3/1439776183/ 発祥スレ:過去ログ part1 ogame3/1438179476/ part2 ogame3/1438506595/ part3 ogame3/1438567710/ part4 ogame3/1438600717/ part5 ogame3/1438712836/ part6 ogame3/1438826079/ part7 ogame3/1439094393/ 名前 コメント すべてのコメントを見る wikiおつです -- (名無しさん) 2015-08-06 19 00 21 テスト1 -- (管理人) 2015-08-06 18 14 10 合計: - 今日: - 昨日: -
https://w.atwiki.jp/1h4d/pages/456.html
過去に開催された1h4dのお題の中からランダムに1つを選んで表示してくれるツール。 過去お題に挑戦したり、創作のアイデアに役立てよう! こちらのリンクからどうぞ 説明 青い「お題を出す」ボタンを押すと、おじさんがお題を選んでくれます。 ド深夜だろうが早朝だろうが関係なくやってくれます。 連打するとおじさんに負担がかかるのでお題が出るまでは押さないほうがいいと思います。 最新回の1つ前までのお題から選んでくれます。 毎週おじさんが勝手に追加してくれます。 作った人:ヨーグルトG
https://w.atwiki.jp/edf6/pages/359.html
※「表示色更新武器」=直前のミッションまで黄色表示だった武器 調査は余力があれば程度 難易度 HARD 編集 No. ステージ 白最大LV 黄色最低LV オンLV制限 表示色更新武器※ 編集 01 ベース251††††† 3 4 5 編集 02 不法侵入者 3 4 5 編集 03 標準任務 4 4 5 編集 04 最優先駆除指令 4 4 5 編集 05 変わらぬ日々 5 5 6 編集 06 駆除チーム支援任務 5 5 6 編集 07 ハイヴ処理任務 5 6 6 編集 08 牙の怪物 5 6 7 編集 09 訪問者 6 6 7 編集 10 翌日 6 6 7 編集 11 機械人間 7 7 8 編集 12 機械の巨人 7 7 8 編集 13 くだんの日††††† 7 7 8 編集 14 転機 7 8 9 編集 15 駆除 8 8 9 編集 16 β型拡散 8 9 9 編集 17 ドローン襲来 8 9 10 編集 18 巨船破壊作戦 編集 19 K6作戦 編集 20 埠頭の乱戦 編集 21 銀白の船団 編集 22 サードマシン 編集 23 降下艇飛来 編集 24 光の塔 編集 25 狙撃部隊 編集 26 漂流者 編集 27 赤色機 編集 28 死の疾走 編集 29 擲弾兵 編集 30 第二次 巨船破壊作戦 編集 31 マザーの領域 編集 32 温泉郷の秘密 編集 33 翼の軍団 編集 34 海辺の巨塔 編集 35 崩れゆく街 編集 36 最後の抗戦 編集 37 烈火の大地 編集 38 ベース251†††††† 編集 39 標準任務’ 編集 40 変わらぬ日々’ 編集 41 訪問者’ 編集 42 翌日’ 編集 43 狂える世界 編集 44 神々の宴 編集 45 一番坑道 編集 46 くだんの日†††††† 編集 47 転機’ 編集 48 駆除’ 編集 49 アラネアの山 編集 50 危機迫る山頂 編集 51 擲弾破壊部隊 編集 52 邪神降臨 編集 53 砲兵進撃 編集 54 死の疾走’ 編集 55 矛と盾 編集 56 停船 編集 57 一つ目の巨人 編集 58 大空洞 調査作戦 上層 編集 59 大空洞 調査作戦 中層 編集 60 大空洞 調査作戦 下層 編集 61 蒼き怪鳥 編集 63 激突する平原 編集 64 殿軍 編集 65 退路の敵 編集 66 降下戦機 編集 67 邪神街 編集 68 岩壁の巨影 編集 69 機械兵の砦 編集 70 異星の騎士 編集 71 レッドウォール作戦 編集 72 要塞追跡 編集 73 崩れゆく街’ 編集 74 要塞接近 編集 75 ベース251††††††† 編集 76 標準任務’’ 編集 77 訪問者’’ 編集 78 翌日’’ 編集 79 狂える世界’ 編集 80 水神の宴 編集 81 二番坑道 編集 82 くだんの日††††††† 編集 83 破られた平穏 編集 84 未確認飛行物体 編集 85 怪物襲来 編集 86 広がる災禍 編集 87 死の疾走’’ 編集 88 制圧者 編集 89 沿岸掃討計画 編集 90 急転直下 編集 91 魚群上陸 編集 92 船団監視計画 編集 93 眠れる巨鳥 編集 94 機械兵団 進撃 編集 95 待ち伏せ 編集 96 怪鳥撃滅計画 編集 97 激突する平原’ 編集 98 誘われる魚影 編集 99 燃える岸壁 編集 100 船団攻撃計画 編集 101 灼熱地帯 編集 102 装甲山脈 編集 103 怪物駆除計画 編集 104 潜水母艦 防衛作戦 編集 105 第二次怪鳥撃滅計画 編集 106 陽動作戦 編集 107 ベース251†††††††† 編集 108 戦術航空作戦 編集 109 エイリアン・アタック 編集 110 訪問者’’’ 編集 111 翌日’’’ 編集 112 狂える世界’’ 編集 113 風神の宴 編集 114 三番坑道 編集 115 くだんの日†††††††† 編集 + 武器レベル黄色表示 HARD 難易度 HARD No. ステージ 白最大LV 黄色最低LV オンLV制限 表示色更新武器※ 01 ベース251††††† 3 4 5 02 不法侵入者 3 4 5 03 標準任務 4 4 5 04 最優先駆除指令 4 4 5 05 変わらぬ日々 5 5 6 06 駆除チーム支援任務 5 5 6 07 ハイヴ処理任務 5 6 6 08 牙の怪物 5 6 7 09 訪問者 6 6 7 10 翌日 6 6 7 11 機械人間 7 7 8 12 機械の巨人 7 7 8 13 くだんの日††††† 7 7 8 14 転機 7 8 9 15 駆除 8 8 9 16 β型拡散 8 9 9 17 ドローン襲来 8 9 10 18 巨船破壊作戦 19 K6作戦 20 埠頭の乱戦 21 銀白の船団 22 サードマシン 23 降下艇飛来 24 光の塔 25 狙撃部隊 26 漂流者 27 赤色機 28 死の疾走 29 擲弾兵 30 第二次 巨船破壊作戦 31 マザーの領域 32 温泉郷の秘密 33 翼の軍団 34 海辺の巨塔 35 崩れゆく街 36 最後の抗戦 37 烈火の大地 38 ベース251†††††† 39 標準任務’ 40 変わらぬ日々’ 41 訪問者’ 42 翌日’ 43 狂える世界 44 神々の宴 45 一番坑道 46 くだんの日†††††† 47 転機’ 48 駆除’ 49 アラネアの山 50 危機迫る山頂 51 擲弾破壊部隊 52 邪神降臨 53 砲兵進撃 54 死の疾走’ 55 矛と盾 56 停船 57 一つ目の巨人 58 大空洞 調査作戦 上層 59 大空洞 調査作戦 中層 60 大空洞 調査作戦 下層 61 蒼き怪鳥 63 激突する平原 64 殿軍 65 退路の敵 66 降下戦機 67 邪神街 68 岩壁の巨影 69 機械兵の砦 70 異星の騎士 71 レッドウォール作戦 72 要塞追跡 73 崩れゆく街’ 74 要塞接近 75 ベース251††††††† 76 標準任務’’ 77 訪問者’’ 78 翌日’’ 79 狂える世界’ 80 水神の宴 81 二番坑道 82 くだんの日††††††† 83 破られた平穏 84 未確認飛行物体 85 怪物襲来 86 広がる災禍 87 死の疾走’’ 88 制圧者 89 沿岸掃討計画 90 急転直下 91 魚群上陸 92 船団監視計画 93 眠れる巨鳥 94 機械兵団 進撃 95 待ち伏せ 96 怪鳥撃滅計画 97 激突する平原’ 98 誘われる魚影 99 燃える岸壁 100 船団攻撃計画 101 灼熱地帯 102 装甲山脈 103 怪物駆除計画 104 潜水母艦 防衛作戦 105 第二次怪鳥撃滅計画 106 陽動作戦 107 ベース251†††††††† 108 戦術航空作戦 109 エイリアン・アタック 110 訪問者’’’ 111 翌日’’’ 112 狂える世界’’ 113 風神の宴 114 三番坑道 115 くだんの日†††††††† + ネタバレ防止 難易度 HARD No. ステージ 白最大LV 黄色最低LV オンLV制限 表示色更新武器 116 本日の予定 117 228基地の危機 118 殲滅計画 119 大空洞 調査任務 120 死の疾走’’’ 121 転送阻止作戦 122 敵機襲来 123 大空洞 破壊任務 124 孵化 125 休眠船団 126 市街流入 127 集結地点 128 岩山の砦 129 交錯する砲火 130 特機戦隊 131 無謀の賭け 132 11番目の船 133 ベース251††††††††† 134 粘糸の城郭 135 エイリアン・アタック’ 136 巨神激突 137 訪問者’’’’ ??? 変わらぬ日々’’ ??? 機兵大侵攻 ??? 極大勢力 ??? 危機迫る山頂’ ??? 灯火なき街 ??? 追跡者 144 翌日’’’’ 145 リング破壊作戦 前篇 146 リング破壊作戦 後篇 147 刻の天秤 ※ミッション№???の掲載順についてはオンラインのアーマー制限から推測されるミッション番号順
https://w.atwiki.jp/kindaidensan/pages/37.html
画面の表示 今回は準備~画面の表示までです。 ここからよく分からない用語などが出てきます。プログラムを組む上では重要ですが、ゲームを作る上ではあまり重要ではありません。よく分からない項目は読み飛ばして最悪ソースコード写すだけでも大丈夫です。 準備 下記を環境構築を参考に行ってください。 「firstShooting」という名前のプロジェクトを作る。 ライブラリをプロジェクトで使えるようにする(ビルドパスへ追加)。 「FIrstShooting」という名前のメインクラスを作成する。 環境構築のウインドウを表示するプログラムの「TestGame」を「FirstShooting」に書き換えて書き写してウインドウが表示されるか確かめてください。(エラーが出るなら環境構築に失敗しているので、間違ってないか確認してください) これで最低限の準備ができました。 クラス 今までupdateとdrawもメインクラスに書いていましたが、本来はMainメソッドのあるクラスと分割したほうがいいです。Javaには複数のテキストファイル(クラス)に分けてプログラムを書ける機能があります。クラスはそれぞれがコードの担当箇所を持ち、その担当箇所のコードを記述します。 それを使ってソースコードを分割して、管理しやすくします。今は短いコードですが、実装していくと長くなって1つのテキストファイルに書いていくとどんどん見づらくなります。最初は複数のテキストファイルを切り替えて見るのがしんどいと思いますが、慣れていきましょう。 クラスの話は長くなるので割愛します。(必要なところで解説) GameSceneクラス ※ここ以降プログラミングの考え方の話とかが出てくるので、よく分からないと感じた場合は無理に理解しようとしなくて大丈夫です。とりあえずソースコードを写して、後の記事とかの内容やコードを見ながらゆっくり理解していってください。詳しく理解しなくても、使えることができればゲームを作る上であんまり問題無いです。 ゲーム全体を管理するクラスを作ります。下記の手順でクラスを作ってください。環境構築のときとほぼ同じですが、自動的にコードを生成する部分を消しています。 プロジェクトエクスプローラーのプロジェクト内の「src」ディレクトリを右クリック 出てきたメニューの「新規」にカーソルをあわせる サブメニュー内の「クラス」を選択 「名前」の欄に「GameScene」と入力。 「完了」を押す。 以上の手順はクラスを作るときに毎回行います。「名前」の欄に入れる文字を変えるだけです。この手順は覚えておいてください。 できたJavaファイルに以下のコードを入力してください。やっていることはウインドウの表示のupdateメソッドとdrawメソッドを抜き出しただけです。 import java.awt.Color; import densan.s.game.drawing.Drawer;import densan.s.game.manager.Updatable; public class GameScene implements Updatable{ public GameScene() { } @Overridepublic void update() { } @Overridepublic void draw(Drawer d) {//ちゃんとクラスを使えてるか確認するための文字描画d.setColor(Color.BLUE);d.setFontSize(40);d.drawString("TEST", 100, 100); } } GameSceneの解説 updateとdrawを抜き出してdrawで文字を描画するようにしました。 以下難しい話 7行目の「imprements Updatable」ですが、これはインターフェースというものです。かんたんに言うと、「Updatableで定義されているメソッドをこのクラスは使えますよ」ということを示すためのものです。imprementsすることを実装すると言い、「imprements A」とされたクラスを「Aを実装したクラス」といいます。Updatableで定義されているメソッドはupdateとdrawです。 これを実装したクラスのみを、GameManagerのsetUpdatableメソッドの引数することができます。 FirstShootingクラス こちらのクラスはメインメソッドのみにします。かなり短いので、以前のコードから消去するよりも全部消してから1から書いたほうが早いかも。 import densan.s.game.manager.GameManager; public class FirstShooting { public static void main(String[] args) {//ゲームを管理するクラスを取得GameManager gm = GameManager.getInstance();//このメソッドでウインドウを表示する//引数はそれぞれ(幅, 高さ, タイトルバーに表示する文字)gm.createFrame(800, 600, "シューティングゲーム");//更新と描画を担うオブジェクトを設定//今はあまり関係ないgm.setUpdatable(new GameScene());} } ここまで実装できたなら、FirstShootingクラスを実行してみましょう。以下のような画面がでれば成功です。ウインドウが表示されているのに文字が描画されていない場合、GameSceneのdrawメソッドが怪しいです。 FirstShootingの解説 内容はウインドウの表示と更新・描画処理をGameSceneクラスに委譲しているだけで自機このクラス自体はほとんど何もしていません。 ※委譲:他のクラスに処理を任せること。オブジェクト指向の用語。 14行目のGameManager.setUpdatableメソッドに描画・更新処理を任せるクラスを生成(new)して渡すことで勝手にそのクラスに書いた内容が実行されます。 以下難しい話 正確にはGameManager.setUpdatableメソッドにUpdatableを実装したクラスを入れることで、そのクラスに更新・描画処理を委譲できます。 まとめ これでゲームの画面が表示されました!ライブラリを使っているのでかなり短いコードですみます。ゲームづくりの第一歩です。この画面に自機や敵を追加していってゲームを作っていきます。 次回は操作できる自機を作ります。 次:自機の作成 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/dynamics-ax/pages/46.html
Gridを表示更新するには、 DataSource の reread() と research() を実行する。 ※複数の DataSource から表示している場合は、 すべての DataSource について実行する必要がある? MyTable_ds.reread(); MyTable_ds.research(); 参考: http //dynamicsuser.net/forums/p/29822/156880.aspx
https://w.atwiki.jp/opengl/pages/196.html
ツリービューを表示します。 階層構造を表現するのに便利です。 resource.h #define IDR_MENU1 100 #define ID_EXIT 101 #define ID_TEST 102 #define ID_A 103 #define ID_B 104 #define ID_Menu 105 #define ID_Whats 106 #define ID_Help 107 #define ID_STATUS 108 #define ID_TREEVIEW 1000 menu.rc #include resource.h IDR_MENU1 MENU BEGIN POPUP File BEGIN MENUITEM Exit , ID_EXIT END POPUP Test BEGIN MENUITEM てすつ , ID_TEST END POPUP Option BEGIN MENUITEM A , ID_A MENUITEM B , ID_B MENUITEM めにゅ~ , ID_Menu MENUITEM whats? , ID_Whats END MENUITEM ヘルプ , ID_Help END main.cpp #pragma comment(linker, /SUBSYSTEM WINDOWS /ENTRY mainCRTStartup ) #pragma comment(lib, comctl32.lib ) #include GL/freeglut/freeglut.h #include resource.h #include commctrl.h //CreateStatusWindow()のために必要 //FreeGlutのウインドウプロシージャを置き換える為の変数 WNDPROC WndProc=NULL; //元のウィンドウプロシージャ HWND hWnd2=NULL; //ウィンドウハンドル HMENU hMenu=NULL; //メニュー HWND hStatusbar; // ステータスバーのハンドル HWND hProgbar; //プログレスバーのハンドル HWND hTree;//ツリービューのハンドル wchar_t str[256]; HTREEITEM trp[4];//ツリービューの親アイテム設定用 TV_INSERTSTRUCT tv;//ツリービューのアイテム設定用 HTREEITEM hItem;//選択項目取得時にハンドル保存用 TVITEM tvitem;//選択内容取得用 #define TREE_WIDTH 200 #define TREE_HEIGHT 180 #define WIDTH 320 #define HEIGHT 240 //回転用 float anglex = 0.0f; //白 GLfloat white[] = { 1.0, 1.0, 1.0, 1.0 }; //置き換えた後のプロシージャ LRESULT CALLBACK WndProc2(HWND hWnd , UINT msg , WPARAM wParam , LPARAM lParam){ switch( msg ){ case WM_SIZE MoveWindow(hTree, 0, 0, TREE_WIDTH, TREE_HEIGHT, TRUE); SendMessage( hStatusbar, WM_SIZE, wParam, lParam ); return 0; case WM_COMMAND switch (LOWORD(wParam)){ case ID_EXIT PostQuitMessage(0); } return 0; case WM_DESTROY exit(0); break; default if(WndProc){ return CallWindowProc(WndProc,hWnd , msg , wParam , lParam); }else{ return DefWindowProc(hWnd,msg,wParam,lParam); } } } //ウィンドウの検索 BOOL CALLBACK enumWindowsProc(HWND hWnd,LPARAM lParam){ HANDLE hModule=(HANDLE)GetWindowLong(hWnd,GWL_HINSTANCE); if(GetModuleHandle(NULL)==hModule){ wchar_t ClassName[256]; GetClassNameW(hWnd,ClassName,sizeof(ClassName)/sizeof(ClassName[0])); if(wcsncmp(ClassName,L FREEGLUT ,wcslen(ClassName))==0){ hWnd2=hWnd; return FALSE; } } return TRUE; } void display(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glViewport(0, 0, WIDTH, HEIGHT); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, (double)WIDTH / (double)HEIGHT, 1.0, 1000.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(150.0,150.0,-150.0, 0.0,0.0,0.0, 0.0,1.0,0.0); glMaterialfv(GL_FRONT, GL_DIFFUSE, white); //回転 glRotatef(anglex,1.0f,0.0f,0.0f);//X軸を回転 glutSolidSphere(40.0,16,16); glutSwapBuffers(); } void idle(void){ anglex+=2.0f; Sleep(1); glutPostRedisplay(); } void Init(){ glClearColor(0.3f, 0.3f, 0.3f, 1.0f); glEnable(GL_DEPTH_TEST); //ワイヤーフレーム glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); } bool main(int argc, char *argv[]){ glutInitWindowPosition(100, 100); glutInitWindowSize(WIDTH, HEIGHT); glutInit( argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow( ツリービュー ); //FreeGlutのウインドウハンドルとウインドウプロシージャを置き換える EnumWindows(enumWindowsProc,0); if(hWnd2){ WndProc=(WNDPROC)GetWindowLong(hWnd2,GWL_WNDPROC); SetWindowLong(hWnd2,GWL_WNDPROC,(LONG)WndProc2); }else{ return false; } //メニューを作成 hMenu=LoadMenu(GetModuleHandle(NULL),MAKEINTRESOURCE(IDR_MENU1)); if(hMenu){ SetMenu(hWnd2,hMenu); }else{ return false; } // コモンコントロール関係の初期化 InitCommonControls(); // ステータスバーを作成 hStatusbar = CreateStatusWindowW(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP, L ステータスバー ,hWnd2,ID_STATUS); //ツリービュー hTree = CreateWindowEx(0, WC_TREEVIEW, L , WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT, 0, 0, TREE_WIDTH, TREE_HEIGHT, hWnd2, (HMENU)ID_TREEVIEW, (HINSTANCE)GetWindowLong(hWnd2, GWL_HINSTANCE), NULL); memset((char *) tv, \0 , sizeof(tv)); //親アイテムを作成 tv.hInsertAfter = TVI_LAST; tv.item.mask = TVIF_TEXT; tv.hParent = TVI_ROOT; tv.item.pszText = L 3D ; trp[0] = TreeView_InsertItem(hTree, tv); tv.item.pszText = L 2D ; trp[1] = TreeView_InsertItem(hTree, tv); //親アイテムに挿入 tv.hParent = trp[0]; tv.item.pszText = L OpenGL ; trp[2] = TreeView_InsertItem(hTree, tv); tv.item.pszText = L DirectX ; trp[3] = TreeView_InsertItem(hTree, tv); //子アイテムに挿入 tv.hParent = trp[2]; tv.item.pszText = L 1 ; TreeView_InsertItem(hTree, tv); //子アイテムに挿入 tv.hParent = trp[2]; tv.item.pszText = L 2 ; TreeView_InsertItem(hTree, tv); //子アイテムに挿入 tv.hParent = trp[3]; tv.item.pszText = L 3 ; TreeView_InsertItem(hTree, tv); //子アイテムに挿入 tv.hParent = trp[3]; tv.item.pszText = L 4 ; TreeView_InsertItem(hTree, tv); glutDisplayFunc(display); glutIdleFunc(idle); Init(); glutMainLoop(); return true; }
https://w.atwiki.jp/linearalgebra/pages/118.html
このページの内容は準備段階のものです。数学書房「考える線形代数」をお買い求めください。 2-2. 回転・線対称の行列表示 <2-1. 線形写像|2-3. 正射影> 02-4.jpg 02-5.jpg 02-6.jpg 02-7.jpg <2-1. 線形写像|2-3. 正射影>
https://w.atwiki.jp/xismo_userpg/pages/120.html
下絵表示 下絵表示下絵のシェーダを準備する ポリゴンに下絵を貼り付け向きを整える正面用 横用 下絵用のメッシュノードをマージする 下絵の表示確認 サイズの調整 補足数値入力で回転する方法 立方体を使う 下絵を透過する Xismoには下絵を表示する機能はありません図面ノードがありますが(注1)、 ポリ板に下絵のテクスチャを貼り付けたものでも代用できます。 注1:図面ノードが下絵機能に相当する(xismo◇210追加機能)。 使用している下絵の画像は、ニコ生で配布されたものです。 下絵は正面と横向きの2枚、512×512の縦横同じサイズのものを使用しています。 (縦横のサイズが違う下絵を使用する場合、ポリ板の縦横比率を合わせる必要があります。) 説明が長くなったので動画作りました YouTubeの大きな画像で見たほうが解り易いと思います。5分ほどの長さがあります。 下絵のシェーダを準備する 1.下絵を読み込む テクスチャウィンドウに切替→ファイル→開く、下絵を選択(複数選択可)しOK 実行前 実行後 テクスチャウィンドウにテクスチャが追加される。(正面と横) 2.シェーダの作成 (1)正面用のシェーダを設定 ①正面用のシェーダを作成:メニュー→作成→シェーダノード ②シェーダノード名を正面用に変更する:シェーダのプロパティの名前欄に名称を入力する シェーダ作成 作成後 ノード名変更 ②正面用のシェーダに正面用の下絵テクスチャを割り当てる シェーダのプロパティのテクスチャ→正面の下絵を選択 実行前 実行後 (2)横用のシェーダを設定 正面用手順と同様に横用のシェーダを作成する ①横用のシェーダを作成し、シェーダ名称を横用に変更する ②横用のシェーダに横用の下絵テクスチャを割り当てる。 シェーダウィンドウで横用のシェーダを選択すると、横用のシェーダのプロパティに切り替わる ポリゴンに下絵を貼り付け向きを整える 正面用 1.正面用のポリ板を作成 (1)平面のポリゴンを作成する 平面のプリミアティブを作成し、ポリゴン化する。 平面のプリミアティブを作成する:メニュー→作成→プリミタティブ→平面 ポリゴン化する:メニュー→ノード処理→ポリゴン化(ノードウィンドウのフリーズアイコンでもポリゴン化可能) 平面プリミアティブ作成 ポリゴン化 平面ポリゴン作成 下絵を表示したいXismo上のサイズがわかる場合、プリミアティブ作成時にプロパティで幅・奥行のサイズを変更する。 (2)ポリゴンに正面のシェーダを割り当てる ①正面用シェーダをカレントシェーダにする:正面用シェーダをクリック ②ポリゴンを選択状態にする:ポリゴンをクリック ③材質割当:メニュー→選択部処理→材質割り当て(Shift+M) 材質割当 正面用の下絵を貼り付ける 2.ポリゴンの向きと位置を調整する (1)ポリゴンを正面に向ける ユニバーサルツールに切替、ハンドル表示をONにし作業する。 ①ポリゴンをクリックし選択状態にする ②下側の辺をShift押しクリックし、操作中心(ハンドル)を下側の辺に変更する ③X軸を-90度回転する。(Shift押ししながら操作すると15度づつ回転する。←方向にドラッグするとマイナス回転する) 回転量は画面左下のステータスバーに表示される。 ①ポリゴンの選択/②下側の辺にハンドルを移動 ③X軸90回転 正面を向く Shift押しクリックで選択を追加する、また追加された要素が操作の中心に変更される。 ハンドルの回転(○マーク)をShift押しで操作すると15度づつ回転する。←方向に動かすとマイナス、→方向に動かすとプラスに変化する。 下側の辺を操作中心に変更しない場合、上に上げる操作が必要になる。 (2)奥に移動する Z軸の移動をプラス方向に行い、モデルを作成するスペースを空ける。 奥に移動 結果 横用 1.横用のポリ板を作成 正面用と同様にポリ板を作成 (1)平面のポリゴンを作成する 平面のプリミアティブを作成し、ポリゴン化する。 平面のプリミアティブを作成する:メニュー→作成→プリミタティブ→平面 ポリゴン化する:メニュー→ノード処理→ポリゴン化(ノードウィンドウのフリーズアイコンでもポリゴン化可能) 新しく追加した平面のポリゴンを横用のポリゴンにする。 (2)横用の材質を割り当てる ①横用シェーダをカレントシェーダにする:横用シェーダをクリック ②ポリゴンを選択状態にする:横用のポリゴンをクリック ③材質割当:メニュー→選択部処理→材質割り当て(Shift+M) 材質割当 横用の下絵を貼り付ける 2.ポリゴンの向きと位置を調整する ユニバーサルツールを、ハンドル表示ONで作業する。 (1)ポリゴンを横に向ける ①ポリゴンをクリックし、選択状態にする ②Y軸を-90度回転(Shift押しで15度づつ回転) (Shift押ししながら操作すると15度づつ回転する) 回転量は画面左下のステータスバーに表示される。 横を向ける 結果 ハンドルの回転(○マーク)をShift押しで操作すると15度づつ回転する。←方向に動かすとマイナス、→方向に動かすとプラスに変化する。 (2)ポリゴンを立てる ①下側の辺をShift押しクリックし、操作中心(ハンドル)を下側の辺に変更する。 ②Z軸を+90度回転(Shift押しで15度づつ回転) ①下側の辺を操作中心としてZ軸+90度回転 下側の辺を操作中心に変更しない場合、上に上げる操作が必要になる。 (3)奥に移動する X軸の移動をマイナス方向に行い、モデルを作成するスペースを空ける。 正面に向ける 結果 下絵用のメッシュノードをマージする 1.ノードをマージする (1)正面用と横用のメッシュノードを一つにまとめる ノードウィンドウで横用メッシュノードをドラッグし、Ctrl押ししながら正面用メッシュノードに重ねドロップする。メッシュノードがマージされる。 マージ マージ後 2.メッシュノードのノード名を下絵用に変更する。 3.ロックをかける 下絵が変更されないようにロックをかける ①何も無い部分をクリックし、選択の解除をおこなう (選択された状態の場合、コピーなどの対象となってしまうため、選択を解除しておく) ②下絵が変更されないように、メッシュノードのプロパティのロックをチェックし、ロックをかける。 実行前 実行後 下絵の表示確認 正面 右面 正面の中央がX軸のセンターにくる状態であること サイズの調整 ローカル座標ツールに切替、メッシュ変形ONで操作する。 縦横の比率を変えないため、ハンドルの中央(◇マーク)をShift押し操作すると全方向への拡縮の操作を行う。 拡縮 結果 一度の操作で下絵の中央をたもったまま拡縮が行える。ロックがされていない状態で行うこと ユニバーサルツールまたは、拡縮ツールで行う場合、拡宿後、下絵の中央を合わせる操作を行うこと 下絵のサイズが解る場合、プリミアティブ作成時にプロパティのサイズを調整する。 補足 数値入力で回転する方法 ユニバーサルツールでは数値入力で操作はできないが「移動」「拡縮」「回転」の各ツールは数値入力(座標ウィンドウ)が使える 回転ツールに切替、座標ウィンドウを表示(メニュー→ウィンドウ→座標ウィンドウにチェック) 正面用 下側の辺をShift押しクリックし、操作中心(ハンドル)を下側の辺に変更する 座標ウィンドウの回転X-90を入力し、OKで反映する。 正面に向ける 結果 横用 ①座標ウィンドウの回転Y-90を入力し、OKで反映する。 ②下側の辺をShift押しクリックし、操作中心(ハンドル)を下側の辺に変更する 座標ウィンドウの回転Z+90を入力し、OKで反映する。 横に向ける 立てる 結果 下側の辺を操作中心に変更しない場合、上に上げる操作が必要になる。 座標ウィンドウのOKを押す際に、操作中心の位置を確認すること 立方体を使う 立方体プリミアティブをポリゴン化し、下絵のシェーダを図の位置にそれぞれ割り当てる。 不要なポリゴンの削除と、面の頂点が結合されているため分離する作業が必要 ポリゴンの削除:不要なポリゴンを選択し、メニュー→選択部処理→削除(BackSpace) 頂点を分離:正面と横の頂点を選択し、メニュー→選択部処理→頂点を分離する(Shift+D) 下絵を透過する モデルのポリゴンが下絵の前にある場合、下絵が隠れてしまう。モデルに半透明のシェーダを適用することで、モデルと重ねて下絵を表示させることができる。 シェーダの透過度は拡散色のAにより決まる。0が透明、255が不透明、1~254が半透明。0(透明)の場合、頂点と辺のみ表示される。 シェーダの色(RBG/HSV)を変えた場合、A(透過度)もリセットされ255(不透明)に変わる。 下絵はモデル用のメッシュノードより前に並べること。 編集履歴 +... 2019.02.25 新規作成 2019.04.28 下絵の透過について追記 2019.06.17 図面ノードの機能追加にともない一部表現の修正 私dbotが確認したものになります。 用語の間違い、実際の機能と相違することがあります。予めご了承下さい。 記事の間違い、質問は下記メールアドレスまでお願いします。 すぱむ怖いので画像です。 内容の如何にかかわらず、メールを公開させて頂くことがございますので、ご了承下さい。 また必ずしも満足のできる回答が出来るとは限らないことをご了承下さい。