約 4,339,970 件
https://w.atwiki.jp/j-simulator/pages/54.html
Publications Development of the Radar-Lidar Simulator (new to old) Nishizawa, T., H. Okamoto, T. Takemura, N. Sugimoto, I. Matsui, and A. Shimizu, Aerosol retrieval from two-wavelength backscatter and one-wavelength polarization lidar measurement taken during the MR01K02 cruise of the R/V Mirai and evaluation of a global aerosol transport model, J. Geophys. Res., 113, D21201, doi 10.1029/2007JD009640, 2008 Okamoto, H., T. Nishizawa, T. Takemura, K. Sato, H. Kumagai, Y. Ohno, N. Sugimoto, A. Shimizu, I. Matsui, and T. Nakajima, Vertical cloud properties in the tropical western Pacific Ocean Validation of the CCSR/NIES/FRCGC GCM by shipborne radar and lidar, J. Geophys. Res., 113, D24213, doi 10.1029/2008JD009812, 2008. Okamoto, H., T. Nishizawa, T. Takemura, H. Kumagai, H. Kuroiwa, N. Sugimoto, I. Matsui, A. Shimizu, A. Kamei, S. Emori, and T. Nakajima, Vertical cloud structure observed from shipborne radar and lidar mid-latitude case study during the MR01/K02 cruise of the R/V Mirai, J. Geophys. Res, 112, D08216, doi 10.1029/2006JD007628, 2007. back edit
https://w.atwiki.jp/kincon/pages/31.html
Kingdom Conquest - Aura Spirit Calculator http //calculator.kingdomconquest.jp/ KC成長計算ツール ver0.20α http //calculator2-alpha.kingdomconquest.jp/
https://w.atwiki.jp/calc/pages/37.html
Calc教祖 杉田玄白 偶像崇拝が許されました。☆(ゝω・)vキャピ EpA.Be4t サブでも金 メインで赤 俺の言うこと聞いとけぇ……おぅ……後悔すんぞぉ……(迫真)(ドヤ顔) ゲロ来そうなときって、のどスッパくならないですか? 俺チョコワよりケロッグ派←New! fkdr 出た・・・UMAさんの "キャノン・タチマワリ"!←New! 九州boy まあ任せろ とりあえず正面で撃ちあえ 横からきたらSRおわっから(キリッ
https://w.atwiki.jp/badtimesimulator/
Badtimesimulator@wikiへようこそ このウィキはバッドタイムシミュレーターについて解説するウィキです 注意 このwikiはアンダーテールのネタバレになるページがあります。閲覧には注意してください。 jvddygjvbiadfhvfuzbbkkklklmzb p どうすれば作れるんですか? あ い 作り方を教えてください hard mode しねしねしねしねしねしねしねしねしねしねしねしねしねしねしね shabriri コメント
https://w.atwiki.jp/terragen/pages/125.html
Node Type Population ノード説明と目的 ポピュレーションは、カスタマイズ可能な同じオブジェクトインスタンスを大量に作成し、XZ平面上の長方形エリアに分布するために使用します。ポピュレーションを使用する事で、アプリケーションは的確にオブジェクトインスタンスを自動的に地表上に配置し、オブジェクトのy座標が地形のy座標と一致するようにする事が出来ます。密度シェーダを指定する機能により、ユーザはオブジェクトの配置と分布マスキングする事が出来ます。ディストリビューション(分布)シェーダが指定されていない場合、ポピュレーションはオブジェクトを定義された長方形エリアにランダムに配置します。より多くのバリエーションを模倣するためにポピュレーションはオブジェクトインスタンスをy軸を中心にランダムに回転させる事ができ、ユーザー定義のパラメータによってポピュレーションによるオブジェクトの大きさを変更する事が出来ます。 『Populator v4』はTerragen 3の新機能です。『Populator v3』からいくつかの重要な新機能があります: ポピュレーションのマルチスレッド化。ポピュレーションを複数のコアで同時に計算する事が出来るので、マルチコアマシンではかなり高速になります。 インスタンスの編集。ポピュレーション内の個々のインスタンスを編集、削除する事が出来ます。詳しくはポピュレーションのインスタンスの編集を参照して下さい。 インスタンスキャッシュ。ポピュレーションはインスタンスキャッシュファイルに保存する事が出来ます。ポピュレーションが読み込まれる際にあらかじめ計算済みのキャッシュファイルが読み込まれます。再度インスタンスを計算する事に比べて時間が節約する事が出来ます。詳しくはポピュレーションのインスタンス・キャッシュを参照して下さい。 もう1つの重要な変更点は、『Populator v4』ではインスタンスがポピュレーションエリア外に分布されなくなったことです。 Terragen 3以降、『Populator v3』から『Populator v4』に置き換えられました。すべての新しいインスタンスは、『Populator v4』を使用して作成されます。しかし、『Populator v3』はまだTG3では使用可能なので、TG2で作成されたプロジェクトは、TG3で読み込んでも前回同様レンダリングされます。唯一の違いは、TG3で新しく『Populator v3』ノードを作成する事が出来ません。 『Populator v3』から『Populator v4』に変換する場合は、トップツールバーの【Objects】からノードリストに移り、変換するポピュレーションノードを選択します((ノードネットワーク内で選択したポピュレーションノードは検出されません)。次にノードリスト下のギアアイコンをクリックし、ポップアップメニューから"Upgrade Selected Population to v4"を選択します。ノードネットワーク上の『Populator v3』はグレー表示で無効になり、新たに『Populator v4』で同名のノードが作成され、ノードの接続も自動で行われます。 『Populator』ノードを使用するに当たっての追加情報やインスタンスプロジェクトについては、ポピュレーションガイドを参照して下さい。 設定 Name ノード名 ポピュレーションノード名 Enable 有効 チェックを入れる事で有効になります。未チェックで一切の設定が無効になります。 Show b-box in preview 3Dプレビューで2Dの長方形表示を有効/無効にします。これは、xz軸上のポピュレーションの散布エリアを示します。 Preview mode プレビューモード 3Dプレビューで様々な異なる方法で3Dビュー内のオブジェクトを表示する事が出来ます。このポップアップでは、オブジェクトを表示できる最も精細なモードを設定します。3Dプレビューのオブジェクト表示モードボタンは、プレビュー全体のモードをコントロールします。例えば、オブジェクトのプレビューモードを"Wireframe"に設定しても、3Dプレビューオブジェクト表示モードが"Bounding Box"に設定されている場合、オブジェクトはバウンディングボックスとしてのみ描画されます。プレビューモードについては、3Dプレビュー内のオブジェクト表示を参照して下さい。 Preview colour プレビューカラー チェック時、ポピュレーションは指定された色を使用して3Dプレビューに描画されます。プレビューカラーは、"Bounding box"、"Wireframe"、"Smooth shaded"のプレビューモードで表示されます。色を選択するには、カラーボタンを使用します。 Object maker オブジェクトメーカー 取り入れるオブジェクトファイル、またはすでに設定されたオブジェクトノードを選択する事が出来ます。 Render Quality レンダークオリティ ポピュレートされたオブジェクトのレンダリングクオリティを指定する事が出来ます。レンダリング時間を短縮するために、『Render』ノードの画像解像度とディティール設定に関して、レンダリング画像の極小と思われるオブジェクトの一部に、ディティールレベルの削減が適用されます。つまり、遠方のオブジェクトや、非常に小さなポリゴンを持つオブジェクトには、よりディティールの削減が適用されます。この設定では、削減量をコントロールするだけでなく、レンダリング時間にも影響します。注意:"Raytrace Objects"が有効になっている場合、Terragenの新しいバージョンではデフォルトであるこの設定は効果がありません。 Repopulate every frame すべてのフレームを再ポピュレート 新しいフレームがレンダリングされるたびに、オブジェクトインスタンスの位置とサイズをポピュレーションに強制的に再計算させます。これは、ディストリビューション関数、地形、オブジェクトメーカをアニメ化する場合に必要です。このボックスをオンにしないと、『Populator v4』ノードのパラメータのいずれかが変更された場合、レンダリングの開始時に自動的にポピュレーションが計算されます。 Clip to camera カメラへクリップ チェック時、カメラに見えるエリアだけにオブジェクトインスタンスを埋めるため、必要な時間を短縮する事が出来ます。しかし、カメラビューの外側のインスタンスからの反射や影が必要な場合、またはアニメーション化している場合、少し問題になることはあります。インスタンスキャッシュを使用する場合は、カメラビューの外側まで計算されるため、一度計算させた後の場合この機能の利点は少なくなりまが、メモリの使用量は抑える事が出来ます。画像から分かるように、カメラビューの円錐状に分布されます。 Use instance cache インスタンスキャッシュを使用 チェック時、ポピュレーションのインスタンスキャッシュを使用します。詳しくはポピュレーションのインスタンス・キャッシュを参照して下さい。この『Cache Settings』ノードで読み込むキャッシュファイルを指定する必要があります。[Cache Settings...]ボタンをクリックする事で、このノードが開きます。拡張子は".pop"。 Populate Now ポピュレーション開始ボタン 現在の設定に基づいてオブジェクトインスタンスのポピュレーションを計算します。このボタンを押さないと、次に画像をレンダリングする時にポピュレーションが自動的に計算されますが、"Preview instances"を有効にしている場合は、このボタンを使用してレンダリング画像を描画せずに3Dプレビューでオブジェクトの位置をプレビューする事が出来ます。 Cache Settings... キャッシュ設定ボタン 『Cache Settings』ノードが開きます。キャッシュファイルを保存し、使用するキャッシュファイルを指定します。 Distributionタブ Area center エリアの中心 XZ平面上の長方形エリアの中心となる3D座標を入力します。Y値は高さに使用します。オブジェクトを配置する地形を指定する場合は、Yフィールドを空のままにします。 Area rotation エリアの回転 ポピュレーションの分布エリアを回転します。直立の壁一面にオブジェクトを配置したい時や、任意の角度を使用したい時などに有用です。 Area Length a エリアのa辺の長さ X軸に沿ったポピュレーションのエリア境界の一辺の長さ。 Area Length b エリアのb辺の長さ Z軸に沿ったポピュレーションのエリア境界の一辺の長さ。 Object Spacing in a,b オブジェクト間の距離 1つのオブジェクトインスタンスから別のオブジェクトインスタンスまでの平均距離を指定します。aはX軸、bはZ軸。 Spacing variation in a, b オブジェクト間のばらつき オブジェクトインスタンス位置のランダム性をコントロールします。 0の場合は、オブジェクトインスタンスの配置にランダムな様相がなく、"Object Spacing in a,b"で定義された間隔で、格子状に一列に並べられます。デフォルト値の1では、オブジェクトの配置が最もランダムであり、全体としてのポピュレーションは最も不規則な配置になります。 Use density Shader 密度シェーダを使用 未指定の場合、オブジェクトインスタンスはエリア内一面を覆います。密度シェーダを使用すると、オブジェクトの配置場所をより詳細にコントロールする事が出来ます。密度シェーダはマスクとして読み取られ、白色エリアはオブジェクトが最も密に配置され、黒色エリアはオブジェクトが表示されない事を意味します。中間のグレースケールエリアは、明度に応じた段階で様々な密度で配置されます。 Invert Density Shader 密度シェーダを反転 指定された密度シェーダのマスクを反転して使用します。 Anchorタブ ポピュレーションがどのように地形/オブジェクトに接地するかを決める設定を行います。 Sit on terrain 地形に接地 チェック時、指定された地形シェーダの地形の起伏に沿ってオブジェクトインスタンスを接地します。 Planet 惑星 ポピュレーションが関連付けられている『Planet』ノードを選択します。これはポピュレーションが着地するオブジェクトや地形が、どの『Planet』ノードに関連付けられているかを定義するためのもので、『Planet』ノード以外を選択する事や無指定は出来ません。また、この『Planet』の座標は起点の(0,0,0)から離れるほどに精度は崩れます。現実の世界と同じ座標位置でポピュレーションを行うと、形状、ディティールに劣化が生じる事があります。これは未来のバージョンで対応予定です。 Sit on object オブジェクトに接地 チェック時、指定されたオブジェクトの起伏に沿ってオブジェクトインスタンスを接地します。接地面を垂直に配置されるため、底辺の大きなオブジェクトインスタンスの場合、浮いた様に見えます。これは、後述する「Rotation」タブである程度の調整を行う事が出来ます。現時点はオブジェクトインスタンスを関連付けする事は出来ません。 Free floating フリーフローティング どの地形やオブジェクトにも属する事なく、"Area center"のY座標で設定された高度に沿って浮かびます(あるいは沈んでいます)。高低差がランダムに浮かぶという意味ではありません。 Scaleタブ ポピュレーション内のオブジェクトインスタンスのサイズの変化をコントロールします。オブジェクトサイズにいくつかのバリエーションを施す事で、ポピュレーションに多様性を与え、より自然に見えるようにする事に役立ちます。 Minimum scale 最小スケール これらの値は、オブジェクトのデフォルトスケールに適用される乗数で、"Object maker"のパラメータで指定された『Object』ノードから取得されます。両方のパラメータのデフォルト設定を1に設定すると、オブジェクトインスタンスのサイズに変化はなく、すべて同じサイズです。"Minimum scale"を0.5に設定すると、最小インスタンスはデフォルトサイズの半分になり、最大スケールを2に設定すると、最大インスタンスはデフォルトサイズの2倍になります。ポピュレータがインスタンスを作成する時、この最小スケールと最大スケール間のサイズをランダムに選択します。 Maximum scale 最大スケール Rotationタブ ポピュレーション内のオブジェクトインスタンスの回転変化をコントロールします。オブジェクトの回転を変化させる事は、ポピュレーションに多様性を与え、より自然に見えるようにする事に役立ちます。オブジェクトインスタンスが地形/オブジェクトに対してどのように角度をつけるかのコントロールをする事も出来ます。 Minimum Y rotation 垂直のY軸最小回転角度 オブジェクトインスタンスの最小/最大回転角度を設定します。これらは、ポピュレータがインスタンスを作成する時、垂直Y軸を中心に何度回転させるかをコントロールします。デフォルトは、最小値0と最大値360です。これは、ポピュレータが各インスタンスをY軸の周りを360度、自由にに回転させる事を意味します。例えば、すべてのインスタンスを45度の方角に向けたい時、最小と最大の回転角度を45に設定する事で、作成されたインスタンスは45度の方角に向いています。また、最小を45度、最大を48度にする事で、3度という小さなバリエーションでわずかな不規則性を生み出す事も可能です。 Maximum Y rotation 垂直のY軸最大回転角度 Lean to terrain/object normal チェック時、根底となる地形/オブジェクトの勾配に沿って傾ける事が出来ます。勾配は地形/オブジェクトの法線から取得します。未チェックの場合、インスタンスは常にY軸が真上を向くように設定されます。 Lean effect (0..1) 傾斜効果 傾斜効果の影響力をコントロールします。範囲は(0-1)。値が大きいほど、インスタンスの傾斜が地形/オブジェクトの法線に密接に調和する事を意味しています。 Don t lean if slope below 以下の斜面は傾斜せず 斜面が設定値より小さい場合、インスタンスは傾斜しません。 Reduce lean if slope below 以下の斜面は傾斜を減少 斜面が設定値より小さい場合、インスタンスの傾斜効果を減少します。完全に地形/オブジェクトに密接させたい場合、"Don t lean if slope below"と共に、この値を0にします。 Colourタブ このタブの機能は、オブジェクトの『Default Shader』に影響を与えます。例えばポピュレーションで雑木林を作った場合、そのままだと単調な同じ色設定の木のオブジェクトが並ぶだけですが、このタブの機能を使って色のバリエーションを施す事で、ポピュレーションに多様性を与え、より自然に見えるようにする事に役立ちます。 Tint deffuse colour 拡散色の色合い 例えば『Power fractal shader』を使う事で、オブジェクトの拡散色に特色を追加する事が出来ます。『Power fractal shader』を使った例この効果はオブジェクト全体に効果を与えます。複数のパーツから構成された樹木などの場合、葉のみに同じ効果を与える時にはこの機能は使えません。その場合は、下図のようにオブジェクトのパーツ単体に同じようなノードを構成します。 Tint Luminosity 光度の色合い "Tint deffuse colour"と同様に使用します。 Diffuse colour multiplier 拡散色の乗数 色合の乗数を設定します。値が高いほど明るくなり、値が低いほど暗くなります。 Luminosity multiplier 光度の乗数 Seedタブ シードは、ポピュレータがどのようにオブジェクトインスタンスを配置するかをコントロールする設定です。 Seed シード この値は、インスタンスの配置など、ポピュレーションのランダムな様相を生成するために、ポピュレータによって使用されます。さまざまなパターンの無限のライブラリがあり、それぞれに異なる番号が付けられていると想像して下さい。シード値はその番号のようなものです。気に入った配置が見つかった場合は、同じ値にする事で再現する事が出来ます。 Sample terrain and density shader before moving and rotation area(移動と回転エリアに先だって地形と密度シェーダをサンプリングする) 空間内のポピュレーションを移動または回転させ、そのインスタンスをエリア中心やエリア回転に呼応して固定させたい場合に有用です。これはアニメーション作成において鳥の群れなどの飛行形成などに役立つもので、静止画のシーンでは使用しません。 Editingタブ ポピュレーションのインスタンス編集を補助する設定があります。ポピュレーションのインスタンスの編集で詳しく知る事が出来ます。 Total instances 総インスタンス数 ポピュレーション内の総インスタンス数を表示します。 Num,modified instanes 変更したインスタンス数 ポピュレーション内の変更したインスタンス数を表示します。 Highlight modified instances 変更したインスタンスをハイライト チェック時、3Dプレビュー内で緑色のバウンディングボックスで変更したインスタンスを表示します(現在選択中のインスタンスは黄色のバウンディングボックスで表示します)。変更したインスタンスを[Shift]+[R]キーで個別にリセットする事が出来ます。 Reset Modified 変更をリセット 変更したインスタンスを一括でリセットします。 Num,deleted instances 削除したインスタンス数 ポピュレーション内の削除したインスタンス数を表示します。 Show deleted instances 削除したインスタンスを表示 3Dプレビュー内で赤色のバウンディングボックスで削除したインスタンスを表示します。削除したインスタンスを[Shift]+[Del]キーで個別に復元する事が出来ます。 Restore Deleted 削除したインスタンスを復元 変更したインスタンスを一括で復元します。 Start Editing 編集開始 3Dプレビュー内でポピュレーションのインスタンス編集を開始します。 Stop Editing 編集終了 ポピュレーションの編集を終了します。
https://w.atwiki.jp/psemu/pages/358.html
CD Manipulatorの解説 公式サイト http //www.storeroom.info/cdm/ CD Manipulatorは国産でフリーのCDバックアップソフトです。 CDイメージ本体とともにcueファイル(トラック情報などが書かれておりCDDA再生に必要)を作成するのでおすすめです。 CDを焼くのにはドライブが対応していないと駄目ですが、ISO吸出しだけならドライブに関係なくできます まれにCD Manipulatorで吸い出すと動かないという報告があるので、 その時は、isobusterでの吸出しを試してください。 使い方 まず公式サイトからVersion 2.70 Finalをダウンロードして解凍してください。 次にプレステのゲームCDをドライブに入れたらCdManipulator.exeを起動させてください シングルセッションモードー通常 マルチセッションモードーCD-DA形式など特殊な場合「マルチトラックディスク」 注)マルチセッションモードを指定した場合は、本来MODE2であるはずのTrack 1のトラックモードがcueファイルに MODE1と書かれてしまう不具合がありますので、手動で修正が必要です。 シングルセッションモードでは問題ありません。 CD mode確認方法 本末転倒だが、Alcohol52%とかImgbrunなどでmodeの確認をして、違ってたら修正する マルチセッションモードで読み込んだファイルをepsxeで使う場合、 cdmファイルをccdファイルに拡張子を書き換え、 File-Run ISOから書き換えたccdファイルを読込めば、cueファイルは必要ない
https://w.atwiki.jp/shiningforce/pages/3.html
SWG公式サイト 米国公式 米国フォーラム 米国ナレッジベース 日本旧公式(コピーサイト) スター・ウォーズの鉄人!*SWG情報サイト SF個人サイト やめろよ!馬鹿! by720号室[Mafuu] はなまるのNew Jedi Order![Cimax] とりつかれた男の独白[Fu-dang] バカでマヌケなお魚日記[Wubou] MMORPG伝説[Frederica] 他の日本人街サイト From H[SCYLLA] Neo Edo[SCYLLA] Sylo s Aspiration[SCYLLA] West New Town[NARITUS] Mos Symphonia[NARITUS] Luminaria[NARITUS] Little Tokyo[NARITUS] Acropolice[NARITUS] 国内情報サイト SWG Wiki Star Wars Galaxies 日本語化 wiki Scyllaサーバーリソース管理一覧 .. Exitarium .. 国外情報サイト SWG WIKI SWG情報ポータルサイト BLOODFIN SWG情報ポータルサイト STRATICS SWG情報ポータルサイト WARCRY SWGCRAFT.COM 惑星別公園ディードカタログ英語版 SWG Expertise Calculator By Cohav SWG Expertise Calculator GCW Points Calculator SW関連サイト Star Wars.com(公式サイト) Star Wars Encyclopedia スター・ウォーズの鉄人! LIGHTSABERS
https://w.atwiki.jp/toynavi/pages/252.html
I would love to hear more about this … -- Romanos 2007-01-28 18 50 32 I would love to hear more about this … a href=http //green-mortgage-point.phpsolve.com green-mortgage-point /a a href=http //calculator-mortgage-rate.phpsolve.com calculator-mortgage-rate /a a href=http //broker-mortgage.phpsolve.com broker-mortgage /a a href=http //illinois-mortgage.pckiss.com illinois-mortgage /a a href=http //arizona-mortgage.phpsolve.com arizona-mortgage /a a href=http //dallas-mortgage.phpsolve.com dallas-mortgage /a a href=http //2nd-mortgage.phpsolve.com 2nd-mortgage /a a href=http //maryland-mortgage.pckiss.com maryland-mortgage /a a href=http //broker-florida-mortgage.comekey.com broker-florida-mortgage /a a href=http //florida-loan-mortgage.pckiss.com florida-loan-mortgage /a a href=http //carolina-loan-mortgage-north.comekey.com carolina-loan-mortgage-north /a a href=http //calculator-interest-mortgage-only.pckiss.com calculator-interest-mortgage-only /a [url=http //florida-lead-mortgage.cutestories.net] florida-lead-mortgage [/url][url=http //colorado-mortgage.pckiss.com] colorado-mortgage [/url][url=http //carolina-mortgage-north.cutestories.net] carolina-mortgage-north [/url][url=http //hawaii-mortgage.carmodelrank.com] hawaii-mortgage [/url][url=http //calculator-mortgage-rate.phpsolve.com] calculator-mortgage-rate [/url][url=http //broker-florida-mortgage.comekey.com] broker-florida-mortgage [/url][url=http //missouri-mortgage.toptuned.com] missouri-mortgage [/url][url=http //adjustable-mortgage-rate.ps3burn.com] adjustable-mortgage-rate [/url] 名前 コメント
https://w.atwiki.jp/rijk/
Official Hellgate London ForumsTrading- Elite (US) General Discussion Hunter Faction Hellgate London US Hellgate London EU Flagship Forums Skill Marksman - CharPlanner - inHellgate.de Marksman Skill Tree Item HellgateDigger.com HG-L Unique and Named Items HellGate Hellgate London Database Calc Hellgate- London at TeamUndead.com Foci Damage Calculator Damage Calculation Spreadsheet HG-L Feed Calculator (XLS Tool) Fan Hellgate Guru Main Page - HellgateDB Main Page - Hellgatewiki.com News Uberblick - Hellgate London News inHellgate.de - Die grose deutsche Fansite zu Hellgate- London Main Page - Basin Wiki
https://w.atwiki.jp/skyrim_mod/pages/41.html
目的 前提 手順概要 手順詳細 psc/pex ファイルの準備 プロジェクトの準備 dll ファイル名の変更 skse プロジェクトの機能を拝借 追加関数の実装 Papyrus 関数として使えるよう登録する実装 ビルドとできた dll の配置 サンプル:ExampleAddFunctionBySKSE.zip(動かし方は中にある readme.txt を参照のこと) 目的 SKSE プラグインによって Papyrus で使える関数を追加する最小サンプルを提供することが目的です。 関数の追加方法を覚えることで、適宜、用途・要求速度などの状況に応じて Papyrus と C/C++ とを組み合わせてスクリプトが書けるようになります。 前提 SKSE64プラグイン開発環境構築手順にて、skse 本体のコンパイルができる状態にあることが前提となります。 プラグインのサンプルプロジェクトである samplePlugin を元に Papyrus 関数を追加するよう書き換えます。 手順概要 まずは作業手順についてですが、以下の手順を踏みます。 CK を使って追加する関数を Papyrus スクリプトで定義し、psc/pex ファイルを用意する。 プロジェクトを準備する。 追加関数を実装する。 追加関数を Papyrus 関数として使えるよう登録する実装を追加する。 dll をビルドし、配置する。 skse_loader.exe で Skyrim を起動する。 細かく1つ1つ順を追って説明していきます。 手順詳細 psc/pex ファイルの準備 CK を起動し、メニューから [Gameplay]→[Papyrus Script Manager]を開きます。 開いたら、Papyrus Managerのリスト上で右クリックし、[New...]を選択して新しいスクリプトを作成します。 サンプルプラグインの名前は「Calculator」とします。また、Sum 関数は v1 と v2 の値を足した値を返すこととします。要はよくある計算機の例です。 以下、ソースの事例です。 Scriptname Calculator int Function Sum(int v1, int v2) global native ポイントは、 native と書いてあること。 関数本体が無いこと。 です。 必要最小限ということで今回は未 extends/global の関数を事例に挙げますが、extends/global 以外の関数も定義可能です。 このソースを保存すると普通にコンパイルでき、pex ファイルが作成されるので「Skyrim\Data\Scripts」フォルダを確認してみて下さい。psc ファイルは「Skyrim\Data\Scripts\Source」フォルダにあります。 プロジェクトの準備 dll ファイル名の変更 samplePlugin プロジェクトを活用しますが、そのままビルドするとできあがるプラグイン dll ファイルが samplePlugin.dll になってしまいます。 独自の名称の dll ファイルを作成するため「ソリューションエクスプローラ」で「samplePlugin」プロジェクトを選択し、F2 キーを押してプロジェクトの名称を変更してください。 ここでは「Calculator」とします。 すると「Calculator.dll」が生成されるようになります。 また、dll作成時に「プロジェクトとライブラリの名前が違う」と警告が出るので、exports.defも編集します。 (編集前) LIBRARY"samplePlugin" EXPORTS SKSEPlugin_Query SKSEPlugin_Load (編集後) LIBRARY"Calculator" EXPORTS SKSEPlugin_Query SKSEPlugin_Load ※ プロジェクトファイル名自体は「samplePlugin.vcproj」のままですが気にしないことにします。 skse プロジェクトの機能を拝借 skse プロジェクトの機能を使うため依存関係を作って、機能を使えるようにします。 以下、手順です。 「ソリューションエクスプローラ」で「skse」プロジェクトを右クリックし「プロパティ」を選択する。 「構成プロパティ - 全般」タブの「構成の種類」を「スタティック ライブラリ(.lib)」に変更する。 「ソリューションエクスプローラ」で「Calculator」プロジェクトを右クリックし「プロジェクト依存関係」を選択する。 「skse」プロジェクトにチェックを入れる。 追加関数の実装 以下に追加する Add 関数の例を示します。 // SInt32 や StaticFunctionTag などを使うために必要になる。 #include "skse/PapyrusNativeFunctions.h" // ... 省略 ... SInt32 Sum(StaticFunctionTag* self, SInt32 v1, SInt32 v2) { return v1 + v2; } Calculator.psc と比較してみてください。ポイントは以下の通りです。 skse/PapyrusNativeFunctions.h をインクルードしている。 int には SInt32 を使う。 第一引数に self を追加する(global の場合は StaticFunctionTag*)。 関数の中身をしっかりと実装する。 Papyrus 関数として使えるよう登録する実装 SKSE プラグインには以下の2つの関数を必ず実装する必要があります。 役割 シグネチャ SKSE プラグインの導入可否判断 bool SKSEPlugin_Query(const SKSEInterface * skse, PluginInfo * info) SKSE プラグインの初期化 bool SKSEPlugin_Load(const SKSEInterface * skse) SKSEPlugin_Load 関数にて追加関数を Papyrus 関数として使えるよう登録します。 重要な部分のみ抜粋します。 bool RegisterScaleform(GFxMovieView * view, GFxValue * root) { VMClassRegistry* registry = (*g_skyrimVM)- GetClassRegistry(); // Calculator.Sum 関数を登録 registry- RegisterFunction( new NativeFunction2 StaticFunctionTag, SInt32, SInt32, SInt32 ("Sum", "Calculator", Sum, registry)); return true; } extern "C" { // ... SKSEPlugin_Query 省略 ... bool SKSEPlugin_Load(const SKSEInterface * skse) { _MESSAGE("load"); // register scaleform callbacks // Scaleformコールバックを登録する。登録に成功するとtrueを返す。 // 登録名が既に使用済みの場合は登録失敗になるので、ユニークな名前で登録すること。 g_scaleform- Register("Calculator", RegisterScaleform); return true; } }; SKSEPlugin_Load は、SKSE によって呼び出されるSKSE プラグインの初期化関数です。ここで RegisterScaleform 関数を登録しています。 RegisterScaleform 関数が Sum 関数を Papyrus 関数として使えるよう登録する実装です。 NativeFunctionX の X は引数の数によって 0 ~ 9 まで使えます。 の中および引数は以下の通りです。 の1番目 親クラス。グローバル関数の場合は、親クラスにStaticFunctionTagを指定。 の2番目 戻り値の型。 の3番目以降 引数の型を順番に。 引数の1番目 関数名 引数の2番目 クラス名 引数の3番目 関数ポインタ 引数の4番目 VMCrassRegistry* 本サンプルでは1つだけの追加ですが、いくつでも追加できます。 ビルドとできた dll の配置 ビルドすると以下のフォルダに「Calculator.dll」ができあがります。 skse_X_XX_XX/src/skse/Release 「Calculator.dll」を以下のフォルダにコピーすれば関数の追加は完成です。 Skyrim/Data/SKSE/Plugins CK 内の Papyrus スクリプトで Calculator.Sum 関数が使えるようになっています。