約 4,114,658 件
https://w.atwiki.jp/kplus/pages/75.html
Adobe CreativeCloud menu:スクリプト / スクリプト / その他 概要 Adobe Systems社が開発、販売するデザイン開発アプリケーション。通しバージョン数は「14」となる。 Twitter情報 @AdobeCS_jp からのツイート 製品概要 製品名 Adobe Creative Cloud リリース日 2013/6/18 通常 優待・教育用 対応ソフト ※価格は月額 単月契約 年契約 単月契約 年契約 サブスクリプション版 スイート 8,000 5,000 - 3,000 全ソフト 単体(1) 3,200 2,200 - 1,000 Ps AI Id - Dw FL - Pr Ae Au Sg - 単体(2) 3,200 2,200 - - - - - - - - - - - - - Acrobat 単体(3) 2,700 1,600 - 1,000 - - - Mu - - - - - - - - 単体(4) 1,000 - - - - - - - - - In - - - - - スイート(グループ版) 7,000 - 5,300 - 全ソフト ソフト一覧※5/13現在、スイート製品内容が公開されてない。 CS6 製品名 Adobe Creative Suit 6 リリース日 2012/5/11 パッケージ種 DesignStandard 166,950 6ソフト デザイン製作用 Design&WebPremium 249,900 9ソフト デザインとWeb開発用 ProductionPremium 249,900 11ソフト 動画製作用 MasterCollection 334,950 16ソフト 全ソフト網羅 CreativeCloud 年60,000 20ソフト 全ソフト網羅+Cloud専用ソフト 月5,000 支払いは月額制。だが契約は年契約 単月8,000 対応OS WindowsXP SP3 WindowsVISTAは非対応。 MacOSX 10.6.8 x64版はWindows7以上。 ライセンス Proprietary サポート期限 未確認 (参考)http //kb2.adobe.com/jp/cps/744/7443.html (参考)http //kb2.adobe.com/jp/cps/830/cpsid_83058.html#main_b 歴史 リリース日 CS version Ps Ae Pr Id Fl Ai Fw Mu Dw Au Sg Pl. Lr Fb Eg Ac GL Br Sp Dy Ec Ct Sc Co In Rf 2002/5 Macromedia Studio MX ✔ ✔ ✔ 2003/9 Macromedia Studio MX 2004 ✔ ✔ ✔ 2003/9 CS1 ✔ 2004/?? CS1.3 ✔ 2005/4 CS2 ✔ 2005/9 Macromedia Studio 8 ✔ ✔ ✔ 2007/3 CS2.3 ✔ 2007/3 CS3 ✔ 2008/6 CS3.3 ✔ 2008/9 CS4 ✔ 2010/4 CS5 ✔ 2011/6 CS5.5 ✔ 2012/5 CS6 ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ 2013/6 CC1 ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ※CC版(CreativeCloud/初代CCをCC1と略記)の✔印は仮につけています。 =問題(CS6版CreativeCloud)= 1.Museが使えない →現ステータス: 問題はない。 2.Edge Animateをインストールできない →Edge Previewを削除すればインストール可能。 3.Acrobat11proを実行できない →現ステータス: 問題はない。 Adobe窓口に尋ねると「2012/10/26までは本運営ではない」と 言われ待つように言われるが、特にプレビュー版とも試用版 とも書かれておらず、たぶんごく普通に利用できる。 略記 正式名称(文頭の社名は略します) 最新版 リリース日 種別 Ps Photoshop レタッチ Ae AfterEffect 動画効果演出 Pr Premiere 動画編集 Id Indesign 出版物編集 Fl FLASH FLASH Ai illustrator ドロー Fw Fireworks ドロー&レタッチ Mu Muse 簡易WEBコーディング Dw Dreamweaver WEBコーディング Au Audition オーディオマルチトラック編集 Sg Speedgrade 色調補正、カラーグレーディングソフト Pl Prelude. プライベートおよび企業向け映像制作 Lr Lightroom RAW写真編集 Fb FlashBuilder 簡易FLASH製作 Eg Edge - Ac Acrobat Acrobat製作 Gl GoLive 開発終了 WEB製作 Br Bridge ファイル管理 Sp StockPhotos 終了 画像提供サービス Dy Dynamic Link Ae、En間でデータ相互表示させるツール Ec Encore DVD/BDオーサリング Ct Contribute WEB製作相補 Sc Scout FLASHプロファイリングツール Co EdgeCode CSS編集 In EdgeInspect WEB製作物プレビュー・検証 Rf EdgeReflow WEBデザイン 備考 CS5よりサブスクリプション製品があったが、CS6ではこれを改訂しCreative Cloudとして販売を開始。 サブスクリプションとは年契約または単月契約制の月極利用料金制の販売方式である。 CreativeCloudでは、ファイル共有スペースや専用ツールを付与することで価値をつけるかわりに これまで課題であったワレズ(不正製品コピー品)対策として打ち出したと思われる。 2013年5月、adobeは新規製品に関してはパッケージ版の販売を行わないことの他、 以下についても発表された。 日本国内の発売は2013年6月18日 スイート製品名をCreativeCloudの頭文字を取り「CC」として大型バージョンアップ InDesign、FLASHがCC版よりネイティブ64bitOSに対応 FireworksがCC版より廃止 選択肢 投票 この記事は参考になった (0) 参考にならない (0)
https://w.atwiki.jp/gamemusicbest100/pages/10497.html
DRAMAtical Murder (ドラマティカル マーダー) DRAMAtical Murder re connect DRAMAtical Murder re code 機種:PC,PSV 作曲者:GOATBED(石井秀仁,石井雄次), 木村世治, 榊原秀樹, 磯江俊道 発売元:Nitro+CHiRAL 発売年:2012(PC),2014(PSV) 概要 『DRAMAtical Murder』(ドラマティカル マーダー)は、2012年3月23日にNitro+CHiRALより発売されたボーイズラブ系アダルトゲーム。 ファンディスク『DRAMAtical Murder re connect』が2013年4月26日発売。 PlayStation Vita用ソフト『DRAMAtical Murder re code』が2014年10月30日に発売。 収録曲(サウンドトラック順) 曲名 作曲・編曲者 補足 順位 Disc 1 AI CATCH GOATBED Tears 磯江俊道 歌:いとうかなこ feel your noise 木村世治 Sandy Weeds 榊原秀樹 歌:VERTUEUX Immer Sie 磯江俊道 歌:いとうかなこ MASCULINE DEVIL GOATBED de SLASH PARA MIDIA Only finally there is the free end Disc 2 DMMd Background zap music #1 GOATBED DMMd Background zap music #2 DMMd Background zap music #3 DMMd Background zap music #4 DMMd Background zap music #5 DMMd Background zap music #6 DMMd Background zap music #7 DMMd Background zap music #8 DMMd Background zap music #9 DMMd Background zap music #10 DMMd Background zap music #11 DMMd Background zap music #12 DMMd Background zap music #13 DMMd Background zap music #14 DMMd Background zap music #15 DMMd Background zap music #16 DMMd Background zap music #17 DMMd Background zap music #18 DMMd Background zap music #19 DMMd Background zap music #20 DMMd Background zap music #21 DMMd Background zap music #22 DMMd Background zap music #23 DMMd Background zap music #24 サウンドトラック DRAMAtical Murder soundtrack -shape.memory.music- DRAMAtical Murder Arrangement Music -retro.game.music- DRAMAtical Murder re connect soundtrack -DMMd period- プロモーションビデオ
https://w.atwiki.jp/7g569d/pages/105.html
6demcs twitpicコメント: 待たせたな auzen tenin_bot 概要 製作者 auzen 投稿日時 派生元 ?page=%40tenin_bot @tenin_bot
https://w.atwiki.jp/sampleisbest/pages/260.html
開発環境 Microsoft Visual C# 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Windows フォーム アプリケーション プロジェクト名 DrawImg コモン コントロール/PictureBox 名前:pictureBox1 プロパティ:Dock Fill、SizeMode CenterImage イベント Form1_KeyDown Form1.cs using System; using System.Drawing; using System.Windows.Forms; namespace DrawImg { public partial class Form1 Form { public Form1() { InitializeComponent(); Bitmap img = new Bitmap(128, 128); for (int y = 0; y 128; y++) { double v = (y / (double)128 - 0.5) * 10; for (int x = 0; x 128; x++) { double u = (x / (double)128 - 0.5) * 10; double r = Math.Sqrt(u * u + v * v); double w = Math.Cos(r) * Math.Exp(r * r / -32); Color c; if (0 = w) { c = Color.FromArgb((int)(w * 255), 0, 0); } else { c = Color.FromArgb(0, 0, (int)(w * -255)); } img.SetPixel(x, y, c); } } pictureBox1.Image = img; } private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Escape) Close(); if (e.KeyCode == Keys.S (e.Modifiers Keys.Control) == Keys.Control) { string filename = @"C \tmp\GeoMap.png"; pictureBox1.Image.Save(filename); MessageBox.Show(filename, "DrawImg", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } }
https://w.atwiki.jp/mmdomf/pages/32.html
MMD俺得モデルフェスティバル6 (MMD-OMF6) 告知動画 http //www.nicovideo.jp/watch/sm28505877 【データの部・モデル投稿所】 俺得モデルフェスティバル モデル投稿所 【全モデル紹介動画】 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (訂正・遅刻・支援等) まとめ動画作成:mishikaさん 【動画静画の部・マイリス類】 参加動画マイリス 参加静画クリップ 遅刻・フライング・支援等 マイリス クリップ 【レギュレーション】 レギュレーションページヘ レギュレーション早見表 データの部 動画静画の部 投稿期間 5/3 (0 00) ~ 5/8 (24 00) 前半:5/3 (0 00) ~ 5/10 (24 00)後半:5/20 (0 00) ~ 5/31(24 00) 参加方法 俺得モデルフェスティバル モデル投稿所へモデル画像を投稿※モデル配布のURLを記載 ニコニコ動画・静画(「イラスト」コーナー)を投稿「俺得モデルフェス6」タグを付ける 参加条件 未配布の新規データ 「データの部」参加作品を使用(もちろん配布者本人でなくてもOK) その他 紹介動画・静画作成は任意(参加動画・静画としてカウント) (必ずレギュレーション本文も確認してください) <「コンテンツツリー」を利用する方法> ニコニコ動画またはニコニコ静画「イラスト」に、モデル紹介動画・画像を投稿する 「モデル投稿所」で画像投稿する際、動画やイラストのURLを投稿文中に記載する(URL欄への記入では、投稿後に目立ちません)
https://w.atwiki.jp/maichi/pages/62.html
rates.propertiesの設定(Revision 3492) NORMAL RATES RateXp = 1. 経験値のレート RateSp = 1. SP値のレート RatePartyXp = 1. PT時の経験値レート RatePartySp = 1. PT時のSP値レート RateDropAdena = 1. ドロップアデナレート RateConsumableCost = 1. RateDropItems = 1. 通常MOBドロップアイテムレート RateRaidDropItems = 1. レイドボス ボスドロップアイテムレート RateDropSpoil = 1. スポイルレート RateDropManor = 1 RateExtractFish = 1. RateDropQuest = 1. クエストアイテム収集確率 RateQuestsReward = 1. クエストアイテム数拾得数倍率 RateKarmaExpLost = 1 PKKされた際の経験値ロストレート RateSiegeGuardsPrice = 1 PlayerDropLimit = 0 PlayerRateDrop = 0 PlayerRateDropItem = 0 PlayerRateDropEquip = 0 PlayerRateDropEquipWeapon = 0 KarmaDropLimit = 10 PKKされた際のドロップ数 KarmaRateDrop = 40 PKKされた際のドロップ率 KarmaRateDropItem = 50 PKKされた際のアイテムドロップ率 KarmaRateDropEquip = 40 PKKされた際の武器以外の装備品ドロップ率 KarmaRateDropEquipWeapon = 10 PKKされた際の武器ドロップ率 PetXpRate = 1. ペットの経験値取得の倍率 PetFoodRate = 1 ペットが餌を消費する率 SinEaterXpRate =1. シンイーターが経験値取得の倍率 HERBS RATES RateCommonHerbs = 15. マイト、エンパ、ヘイスト、アキュ、クリティカルハーブのドロップ率 RateHpMpHerbs = 10. HP,MPのハーブドロップ率 RateGreaterHerbs = 4. グレーターハーブのドロップ率 RateSuperiorHerbs = 0.8 スーパーハーブのドロップ率 RateSpecialHerbs = 0.2 スペシャルハーブのドロップ率 # --------------------------------------------------------------------------- # Rate Settings # --------------------------------------------------------------------------- # The defaults are set to be retail-like. If you modify any of these settings your server will deviate from being retail-like. # Warning # Please take extreme caution when changing anything. Also please understand what you are changing before you do so on a live server. # --------------------------------------------------------------------------- # Standard Settings (Retail value = 1) # --------------------------------------------------------------------------- # Experience multiplier RateXp = 1 # Skill points multiplier RateSp = 1 # Experience multiplier (Party) RatePartyXp = 1 # Skill points multiplier (Party) RatePartySp = 1 # Adena drop rate RateDropAdena = 1 RateConsumableCost = 1 RateDropItems = 1 RateRaidDropItems = 1 RateDropSpoil = 1 RateDropManor = 1 RateExtractFish = 1 RateQuestsReward = 1 RateKarmaExpLost = 1 RateSiegeGuardsPrice = 1 # Warning Many quests need to be rewritten # for this setting to work properly. RateDropQuest = 1 # --------------------------------------------------------------------------- # Vitality system rates. Works only if EnableVitality = True # --------------------------------------------------------------------------- # The following configures the xp multiplicator of each vitality level. Basically, you have # 5 levels, the first one being 0. Official rates are # Level 1 150% # Level 2 200% # Level 3 250% # Level 4 300% # Take care setting these values according to your server rates, as the can lead to huge differences! # Example with a server rate 15x and a level 4 vitality = 3. = final server rate = 45 (15x3)! RateVitalityLevel1 = 1.5 RateVitalityLevel2 = 2. RateVitalityLevel3 = 2.5 RateVitalityLevel4 = 3. # These options are to be used if you want to increase the vitality gain/lost for each mob you kills # Default values are 1. RateVitalityGain = 1. RateVitalityLost = 1. # This defines how many times faster do the players regain their vitality when in peace zones RateRecoveryPeaceZone = 1. # This defines how many times faster do the players regain their vitality when offline # Note that you need to turn on "RecoverVitalityOnReconnect" to have this option effective RateRecoveryOnReconnect = 4. # --------------------------------------------------------------------------- # Player Drops (values are set in PERCENTS) # --------------------------------------------------------------------------- PlayerDropLimit = 0 # in % PlayerRateDrop = 0 # in % PlayerRateDropItem = 0 # in % PlayerRateDropEquip = 0 # in % PlayerRateDropEquipWeapon = 0 # --------------------------------------------------------------------------- # Player XP % lost on death. # --------------------------------------------------------------------------- # Must be defined an interval per each % following this # [limit1m,limit1M]-val1;[limit2m,limit2M]-val2;... # For undefined intervals, default value is 1.0 . # Example (Default settings) # 0,39-7.0;40,75-4.0;76,76-2.5;77,77-2.0;78,78-1.5 # This will set 7.0 from 0 to 39 (included), 4.00 from 40 to 75 (included), # 2.5 to 76, 2.0 to 77 and 1.5 to 78 # XP loss is affected by clan luck in core PlayerXPPercentLost = 0,39-7.0;40,75-4.0;76,76-2.5;77,77-2.0;78,78-1.5 # Default 10 KarmaDropLimit = 10 # Default 40 KarmaRateDrop = 40 # Default 50 KarmaRateDropItem = 50 # Default 40 KarmaRateDropEquip = 40 # Default 10 KarmaRateDropEquipWeapon = 10 # --------------------------------------------------------------------------- # Pets (Default value = 1) # --------------------------------------------------------------------------- PetXpRate = 1 PetFoodRate = 1 SinEaterXpRate = 1 # --------------------------------------------------------------------------- # Herbs # --------------------------------------------------------------------------- # Herb of Power, Herb of Magic, Herb of Attack Speed, Herb of Casting Speed, Herb of Critical Attack, Herb of Speed # Default 15 RateCommonHerbs = 15 # Herb of Life, Herb of Mana # Default 10 RateHpMpHerbs = 10 # Greater herb of Life, Greater Herb of Mana # Default 4 RateGreaterHerbs = 4 # Superior Herb of Life, Superior Herb of Mana # Default 0.8 RateSuperiorHerbs = 0.8 # Herb of Warrior, Herb of Mystic, Herb of Recovery # Default 0.2 RateSpecialHerbs = 0.2 # Rate to configure the chance in percent vitality resplenishing herbs are dropping. # Note you ll need to enable EnableVitalityHerbs # Notes #Works only if EnableVitality = True RateVitalityHerbs = 2.
https://w.atwiki.jp/fate_go/
このWikiは「Fate/Grand Order」の攻略Wikiです。 当サイトはどなたでもご自由に編集出来ます。 修正などがありましたら随時お願いいたします。 現在事前登録受付中です。 事前登録はメニュー内にある公式サイトからどうぞ。 タイトル Fate/Grand Order 対応機種 Android,iOS 価格 基本無料(一部アプリ内課金あり) ジャンル FateRPG コピーライト ®TYPE-MOON / FGO PROJECT All Rights Reserved. fgoproject のお気に入りに登録されたツイート
https://w.atwiki.jp/nullpomino/pages/51.html
次のことは、NullpoMinoのすべてのバージョンに当てはまります。 GAME RATEは、リアルタイム(実際の時間)とゲーム上の時間(スクリーンに示された時間)との比率を表した値です(簡単にいえば、不正をしているかどうか調べられます)。 ゲームのはじめの「READY!」「 GO!」の時間(1.666秒)がGAME RATEに加えられる仕様があるので、GAME RATEの計算式は以下のようになります。 (GAME RATE)= 100× [(ゲーム上の時間)+ 1.666 ]/ (リアルタイム) (リアルタイム)= 100× [(ゲーム上の時間)+ 1.666 ]/(GAME RATE) リアルタイム(実際の時間)とゲーム上の時間(スクリーンに示された時間)が一致している場合は以下の式で予想GAME RATEについて計算することができます。 (予想GAME RATE)= 100 x ( 1.666 /(ゲーム上の時間) + 1 ) 例えば、LINERACEの19.68秒の予想GAME RATEは108.465%となります。上記の公式で計算される予想GAME RATEと実際のGAME RATEでは、少し誤差が出ます。パソコンのスペック不足やアンチウイルスプログラムやインターネットブラウザからラグを受けているなどの可能性があるからです。予想GAME RATEが1%前後異なる場合、GAME RATE値を疑う必要があります。下記の式より計算を行うことができます。 (リアルタイム)= 100× [(ゲーム上の時間)+ 1.666 ]/(GAME RATE) Q:GAME RATEが明らかにおかしいです。何が間違っているのですか? A:フレームレートが60に設定されていることを確認してください。 Q:60 FPSで遊んでいますが、ゲームのレートは1%以上の誤差があります。何が間違って起こっているのですか? A:パソコンのスペック不足が考えられます。1%以上の誤差がある場合は以下の2つの方法を試し、設定を見直して下さい。 1.FPS PERFECT YIELDを○にします。それでも解決しない場合は、FPS PERFECT MODEを✕にします。少し不正確なフレームレートになりますが、パソコン上でNullpoMinoの動作をスピードアップさせることができます。 2 SwingバージョンのNullpoMinoを実行してください。(play_swing.batを実行しましょう。)
https://w.atwiki.jp/kuin/pages/27.html
標準ライブラリ - Draw 説明 Drawは、文字や画像や3Dデータといったものを動かしたり、変形して表示させたりすることが出来るメソッドを多数持っています。ステージ全体に効果を与えるものと、クラスからインスタンスを生成してごにょごにょするものと2種類あるので、注意しよう。 所有メソッドLoadTex(path []char) @CTex説明 引数 戻り値 サンプルコード(Ver0.031) LoadFont(path []char) @CFont説明 引数 戻り値 サンプルコード(Ver0.031) LoadObj(path []char) @CObj説明 引数 戻り値 サンプルコード(Ver1.00) テンプレメソッド(ひきすー ひきすうかたー) もどりちー説明 引数 戻り値 サンプルコード(Ver0.031) CTex説明 補足 所有メソッドDraw(sx float,sy float,sw float,sh float,dx float,dy float,r float,g float,b float,a float) なし DrawScale(sx float,sy float,sw float,sh float,dx float,dy float,dw float,dh float,r float,g float,b float,a float) なし DrawRot(sx float,sy float,sw float,sh float,dx float,dy float,dw float,dh float,cx float,cy float,angle float,r float,g float,b float,a float) なし Width() float Height() float CFont説明 補足 所有メソッドMakeTex(size int,str []char,margin int) Draw@CTex ソースコードをUTF-8で保存しないと全角文字が文字化けします!(情報置いとくので整備おねがいします・・・) CObj説明 補足 所有メソッドDraw(tex CTex , normal CTex , group int , anim float) なし 所有メソッド LoadTex(path []char) @CTex 説明 指定したファイルパスに存在するテクスチャ(俗にいう画像ファイル)をロードします。この処理はそこそこ重たいので極力呼び出さないようにしましょう(基本は初回のみで)ちなみに解放処理はオートでやってくれます。メモリ解放忘れで闇だった旧GBerryとは違うのだ(しろめ) 引数 path []charファイルパスを指定します dbgresディレクトリからの相対パスにも対応しています。 指定することが出来るテクスチャデータは、KuinTexを使用して.kntexというファイルフォーマットに変換したもののみが使用出来ます。 戻り値 Draw@CTexDraw@CTex型のクラスインスタンスが返ります。 このLoadTexで得たクラスインスタンスを利用して、表示とか変形とかの処理を行います。 サンプルコード(Ver0.031) func Main(){Draw@CTexの項で嫌ほど使うので省略します}end func LoadFont(path []char) @CFont 説明 指定したファイルパスに存在するフォントデータ(.ttfとかとか)をロードします。この処理はそこそこ重たいので極力呼び出さないようにしましょう(基本は初回のみで)ちなみに解放処理はオートでやってくれます。メモリ解放忘れで闇だった旧GBerryとは違うのだ(しろめ) 引数 path []charファイルパスを指定します dbgresディレクトリからの相対パスにも対応しています。 指定することが出来るフォントデータは、ttcやttfでは動作を確認しました。(TrueTypeフォント系は少なくとも大丈夫っぽい。) 戻り値 Draw@CFontDraw@CFont型のクラスインスタンスが返ります。 このLoadFontで得たクラスインスタンスを利用して、色んな(≒任意の)文字列のテクスチャーデータを生成することができます。 サンプルコード(Ver0.031) func Main(){Draw@CFontの項で嫌ほど使うので省略します}end func LoadObj(path []char) @CObj 説明 指定したファイルパスに存在する3Dデータ(独自形式knobj)をロードします。この処理はそこそこ重たいので極力呼び出さないようにしましょう(基本は初回のみで)ちなみに解放処理はオートでやってくれます。メモリ解放忘れで闇だった旧GBerryとは違うのだ(しろめ) 引数 path []charファイルパスを指定します dbgresディレクトリからの相対パスにも対応しています。 指定することが出来る3Dデータは、KuinObjで変換したものでは動作を確認しました 戻り値 Draw@CObjDraw@CObj型のクラスインスタンスが返ります。 このLoadObjで得たクラスインスタンスを利用して、表示とか変形の処理を行います。 サンプルコード(Ver1.00) func Main(){Draw@CObjの項で嫌ほど使うので省略します}end func テンプレメソッド(ひきすー ひきすうかたー) もどりちー 説明 テンプレメソッドの説明をここにー 引数 ひきすー ひきすうかたーひきすーのせつめー 戻り値 もどりちかたーもどりちせつめいー サンプルコード(Ver0.031) func Main(){素敵なソースコードをここにー}end func CTex 説明 Kuinでテクスチャ(画像)を扱う為に使うクラスです。基本的には[#LoadTex]メソッドの戻り値でインスタンスを得るため、このクラスを自分でインスタンス生成することはないです[要出典]ちなみに、このクラスのコンストラクタを呼び出すと、16#00010006の実行時エラーを吐きます。 補足 なお、今回の説明で、何ぶん画像がないと説明しづらい部分があるので、特別にくいなちゃんを用意しました(256x256)。このくいなちゃんを「kuina.png」で保存し、KuinTexで「kuina.png.kntex」となったものを「kuina.kntex」にリネームし、以降のサンプルコード中に使用するものとする。 所有メソッド Draw(sx float,sy float,sw float,sh float,dx float,dy float,r float,g float,b float,a float) なし 説明 このインスタンスに指定されている.kntexの画像データを、指定した座標や色情報を元にKuin上に表示します。このメソッドはDrawScaleのラッパーです。つまりは、拡大率100%(拡大縮小無し)の、DrawScaleを内部で呼び出してるのと全く同じです。 引数sx float略称はおそらく「ソースx座標」の意味だと思います 画像ファイルの中の、表示したい左上の座標のx座標を指定します。 いつもは0.0だと思いますが、例えばbullet.pngに色んな弾をまとめて1枚の画像としてkntexに変換した時なんかに、左上の座標を切り替えるだけで、1つのインスタンスから何種類もの弾丸を取り出すことが出来ます。こうすることで扱いやすさ的にも処理速度的にもプラスに出来ます。 sy float略称はおそらく「ソースy座標」の意味だと思います sxのy座標バージョンです。 正直浮動小数点である理由はよく分かりません。整数のピクセル値以外を左上の座標に指定するメリットがある場面が想像出来ませんし、○○.0って打つ作業が面倒くさいのでint型にして欲しいです(消される) sw float略称はおそらく「ソースwidth(横幅)」の意味だと思います 画像ファイルの中の、表示したい横幅pxを指定します 解釈を変えれば、(右下のx座標 - 左上のx座標)の座標を指定するとも取れますね。 sh float略称はおそらく「ソースheight(縦幅)」の意味だと思います 画像ファイルの中の、表示したい縦幅pxを指定します 解釈を変えれば、(右下のy座標 - 左上のy座標)の座標を指定するとも取れますね。 どうでもいいけどsw,shに関してもint型に(ry dx float略称はおそらく「ディスプレイx座標」の意味だと思います Kuin上の表示したいx座標を指定します。 0.0と指定したら左端に画像が表示されるし、100.0と指定したら左側から100px右に移動した位置に表示されます。 dy float略称はおそらく「ディスプレイy座標」の意味だと思います Kuin上の表示したいy座標を指定します。 0.0と指定したら上端に画像が表示されるし、100.0と指定したら上側から100px下に移動した位置に表示されます。 r float画像の赤っぽさ成分を指定します。 基本的には1.0で。赤っぽさを弱めたい場合には0.0に近づけると赤っぽくなくなります。 g float画像の緑っぽさ成分を指定します。 基本的には1.0で。緑っぽさを弱めたい場合には0.0に近づけると緑っぽくなくなります。 b float画像の青っぽさ成分を指定します。 基本的には1.0で。青っぽさを弱めたい場合には0.0に近づけると青っぽくなくなります。 a float画像の不透明度成分を指定します。 基本的には1.0で。不透明度を弱めたい場合には0.0に近づけると\アッカリーン/します 戻り値なしないよっ サンプルコード(Ver0.031) func Main()var kuinaImage Draw@CTex Draw@LoadTex("kuina.kntex") {kntexファイルをLoadしてくる}while(true)do Kuin@Act() {kuina.kntexの画像ファイルから、座標(0,0)の位置から横幅256px、縦幅256pxを取り出しMain_dbg.exeウィンドウの左上から(100,100)の位置にRGBAの全てを100%出力で、画像を表示させる}do kuinaImage.Draw(0.0,0.0,256.0,256.0,100.0,100.0,1.0,1.0,1.0,1.0)end whileend func DrawScale(sx float,sy float,sw float,sh float,dx float,dy float,dw float,dh float,r float,g float,b float,a float) なし 説明 画像の表示だけならDrawで行えますが、画像の拡大縮小を考慮した上で表示したい場合は、こちらのDrawScaleを使用します拡大縮小ができるってだけで、基本的にはDrawと一緒なので、引数もDrawと異なる部分だけを説明しますなお、dwやdhに負数を入れることで、画像の左右反転や上下反転が可能になります。かなりエグいサンプルコードを用意しましたので、参考になりませんがそちらもどうぞ。 引数sx float sy float sw float sh float dx float dy float dw float略称はおそらく「ディスプレイwidth(横幅)」の意味だと思います Kuin上の表示したい横幅を指定します。 swと同じにしたら等倍で表示されるし、swの2倍の値を入れたら2倍横長になります 負数を入れたら左右反転します。そこそこ重要なテクニックです。 dh float略称はおそらく「ディスプレイheight(縦幅)」の意味だと思います Kuin上の表示したい縦幅を指定します。 shと同じにしたら等倍で表示されるし、shの2倍の値を入れたら2倍横長になります 負数を入れたら上下反転します。そこそこ重要なテクニックです。 r float g float b float a float 戻り値なしないよっ サンプルコード(Ver0.031) func Main()var kuinaImage Draw@CTex Draw@LoadTex("kuina.kntex") {kntexファイルをLoadしてくる} const FPS int 30 {Ver0.031では30fpsなので30という定数を入れる}var scale floatvar sin floatvar cos floatvar dy floatvar width floatvar height float while(true)do Kuin@Act() {kuina.kntexの画像ファイルから、座標(0,0)の位置から横幅256px、縦幅256pxを取り出しMain_dbg.exeウィンドウの左上から(200,100)の位置で、横幅128px、縦幅128pxを基準の大きさにして横幅の値を1秒周期で-128~128に変化させ、あたかもdx 100pxを中心に横方向回転してるかの如く表現し縦幅の値を1秒周期で96~160に変化して、パースを付けて立体感を表現するその際に、y座標にバイアスをかけて位置に違和感がないようにするRGBAの全てを100%出力で、画像を表示させる} do scale ((Kuin@Cnt()-1)%FPS*12) $ float {FPS(30)で割った余りを12倍してfloatにキャストすると0≦scale 360の値になる}do scale * Lib@Pi / 180.0 {それをπ/180倍することで、ラジアンの値に変換する}do sin Lib@Sin(scale) {それをsinの値にすると、 0⇒+1⇒ 0⇒-1⇒ 0の順番で値が変化していく}do cos Lib@Cos(scale) {それをcosの値にすると、+1⇒ 0⇒-1⇒ 0⇒+1の順番で値が変化していく}do width cos * 128.0 {cosを128倍すると、 +128⇒ 0⇒-128⇒ 0⇒+128の順番で値が変化していく}do height 128.0 + (sin * 32.0) {sinを32倍して128に足すと、+128⇒+160⇒+128⇒+96⇒+128の順番で値が変化していく}do dy -((sin * 32.0)/2.0) {heightの増分の半分の大きさの符号反転の値だけy方向に移動させることで、違和感を無くす}do kuinaImage.DrawScale(0.0,0.0,256.0,256.0,200.0,100.0+dy,width,height,1.0,1.0,1.0,1.0) {理解の助けになるように、widthだけ変化させたものを400,400に表示します}do kuinaImage.DrawScale(0.0,0.0,256.0,256.0,400.0,400.0,width,128.0,1.0,1.0,1.0,1.0) {理解の助けになるように、height(とdy)だけ変化させたものを50,400に表示します}do kuinaImage.DrawScale(0.0,0.0,256.0,256.0,50.0,400.0+dy,128.0,height,1.0,1.0,1.0,1.0)end whileend func DrawRot(sx float,sy float,sw float,sh float,dx float,dy float,dw float,dh float,cx float,cy float,angle float,r float,g float,b float,a float) なし 説明 画像を回転させる必要もある場合にはこのDrawRotを使用します。これも毎度のことながら、DrawScaleとほぼ同じなので、引数の説明は適宜省略していきます。 引数sx float sy float sw float sh float dx float dy float dw float dh float cx float略称はおそらく「サークル(円形)x座標」の意味だと思います。もしかしたら「センター(中心)x座標」かもしれない。 回転中心となるx座標を指定します。これはdxからの相対値です。 どういう回転をさせるかにもよるけど、大抵はdwの半分の値か、0.0だと思いますね。 cy float略称はおそらく「サークル(円形)y座標」の意味だと思います。もしかしたら「センター(中心)y座標」かもしれない。 回転中心となるy座標を指定します。これはdyからの相対値です。 どういう回転をさせるかにもよるけど、大抵はdhの半分の値か、0.0だと思いますね。 angle float回転する角度を指定します。 単位はラジアンです。degreeだと思ってドヤ顔で360.0とか打たないでください死んでしまいます r float g float b float a float 戻り値なしないよっ サンプルコード(Ver0.031) func Main()var kuinaImage Draw@CTex Draw@LoadTex("kuina.kntex") {kntexファイルをLoadしてくる} const FPS int 30 {Ver0.031では30fpsなので30という定数を入れる}var angle float while(true)do Kuin@Act() {kuina.kntexの画像ファイルから、座標(0,0)の位置から横幅256px、縦幅256pxを取り出しMain_dbg.exeウィンドウの左上から(100,100)の位置で、横幅128px、縦幅128pxに縮小してまた、回転中心を(64.0,64.0)として、1秒間に1回転するスピードでぐるぐる回すRGBAの全てを100%出力で、画像を表示させる} do angle ((Kuin@Cnt()-1)%FPS*12) $ float {FPS(30)で割った余りを12倍してfloatにキャストすると0.0≦angle 360.0の値になる}do angle * Lib@Pi / 180.0 {それをπ/180.0倍することで、ラジアンの値に変換する}do kuinaImage.DrawRot(0.0,0.0,256.0,256.0,100.0,100.0,128.0,128.0,64.0,64.0,angle,1.0,1.0,1.0,1.0)end whileend func Width() float 説明 読み込んだ.kntexファイルの横幅を得ます。メソッドなので、当然Getterです。 引数なしないよっ 戻り値float.kntexファイルの横幅(px)を返します。 サンプルコード(Ver0.031) func Main()var kuinaImage Draw@CTex Draw@LoadTex("kuina.kntex") {kntexファイルをLoadしてくる}do Dbg@Log("横幅は" ~ kuinaImage.Width().ToStr() ~ "pxです") {横幅は256pxです と表示される}end func Height() float 説明 読み込んだ.kntexファイルの縦幅を得ます。メソッドなので、当然Getterです。 引数なしないよっ 戻り値float.kntexファイルの縦幅(px)を返します。 サンプルコード(Ver0.031) func Main()var kuinaImage Draw@CTex Draw@LoadTex("kuina.kntex") {kntexファイルをLoadしてくる}do Dbg@Log("縦幅は" ~ kuinaImage.Height().ToStr() ~ "pxです") {縦幅は256pxです と表示される}end func CFont 説明 Kuinで文字を表示させる場合に便利なクラスとしてCFontがあります。CFontはttf(TrueTypeFont)のようなデータを利用して表示させるため、従来のKuin0.02xのように、自分で文字を画像化して。。。の作業を簡単化&動的化できるスグレモノです。是非マスターしましょう。 補足 なお、この説明の本筋とは逸れますが、PCにすでにインストールされているフォントのデータを取り出す方法を紹介します。(Win7のみです。それ以外のOSは各自ググってください) コントロールパネルを開きます 表示方法を「カテゴリ」にします デスクトップのカスタマイズを選択します ページが遷移されるので、項目の中から「フォント」を選択します ページが遷移され、フォント一覧が出てくるので、その中から使用したいフォントをコピーします コピーしたフォントデータをKuin側のdbgresディレクトリに突っ込めばバッチリです。 所有メソッド MakeTex(size int,str []char,margin int) Draw@CTex 説明 Draw@LoadFontメソッドで読み込んだCFontを文字の書かれたCTexに変換します。このメソッドの戻り値であるCTexデータは、.kntexからLoadTexした場合と同様に、Drawメソッド等で描画できます。PhotoShop等のソフトを使用している方なら、「フォントデータのラスタライズを行います」と説明すれば分かりやすいんじゃないでしょうか。このメソッドはそんなに頻繁に呼び出すべきではないのは確かなのですが、ノベルゲーム等、文字の自動スクロールなどを実装する場合は頻繁に呼び出さざるを得ない場面があり、悲しみを生みます。しかしLoadFontと明確に役割が分割されたので旧GBerryよりは高速化も図れていい着地点についたのではないでしょうか。 引数size intフォントサイズを指定します pxと必ずしも一致するとは限りません。というか大抵一致しません。あくまでフォントサイズなので注意。 str []charテクスチャー化するときの文字を指定します ここに与える文字を、数フレームごとに増やしていくと、ノベルゲームっぽい自動スクロールも作れます。詳しくはサンプルコードで。 margin int文字の間の余白を指定します。 きっちりつめて表示するなら0、だだっ広く表示するなら正の整数、重ねて表示させるなら負の整数を入れます。 ちなみに余談ですがこのメソッド単体では複数行に対応していません。 CFont.MakeFontメソッドで複数個のCTexを作成して、それのDrawする位置を調節することで、複数行には対応します。故に行間設定は存在しません。 戻り値Draw@CTex作成された文字のテクスチャが返ります。CTexの使い方は、Draw@CTexを参照されたし。 サンプルコード func Main()const FPS int 30 var fontData Draw@CFont Draw@LoadFont("meiryo.ttc")var fontMes []char "くいなちゃん6さい"var fontImage Draw@CTex fontData.MakeTex(24,fontMes,0) var fontMesStream []char ""var fontImageStream Draw@CTex fontData.MakeTex(24,fontMesStream,0)var showCnt int 0 {Width()やHeight()を使えば文字テクスチャーの長さがpxで取得できる}do Dbg@Log("横幅 " ~ fontImage.Width().ToStr() ~ ",縦幅 " ~ fontImage.Height().ToStr()) while(true)do Kuin@Act() {(50,50)の位置に、文字を表示する}do fontImage.Draw(0.0,0.0,fontImage.Width(),fontImage.Height(),50.0,50.0,1.0,1.0,1.0,1.0) {(50,100)の位置に、0.5秒ごとに1文字づつ表示させる}if(Kuin@Cnt()%(FPS/2) = 0)if(showCnt fontMes.Len())do fontMesStream ~ fontMes[showCnt].ToStr()do showCnt + 1elsedo fontMesStream ""do showCnt 0end ifdo fontImageStream fontData.MakeTex(24,fontMesStream,0) {テクスチャーの更新}end if{RGBAの部分を調節することで文字の色を変更することも可能例えば、16#21E9DF(水色っぽい感じの色)を表示させたかったら、rに 「(16#21 $ float) / (16#ff $ float)」の値をgに 「(16#e9 $ float) / (16#ff $ float)」の値をbに 「(16#df $ float) / 816#ff $ float)」の値をそれぞれ与えてやれば、水色っぽい色になる。}do fontImageStream.Draw(0.0,0.0,fontImageStream.Width(),fontImageStream.Height(),50.0,100.0,(16#21$float)/(16#ff$float),(16#e9$float)/(16#ff$float),(16#df$float)/(16#ff$float),1.0)end whileend func ソースコードをUTF-8で保存しないと全角文字が文字化けします!(情報置いとくので整備おねがいします・・・) CObj 説明 Kuinで3Dモデルを扱う為に使うクラスです。 補足 所有メソッド Draw(tex CTex , normal CTex , group int , anim float) なし 説明 引数tex CTex3Dモデルに使用するテクスチャの画像を指定します。LoadTexで作成したオブジェクトを指定してください。 nullでも動作しますが、3Dモデルの表面は真っ黒になります。 normal CTex3Dモデルの表面の凹凸を表す画像を指定します。LoadTexで作成したオブジェクトを指定してください。 使用しない場合はnullを指定してください group int描画する3Dモデル内のグループの番号(0から始まるインデックス)を指定してください。 anim floatアニメーションのキーフレームを指定する。0.0なら1番目のキー、1.0なら2番目のキーになり、0.5なら1番目と2番目のキーの中間の変形具合になります。 戻り値なしないよっ サンプルコード(Ver1.00) func Main()var model Draw@CObj Draw@LoadObj("sample.knobj") {knobjファイルをLoadしてくる}var tex Draw@CTex Draw@LoadTex("kuina.kntex") {kntexファイルをLoadしてくる} while()do Kuin@Act() {ここにはいい感じサンプルコードと説明が書かれる予定} do model.Draw(tex, null, 0, 0.0)end whileend func
https://w.atwiki.jp/sampleisbest/pages/112.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 プロジェクト プロジェクト名 OleDraw アプリケーションの種類 Windows アプリケーション 追加のオプション 空のプロジェクト 参考 OLE描画 / ビューオブジェクト OleDraw.cpp #include Windows.h #include MsHTML.h // 定数定義 static const TCHAR CLASS_NAME[] = TEXT("OleDraw"); static const TCHAR WINDOW_NAME[] = TEXT("OleDraw"); // 関数プロトタイプ宣言 LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); BOOL GetObjectFromFile(LPWSTR lpszFilePath, IOleObject **ppOleObject); void DPtoHIMETRIC(LPSIZEL lpSizel); //============================================================================== int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASSEX wcx; HWND hWnd; MSG msg; // ウィンドウクラスの登録 wcx.cbSize= sizeof (WNDCLASSEX); wcx.style= CS_HREDRAW | CS_VREDRAW; wcx.lpfnWndProc= WindowProc; wcx.cbClsExtra= 0; wcx.cbWndExtra= 0; wcx.hInstance= hInstance; wcx.hIcon= NULL; wcx.hCursor= LoadCursor(NULL, MAKEINTRESOURCE(IDC_ARROW)); wcx.hbrBackground= (HBRUSH)(COLOR_WINDOW + 1); wcx.lpszMenuName= NULL; wcx.lpszClassName= CLASS_NAME; wcx.hIconSm= NULL; if (RegisterClassEx( wcx) == 0) { return 0; } // ウィンドウの作成 hWnd = CreateWindow( CLASS_NAME, WINDOW_NAME, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL); if (hWnd == NULL) { return 0; } ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); // メッセージループ while (GetMessage( msg, NULL, 0, 0)) { TranslateMessage( msg); DispatchMessage( msg); } return msg.wParam; } //------------------------------------------------------------------------------ LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { static IOleObject *pOleObject = NULL; switch (uMsg) { case WM_CREATE CoInitializeEx(NULL, COINIT_MULTITHREADED); GetObjectFromFile(L"C \\tmp\\index.html", pOleObject); break; case WM_PAINT { HDC hdc; PAINTSTRUCT ps; RECT rc; SIZEL sizel; hdc = BeginPaint(hWnd, ps); if (pOleObject) { SetRect( rc, 0, 0, 800, 600); sizel.cx = rc.right - rc.left; sizel.cy = rc.bottom - rc.top; DPtoHIMETRIC( sizel); pOleObject- SetExtent(DVASPECT_CONTENT, sizel); OleDraw(pOleObject, DVASPECT_CONTENT, hdc, rc); } EndPaint(hWnd, ps); } break; case WM_DESTROY if (pOleObject) pOleObject- Release(); CoUninitialize(); PostQuitMessage(0); break; default return DefWindowProc(hWnd, uMsg, wParam, lParam); } return 0; } //------------------------------------------------------------------------------ BOOL GetObjectFromFile(LPWSTR lpszFilePath, IOleObject **ppOleObject) { HRESULT hr; IHTMLDocument2 *pDocument2; IPersistFile *pPersistFile = NULL; BSTR bstrState; hr = CoCreateInstance(CLSID_HTMLDocument, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS( pDocument2)); if (FAILED(hr)) return FALSE; hr = pDocument2- QueryInterface(IID_PPV_ARGS( pPersistFile)); if (FAILED(hr)) goto Exit; hr = pPersistFile- Load(lpszFilePath, STGM_READ); if (FAILED(hr)) goto Exit;// URLではE_UNEXPECTEDとなる while (1) { Sleep(10); pDocument2- get_readyState( bstrState); if (lstrcmpW(bstrState, L"complete") == 0) { SysFreeString(bstrState); break; } SysFreeString(bstrState); } hr = pDocument2- QueryInterface(IID_PPV_ARGS(ppOleObject)); Exit if (pPersistFile) pPersistFile- Release(); pDocument2- Release(); return SUCCEEDED(hr); } //------------------------------------------------------------------------------ void DPtoHIMETRIC(LPSIZEL lpSizel) { HDC hdc; const int HIMETRIC_INCH = 2540; hdc = GetDC(NULL); lpSizel- cx = MulDiv(lpSizel- cx, HIMETRIC_INCH, GetDeviceCaps(hdc, LOGPIXELSX)); lpSizel- cy = MulDiv(lpSizel- cy, HIMETRIC_INCH, GetDeviceCaps(hdc, LOGPIXELSY)); ReleaseDC(NULL, hdc); }